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