虛擬網(wǎng)絡(luò)是您的網(wǎng)絡(luò)在 Azure 云上的表示形式。您可以完全控制虛擬網(wǎng)絡(luò)的 IP 地址、DNS 的設(shè)置、安全策略和路由表。您還可以更進(jìn)一步,把虛擬網(wǎng)絡(luò)劃分為多個(gè)子網(wǎng)。然后用它們連接您的虛機(jī)或其他的云服務(wù)實(shí)例。另外,您還可以通過(guò) Azure 的連通性選項(xiàng)建立虛擬網(wǎng)絡(luò)和本地網(wǎng)絡(luò)的連接。比如一個(gè)經(jīng)典的本地網(wǎng)絡(luò),它在 Azure 上的表示可能是這個(gè)樣子(此圖來(lái)自MSDN):

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

注意,此圖中的 Azure infrastructure 取代了本地網(wǎng)絡(luò)中路由器的角色,它使您可以無(wú)需任何配置就可以從虛擬網(wǎng)絡(luò)服務(wù)公網(wǎng)。網(wǎng)絡(luò)安全組則取代本地網(wǎng)絡(luò)中的防火墻應(yīng)用于每一個(gè)子網(wǎng)。同時(shí)物理的負(fù)載均衡設(shè)備也被 Azure 內(nèi)部提供的負(fù)載均衡功能取代。

虛擬網(wǎng)絡(luò)的優(yōu)勢(shì)

隔離

虛擬網(wǎng)絡(luò)之間是完全隔離的。這就允許我們?yōu)殚_(kāi)發(fā)、測(cè)試和產(chǎn)品環(huán)境創(chuàng)建完全相同的網(wǎng)絡(luò)環(huán)境。比如您可以創(chuàng)建兩個(gè)IP地址空間完全相同的虛擬網(wǎng)絡(luò)分別用于開(kāi)發(fā)和測(cè)試,從而保證測(cè)試環(huán)境和開(kāi)發(fā)環(huán)境的一致性。

訪問(wèn)公網(wǎng)

默認(rèn)連接到虛擬網(wǎng)絡(luò)的所有虛機(jī)和 PaaS 角色的實(shí)例都能夠訪問(wèn)公網(wǎng)。您可以通過(guò)網(wǎng)絡(luò)安全組(NSGs)進(jìn)行訪問(wèn)控制。

在虛擬網(wǎng)絡(luò)中訪問(wèn)虛機(jī)

虛擬機(jī)和 PaaS 角色的實(shí)例可以被連接到同一個(gè)虛擬網(wǎng)絡(luò)中。即便它們?cè)诓煌淖泳W(wǎng)中也可以通過(guò)私有的 IP 地址進(jìn)行互聯(lián),而且不需要配置網(wǎng)關(guān)或公有 IP 地址。

名稱(chēng)解析

Azure 內(nèi)部提供了解析虛擬網(wǎng)絡(luò)中部署的虛機(jī)和 PaaS 角色實(shí)例名稱(chēng)的功能。當(dāng)然,您還可以配置使用您自己的 DNS 服務(wù)器。

安全

您可以通過(guò)網(wǎng)絡(luò)安全組控制虛擬網(wǎng)絡(luò)中進(jìn)出虛機(jī)和 PaaS 角色實(shí)例的信息。

連通性

虛擬網(wǎng)絡(luò)之間可以通過(guò)網(wǎng)關(guān)或虛擬網(wǎng)絡(luò) peering 技術(shù)實(shí)現(xiàn)相互連接,也可以通過(guò) VPN 網(wǎng)絡(luò)或 Azure ExpressRoute 連接到您的本地?cái)?shù)據(jù)中心。

創(chuàng)建虛擬網(wǎng)絡(luò)

PowerShell 的 Azure 模塊中為我們提供了不同的 API, 早期的 API 叫 ASM(Azure Service Manager)。隨著 Azure 的發(fā)展變化,又出現(xiàn)了一套新的 API 叫 ARM(Azure Resource Management)。本文將使用 ARM 版本的 API。明確一下目標(biāo),我們將創(chuàng)建如下圖所示的虛擬網(wǎng)絡(luò)結(jié)構(gòu)(此圖來(lái)自MSDN):

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

新的虛擬網(wǎng)絡(luò)名稱(chēng)為 LearnVNet,IP 地址空間為 192.168.0.0/16,包括兩個(gè)子網(wǎng):
FrontEnd, 192.168.1.0/24
BackEnd, 192.168.2.0/24

準(zhǔn)備工作

首先您需要安裝 Azure PowerShell SDK,這一步您可以參考 MSDN 或者筆者的博文《Azure 基礎(chǔ):用 PowerShell 自動(dòng)發(fā)布 CloudServices》。然后使用 Login-AzureRmAccount 命令登錄您的訂閱賬號(hào)。接下來(lái)再創(chuàng)建一個(gè) Resource Group,本次實(shí)驗(yàn)的環(huán)境全都放在這個(gè) Resource Group 中:

New-AzureRmResourceGroup -Name LearnRG -Location "East Asia"

這條命令會(huì)在東亞的數(shù)據(jù)中心中創(chuàng)建名稱(chēng)為 “LearnRG” 的 Resource Group。注意,這條命令執(zhí)行完成后,Azure 就已經(jīng)創(chuàng)建了名稱(chēng)為 LearnRG 的 Resource Group。

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

好了,現(xiàn)在就可以開(kāi)始創(chuàng)建虛擬網(wǎng)絡(luò)了。

虛擬網(wǎng)絡(luò)

在 ResourceGroup LearnRG 中創(chuàng)建虛擬網(wǎng)絡(luò) LearnVNet:

New-AzureRmVirtualNetwork -ResourceGroupName LearnRG -Name LearnVNet -AddressPrefix 192.168.0.0/16 -Location "East Asia"

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

接下來(lái)把剛剛創(chuàng)建的虛擬網(wǎng)絡(luò) LearnVNet 保存到變量 vnet 中:

$vnet = Get-AzureRmVirtualNetwork -ResourceGroupName LearnRG -Name LearnVNet

下面創(chuàng)建第一個(gè)子網(wǎng) 192.168.1.0/24:

Add-AzureRmVirtualNetworkSubnetConfig -Name FrontEnd -VirtualNetwork $vnet -AddressPrefix 192.168.1.0/24

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

用同樣的方法創(chuàng)建第二個(gè)子網(wǎng) 192.168.2.0/24:

Add-AzureRmVirtualNetworkSubnetConfig -Name BackEnd -VirtualNetwork $vnet -AddressPrefix 192.168.2.0/24

此時(shí)雖然我們已經(jīng)完成了相關(guān)信息的創(chuàng)建,但是所有的信息還只是保存在本地,需要通知 Azure 進(jìn)行實(shí)際的創(chuàng)建工作:

Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

命令執(zhí)行完成后我們就可以到 portal 上查看結(jié)果了:

移動(dòng)開(kāi)發(fā)培訓(xùn),Android培訓(xùn),安卓培訓(xùn),手機(jī)開(kāi)發(fā)培訓(xùn),手機(jī)維修培訓(xùn),手機(jī)軟件培訓(xùn)

一切順利,虛擬網(wǎng)絡(luò) LearnVNet 和兩個(gè)子網(wǎng)已經(jīng)創(chuàng)建成功啦!

作者:sparkdev