創(chuàng)建 Azure 虛擬機 (VM) 時,必須創(chuàng)建虛擬網絡(VNet) 或使用現有的 VNet。 此外,還需要確定如何在 VNet 上訪問 VM。在創(chuàng)建資源之前必須做好規(guī)劃,確保了解網絡資源的限制。
在下圖中,VM 顯示為 Web 服務器和數據庫服務器。 每組 VM 已分配到 VNet 中的獨立子網。
可以在創(chuàng)建 VM 之前創(chuàng)建 VNet,也可以在創(chuàng)建 VM 時創(chuàng)建 VNet。 需要創(chuàng)建以下資源來支持與 VM 通信:
網絡接口
IP 地址
虛擬網絡和子網
除了上述基本資源外,還應考慮創(chuàng)建以下可選資源:
網絡安全組
負載均衡器
網絡接口
網絡接口 (NIC)是 VM 與虛擬網絡 (VNet) 之間互相連接的橋梁。 VM 必須至少有一個 NIC,但可以根據所創(chuàng)建 VM 的大小包含多個 NIC。 了解Windows或Linux的每個 VM 大小支持的 NIC 數。
可以創(chuàng)建具有多個 NIC 的 VM,并可在 VM 的整個生命周期中添加或刪除 NIC。 多個 NIC 允許 VM 連接到不同子網,并可通過最適當的接口發(fā)送或接收流量。 詳細了解如何在Windows或LinuxVM 中使用多個 NIC。
如果 VM 已添加到可用性集,該可用性集中的所有 VM 必須包含一個或多個 NIC。 包含多個 NIC 的 VM 不一定要有相同數目的 NIC,但必須至少包含兩個 NIC。
附加到 VM 的每個 NIC 必須在與 VM 相同的位置和訂閱中。 每個 NIC 必須連接到與 NIC 位于相同 Azure 位置和訂閱中的 VNet。 創(chuàng)建 VM 之后,可以更改它連接到的子網,但無法更改 VNet。 附加到 VM 的每個 NIC 將分配有一個 MAC 地址,在刪除 VM 之前,該地址不會變化。
下表列出了可用于創(chuàng)建網絡接口的方法。
方法說明
Azure 門戶在 Azure 門戶中創(chuàng)建 VM 時,系統(tǒng)會自動創(chuàng)建網絡接口(無法使用單獨創(chuàng)建的 NIC)。 門戶會創(chuàng)建只包含一個 NIC 的 VM。 如果想要創(chuàng)建包含多個 NIC 的 VM,必須使用其他方法創(chuàng)建 VM。
Azure PowerShell結合-PublicIpAddressId參數使用New-AzureRmNetworkInterface,提供事先創(chuàng)建的公共 IP 地址標識符。
Azure CLI若要提供事先創(chuàng)建的公共 IP 地址標識符,請結合--public-ip-address參數使用az network nic create。
模板參考Network Interface in a Virtual Network with Public IP Address(虛擬網絡中使用公共 IP 地址的網絡接口),使用模板部署網絡接口。
IP 地址
可將以下類型的IP 地址分配到 Azure 中的 NIC:
公共 IP 地址:用來與 Internet 以及未連接到 VNet 的其他 Azure 資源進行入站和出站通信(不提供網絡地址轉換 (NAT))。 向 NIC 分配公共 IP 地址是可選操作。 公共 IP 地址會產生少許費用,并且每個訂閱可使用的最大公共 IP 地址數目有限制。
專用 IP 地址:用于在 VNet、本地網絡和 Internet 中通信(提供 NAT)。 必須至少將一個專用 IP 地址分配給 VM。 若要詳細了解 Azure 中的 NAT,請閱讀了解 Azure 中的出站連接。
可將公共 IP 地址分配到 VM 或面向 Internet 的負載均衡器。 可將專用 IP 地址分配到 VM 和內部負載均衡器。 可以使用網絡接口將 IP 地址分配給 VM。
將 IP 地址分配給資源有兩種方法:動態(tài)或靜態(tài)。 默認分配方法為動態(tài),即,IP 地址不是在創(chuàng)建它時分配的, 而是在創(chuàng)建 VM 或啟動已停止的 VM 時分配的。 停止或刪除該 VM 時,會釋放該 IP 地址。
要確保 VM 的 IP 地址保持不變,可將分配方法顯式設置為靜態(tài)。 在這種情況下,IP 地址是即時分配的。 只有在刪除該 VM 或將其分配方法更改為動態(tài)時,才會釋放該地址。
下表列出了可用于創(chuàng)建 IP 地址的方法。
方法說明
Azure 門戶默認情況下,公共 IP 地址是動態(tài)的,在停止或刪除 VM 時,與這些公共 IP 地址關聯(lián)的地址可能會更改。 為確保 VM 始終使用同一個公共 IP 地址,需創(chuàng)建靜態(tài)公共 IP 地址。 默認情況下,門戶會在創(chuàng)建 VM 時向 NIC 分配一個動態(tài)專用 IP 地址。 創(chuàng)建 VM 后,可將此 IP 地址更改為靜態(tài)地址。
Azure PowerShell結合值為 Dynamic 或 Static 的-AllocationMethod參數使用New-AzureRmPublicIpAddress。
Azure CLI結合值為 Dynamic 或 Static 的--allocation-method參數使用az network public-ip create。
模板參考Network Interface in a Virtual Network with Public IP Address(虛擬網絡中使用公共 IP 地址的網絡接口),使用模板部署公共 IP 地址。
創(chuàng)建公共 IP 地址后,可將它分配到 NIC,從而將它與 VM 相關聯(lián)。
虛擬網絡和子網
子網是 VNet 中的一系列 IP 地址。 可將一個 VNet 劃分為多個子網,以便于組織和提高安全性。 VM 中的每個 NIC 連接到一個 VNet 中的一個子網。 連接到 VNet 中的子網(不管是相同的子網還是不同的子網)的 NIC 可以互相通信,不需任何額外的配置。
設置 VNet 時,需指定拓撲,包括可用的地址空間和子網。 如果 VNet 要連接到其他 VNet 或本地網絡,則必須選擇不重疊的地址范圍。 這些 IP 地址是專用的,無法從 Internet 訪問,這種限制在過去只適用于不可路由的 IP 地址,例如 10.0.0.0/8、172.16.0.0/12 或 192.168.0.0/16。 現在,Azure 將所有地址范圍都視為只能在 VNet 內部、互連 VNet 內部以及從本地位置訪問的專用 VNet IP 地址空間的一部分。
如果內部網絡由組織中的其他某人負責,在選擇地址空間之前,應咨詢該負責人。 確保 IP 地址范圍不重疊。請告訴他們你要使用的空間,以免他們嘗試使用相同的 IP 地址范圍。
默認情況下,子網之間沒有安全邊界,因此,每個子網中的 VM 可以相互通信。 但是,可以設置網絡安全組 (NSG) 來控制流入或流出子網以及 VM 的流量。
下表列出了可用于創(chuàng)建 VNet 和子網的方法。
方法說明
Azure 門戶如果要在創(chuàng)建 VM 時讓 Azure 創(chuàng)建 VNet,VNet 的名稱是包含 VNet 的資源組名稱和-vnet的組合。 地址空間為 10.0.0.0/24,所需的子網名稱為default,子網地址范圍為 10.0.0.0/24。
Azure PowerShell使用New-AzureRmVirtualNetworkSubnetConfig和New-AzureRmVirtualNetwork可以創(chuàng)建子網與 VNet。 還可以使用Add-AzureRmVirtualNetworkSubnetConfig將子網添加到現有 VNet。
Azure CLI子網和 VNet 是同時創(chuàng)建的。 在az network vnet create后面提供--subnet-name參數并指定子網名稱。
模板創(chuàng)建 VNet 和子網的最簡單方法是下載一個現有的模板(例如包含兩個子網的虛擬網絡),并根據需要對它進行修改。
網絡安全組
網絡安全組 (NSG)包含一系列訪問控制列表 (ACL) 規(guī)則,這些規(guī)則可以允許或拒絕流向子網和/或 NIC 的網絡流量。 NSG 可與子網或者已連接到子網的各個 NIC 相關聯(lián)。 當 NSG 與某個子網相關聯(lián)時,ACL 規(guī)則應用到該子網中的所有 VM。 另外,可以通過將 NSG 直接關聯(lián)到 NIC,對流向單個 NIC 的流量進行限制。
NSG 包含兩種類型的規(guī)則:入站規(guī)則和出站規(guī)則。 在每組中,規(guī)則的優(yōu)先級必須保持唯一。 每個規(guī)則包含以下屬性:協(xié)議、源和目標端口范圍、地址前綴、流量方向、優(yōu)先級和訪問類型。
所有 NSG 都包含一組默認規(guī)則。 默認規(guī)則無法刪除,但由于給它們分配的優(yōu)先級最低,可以用創(chuàng)建的規(guī)則來重寫它們。
將 NSG 關聯(lián)到 NIC 時,NSG 中的網絡訪問規(guī)則只會應用到該 NIC。 如果 NSG 已應用到包含多個 NIC 的 VM 中的單個 NIC,則它不會影響流向其他 NIC 的流量。 可將不同的 NSG 關聯(lián)到 NIC(或 VM,具體取決于部署模型)以及 NIC 或 VM 綁定到的子網。 優(yōu)先級是根據流量方向指定的。
規(guī)劃 VM 和 VNet 時,請務必規(guī)劃NSG。
下表列出了可用于創(chuàng)建網絡安全組的方法。
方法說明
Azure 門戶在 Azure 門戶中創(chuàng)建 VM 時,會自動創(chuàng)建 NSG 并將其關聯(lián)到門戶創(chuàng)建的 NIC。 NSG 的名稱是 VM 名稱和-nsg的組合。 此 NSG 包含一個入站規(guī)則,該規(guī)則的優(yōu)先級為 1000,服務設置為 RDP,協(xié)議設置為 TCP,端口設置為 3389,操作設置為“允許”。 如果想要允許其他任何入站流量流向 VM,必須向 NSG 添加更多規(guī)則。
Azure PowerShell使用New-AzureRmNetworkSecurityRuleConfig并提供所需的規(guī)則信息。 使用New-AzureRmNetworkSecurityGroup創(chuàng)建 NSG。 使用Set-AzureRmVirtualNetworkSubnetConfig為子網配置 NSG。 使用Set-AzureRmVirtualNetwork將 NSG 添加到 VNet。
Azure CLI首先使用az network nsg create創(chuàng)建 NSG。 使用az network nsg rule create向 NSG 添加規(guī)則。 使用az network vnet subnet update將 NSG 添加到子網。
模板參考創(chuàng)建網絡安全組,使用模板部署網絡安全組。
負載均衡器
Azure 負載均衡器可提高應用程序的可用性和網絡性能。 可以配置負載均衡器,對傳入 VM 的 Internet 流量進行均衡,或者對 VNet 中 VM 之間的流量進行均衡。 負載均衡器還可以均衡跨界網絡中本地計算機與 VM 之間的流量,或者將外部流量轉發(fā)到特定的 VM。
負載均衡器可以映射負載均衡器中公共 IP 地址與端口之間的,以及 VM 中專用 IP 地址與端口之間的傳入和傳出流量。
創(chuàng)建負載均衡器時,還必須考慮以下配置要素:
前端 IP 配置:單個負載均衡器可包含一個或多個前端 IP 地址(也稱為虛擬 IP,即 VIP)。 這些 IP 地址充當流量的入口。
后端地址池– 與負載分配到的 NIC 關聯(lián)的 IP 地址。
NAT 規(guī)則– 定義入站流量如何流經前端 IP 并分配到后端 IP。
負載均衡器規(guī)則– 將給定的前端 IP 和端口組合映射到一組后端 IP 地址和端口組合。 單個負載均衡器可擁有多個負載均衡規(guī)則。 每個規(guī)則都包含前端 IP 和端口,以及與 VM 關聯(lián)的后端 IP 和端口。
探測器:監(jiān)視 VM 的運行狀況。 當探測無法響應時,負載均衡器會停止向狀況不良的 VM 發(fā)送新連接。 現有連接不受影響,新連接將發(fā)送到狀況良好的 VM。
下表列出了可用于創(chuàng)建面向 Internet 的負載均衡器的方法。
方法說明
Azure 門戶目前無法使用 Azure 門戶創(chuàng)建面向 Internet 的負載均衡器。
Azure PowerShell若要提供事先創(chuàng)建的公共 IP 地址標識符,請結合-PublicIpAddress參數使用New-AzureRmLoadBalancerFrontendIpConfig。 使用New-AzureRmLoadBalancerBackendAddressPoolConfig創(chuàng)建后端地址池的配置。 使用New-AzureRmLoadBalancerInboundNatRuleConfig創(chuàng)建與前端 IP 配置關聯(lián)的入站 NAT 規(guī)則。 使用New-AzureRmLoadBalancerProbeConfig創(chuàng)建所需的探測。 使用New-AzureRmLoadBalancerRuleConfig創(chuàng)建負載均衡器配置。 使用New-AzureRmLoadBalancer創(chuàng)建負載均衡器。
Azure CLI使用az network lb create創(chuàng)建初始負載均衡器配置。 使用az network lb frontend-ip create添加事先創(chuàng)建的公共 IP 地址。 使用az network lb address-pool create添加后端地址池的配置。 使用az network lb inbound-nat-rule create添加 NAT 規(guī)則。 使用az network lb rule create添加負載均衡器規(guī)則。 使用az network lb probe create添加探測。
模板參考負載均衡器中的 2 個 VM,在 LB 上配置 NAT 規(guī)則,使用模板部署負載均衡器。
下表列出了可用于創(chuàng)建內部負載均衡器的方法。
方法說明
Azure 門戶目前無法使用 Azure 門戶創(chuàng)建內部負載均衡器。
Azure PowerShell若要提供網絡子網中的專用 IP 地址,請結合-PrivateIpAddress參數使用New-AzureRmLoadBalancerFrontendIpConfig。 使用New-AzureRmLoadBalancerBackendAddressPoolConfig創(chuàng)建后端地址池的配置。 使用New-AzureRmLoadBalancerInboundNatRuleConfig創(chuàng)建與前端 IP 配置關聯(lián)的入站 NAT 規(guī)則。 使用New-AzureRmLoadBalancerProbeConfig創(chuàng)建所需的探測。 使用New-AzureRmLoadBalancerRuleConfig創(chuàng)建負載均衡器配置。 使用New-AzureRmLoadBalancer創(chuàng)建負載均衡器。
Azure CLI使用az network lb create命令創(chuàng)建初始負載均衡器配置。 若要定義專用 IP 地址,請結合--private-ip-address參數使用az network lb frontend-ip create。 使用az network lb address-pool create添加后端地址池的配置。 使用az network lb inbound-nat-rule create添加 NAT 規(guī)則。 使用az network lb rule create添加負載均衡器規(guī)則。 使用az network lb probe create添加探測。
模板參考負載均衡器中的 2 個 VM,在 LB 上配置 NAT 規(guī)則,使用模板部署負載均衡器。
VM
可在同一 VNet 中創(chuàng)建 VM,VM 可以使用專用 IP 地址相互連接。 即使 VM 位于不同的子網中,它們也可以相互連接,無需配置網關或使用公共 IP 地址。 要將 VM 放入某個 VNet,請創(chuàng)建該 VNet,然后在每個 VM 時,將其分配到該 VNet 和子網。 在部署或啟動期間,VM 會獲取其網絡設置。
部署 VM 時,系統(tǒng)為 VM 分配一個 IP 地址。 如果將多個 VM 部署到 VNet 或子網,則 VM 啟動時,系統(tǒng)為其分配 IP 地址。 動態(tài) IP 地址 (DIP) 是與 VM 關聯(lián)的內部 IP 地址。 可向 VM 分配靜態(tài) DIP。 如果分配靜態(tài) DIP,應考慮使用特定的子網,避免意外地重復使用另一個 VM 的靜態(tài) DIP。
如果創(chuàng)建了一個 VM,事后又想要將它遷移到 VNet,做出這種配置更改并不是一個簡單的過程。 在這種情況下,必須將 VM 重新部署到 VNet。 最簡單的重新部署方法是刪除該 VM(但不要刪除其上附加的任何磁盤),并在 VNet 中使用原始磁盤重新創(chuàng)建 VM。
下表列出了可用于在 VNet 中創(chuàng)建 VM 的方法。
方法說明
Azure 門戶使用前面所述的默認網絡設置創(chuàng)建包含單個 NIC 的 VM。 若要創(chuàng)建包含多個 NIC 的 VM,必須使用其他方法。
Azure PowerShell使用Add-AzureRmVMNetworkInterface將事先創(chuàng)建的 NIC 添加到 VM 配置中。
Azure CLI創(chuàng)建 VM 并將其連接到以單個步驟生成的 Vnet、子網和 NIC。
模板參考Very simple deployment of a Windows VM(非常簡單的 Windows VM 部署),使用模板部署 VM。
后續(xù)步驟
有關如何為 VM 管理 Azure 虛擬網絡的 VM 特定步驟,請參閱Windows或Linux教程。
還有關于如何對 VM 進行負載均衡以及如何創(chuàng)建適用于Windows或Linux的高度可用應用程序的教程。
了解如何配置用戶定義的路由和 IP 轉發(fā)。
了解如何配置VNet 到 VNet 連接。
了解如何排查路由問題。
立即訪問http://market.azure.cn