Azure 基礎:使用 powershell 建立虛擬網路

sparkdev發表於2017-02-18

什麼是虛擬網路

虛擬網路是您的網路在 Azure 雲上的表示形式。您可以完全控制虛擬網路的 IP 地址、DNS 的設定、安全策略和路由表。您還可以更進一步,把虛擬網路劃分為多個子網。然後用它們連線您的虛機或其他的雲服務例項。另外,您還可以通過 Azure 的連通性選項建立虛擬網路和本地網路的連線。比如一個經典的本地網路,它在 Azure 上的表示可能是這個樣子(此圖來自MSDN):

注意,此圖中的 Azure infrastructure 取代了本地網路中路由器的角色,它使您可以無需任何配置就可以從虛擬網路服務公網。網路安全組則取代本地網路中的防火牆應用於每一個子網。同時物理的負載均衡裝置也被 Azure 內部提供的負載均衡功能取代。

虛擬網路的優勢

隔離

虛擬網路之間是完全隔離的。這就允許我們為開發、測試和產品環境建立完全相同的網路環境。比如您可以建立兩個IP地址空間完全相同的虛擬網路分別用於開發和測試,從而保證測試環境和開發環境的一致性。

訪問公網

預設連線到虛擬網路的所有虛機和 PaaS 角色的例項都能夠訪問公網。您可以通過網路安全組(NSGs)進行訪問控制。

在虛擬網路中訪問虛機

虛擬機器和 PaaS 角色的例項可以被連線到同一個虛擬網路中。即便它們在不同的子網中也可以通過私有的 IP 地址進行互聯,而且不需要配置閘道器或公有 IP 地址。

名稱解析

Azure 內部提供瞭解析虛擬網路中部署的虛機和 PaaS 角色例項名稱的功能。當然,您還可以配置使用您自己的 DNS 伺服器。

安全

您可以通過網路安全組控制虛擬網路中進出虛機和 PaaS 角色例項的資訊。

連通性

虛擬網路之間可以通過閘道器或虛擬網路 peering 技術實現相互連線,也可以通過 VPN 網路或 Azure ExpressRoute 連線到您的本地資料中心。

建立虛擬網路

PowerShell 的 Azure 模組中為我們提供了不同的 API, 早期的 API 叫 ASM(Azure Service Manager)。隨著 Azure 的發展變化,又出現了一套新的 API 叫 ARM(Azure Resource Management)。本文將使用 ARM 版本的 API。明確一下目標,我們將建立如下圖所示的虛擬網路結構(此圖來自MSDN):

新的虛擬網路名稱為 LearnVNet,IP 地址空間為 192.168.0.0/16,包括兩個子網:
FrontEnd, 192.168.1.0/24
BackEnd, 192.168.2.0/24

準備工作

首先您需要安裝 Azure PowerShell SDK,這一步您可以參考 MSDN 或者筆者的博文《Azure 基礎:用 PowerShell 自動釋出 CloudServices》。然後使用 Login-AzureRmAccount 命令登入您的訂閱賬號。接下來再建立一個 Resource Group,本次實驗的環境全都放在這個 Resource Group 中:

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

這條命令會在東亞的資料中心中建立名稱為 “LearnRG” 的 Resource Group。注意,這條命令執行完成後,Azure 就已經建立了名稱為 LearnRG 的 Resource Group。

好了,現在就可以開始建立虛擬網路了。

虛擬網路

在 ResourceGroup LearnRG 中建立虛擬網路 LearnVNet:

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

接下來把剛剛建立的虛擬網路 LearnVNet 儲存到變數 vnet 中:

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

下面建立第一個子網 192.168.1.0/24:

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

用同樣的方法建立第二個子網 192.168.2.0/24:

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

此時雖然我們已經完成了相關資訊的建立,但是所有的資訊還只是儲存在本地,需要通知 Azure 進行實際的建立工作:

Set-AzureRmVirtualNetwork -VirtualNetwork $vnet

命令執行完成後我們就可以到 portal 上檢視結果了:

一切順利,虛擬網路 LearnVNet 和兩個子網已經建立成功啦!

相關文章