-
Azure VNet的介紹
VNet是Azure雲中邏輯隔離的虛擬網絡。它包含兩個含義:
-
Azure的用戶可以在VNet中創建自己的各種資源,感覺想自己的數據中心中一樣;
-
在一個VNet中創建的資源和其它VNet創建的資源相互隔離,是Azure雲中網絡多租戶的具體實現形式。
Azure的VNet可以提供如下圖的三大類服務:
-
VNet內部提供的網絡服務,包括子網的划分、網絡安全和路由等功能
-
前端接入,提供公網IP地址、DNS地址解析、Source/Destination NAT、負載均衡等等各種服務
-
后端連接,提供IPSec Site-Site/Point-Site VPN,以及專線接入等服務。
Azure的各種網絡服務大多是圍繞Azure的VNet的,所以VNet是Azure Networking的基礎。下面將介紹如何創建Azure VNet。
-
Azure VNet的部署
-
通過Portal頁面部署Azure VNet
進入AzureChina的管理Portal: https://portal.azure.cn
在"More Services"中點擊虛擬網絡:
進入虛擬網絡后,可以看到已經創建的VNet信息,包括VNet名稱、資源組、Region和訂閱信息:
此時點擊添加,添加新的VNet,在添加時需要填寫如下信息:
-
VNet名稱
-
VNet的地址空間,就是VNet整體的地址網段
-
每個VNet可以最大配置4096個IP地址的地址空間,目前通過開Case可以最大支持到8192個,Network的Limitation可以參考以下鏈接: https://docs.microsoft.com/en-us/azure/azure-subscription-service-limits#networking-limits。由於Azure的各種訪問的能力在不停的變化,建議有可能到達各種Azure資源限制的時候,到這個鏈接上查詢相關的數值;
-
地址段的選擇建議符合RFC1918中定義的Private Address Space的三段地址,具體請參考 http://www.faqs.org/rfcs/rfc1918.html。就是我們常說的10、172、192的三段地址;
-
Azure VNet的地址空間允許用戶采用非Private Address Space的地址段,但建議是用戶自己擁有的地址段,是自己在ARIN、RIPE、APNIC、LACNIC和AFRINIC等組織申請並付費的地址段,否則會發生部分網絡訪問不了的情況;
-
即使用戶使用自己申請的IP地址段,Azure並不負責這些地址段的BGP宣告,用戶需要采用一些特殊的方式通過自己的BGP網絡宣告給各個運營商。
-
Azure VNet的地址空間可以是不連續的,即可以添加多個地址空間。建議以較小的地址段添加地址空間,這樣可以避免地址浪費和地址沖突等各種問題;
-
★Azure VNet的地址空間的划分是非常重要的一項工作,建議企業的Network部門的同事參加。一旦地址划分出現重復等問題,有可能面臨整個VNet內的資源要全部關停,甚至鏟除重新部署的情況。所以說在雲上業務建設之初,花一些精力把地址空間規划好,是非常重要的工作之一!
-
-
子網名稱,類似物理網絡中的Vlan的取名,可以取一些有提示功能的名稱,比如Web、APP、DB或Frontend、Backend等等;
-
子網范圍,要求在地址空間之內,建議根據需求,划分能夠滿足需求的較小的地址段,在今后的地址划分上比較靈活。比如預計這個網段中的VM或其他資源的數量不會超過100台,建議采用/25掩碼的網段;
-
其他信息,包括資源組、訂閱和Region信息
創建完成后,可以看到VNet的相關信息:
其他的幾點需要注意的:
- 在地址空間中,還可以添加其他的地址空間:
- 在子網中,可以添加新的子網:
- 在子網中,還有一個網關子網,GatewaySubnet:
其名稱是不能更改的,用於VPN Gateway和Express Route Gateway使用。建議采用/27掩碼的網段,具體細節在IPSec VPN和Express Route的章節中介紹。
- 已連接設備
可以在"已連接的設備"中查看已經在VNet中部署的資源:
-
DNS
在Azure的VNet中有自己的DNS服務。Azure上的DNS服務和一般DNS不同的是,Azure的DNS服務是通過SDN的形式實現的。其DNS服務器的地址在Azure的全球范圍內都是168.63.129.16。當Azure的SDN發現有客戶端在請求168.63.129.16的DNS服務時,SDN的Network Controller會發送DNS的response給請求者。
當然可以添加自己的DNS服務器,比如在VNet中部署一台DNS服務器,在VNet DNS配置中添加這個IP地址即可,但要重啟VNet中的資源,新的DNS服務器的配置才會生效。
2. 通過Powershell部署Azure VNet
通過PowerShell部署Azure VNet和Portal創建的思路是相同的,具體步驟如下:
#創建新的Resource Group New-AzureRmResourceGroup -Name hwvnetps -Location chinanorth #創建新的Subnet的配置 $vlan1 = New-AzureRmVirtualNetworkSubnetConfig -Name vlan1 ` -AddressPrefix 172.18.0.0/25 $gwsubnet = New-AzureRmVirtualNetworkSubnetConfig ` -Name GatewaySubnet ` -AddressPrefix 172.18.1.224/27 #創建VNet $hwvnetps = New-AzureRmVirtualNetwork -Name hwvnetps ` -ResourceGroupName hwvnetps -Location chinanorth ` -AddressPrefix 172.18.0.0/24,172.18.1.0/24 ` -Subnet $vlan1,$gwsubnet #添加Subnet的配置 $vlan2 = Add-AzureRmVirtualNetworkSubnetConfig ` -VirtualNetwork $hwvnetps -Name vlan2 ` -AddressPrefix 172.18.0.128/25 #更新VNet Set-AzureRmVirtualNetwork -VirtualNetwork $hwvnetps
3. 通過Azure CLI部署Azure VNet
通過命令行實現的方式也類似,具體命令如下:
#創建Resource Group az group create --name hwvnetc \ --location chinanorth #創建VNet az network vnet create -g hwvnetc \ -n hwvnetc \ --address-prefixes 172.19.0.0/24 172.19.1.0/24 \ --subnet-name vlan1 \ --subnet-prefix 172.19.0.0/25 #添加Subnet az network vnet subnet create -g hwvnetc \ --vnet-name hwvnetc \ --name GatewaySubnet \ --address-prefix 172.19.1.224/27