本文說明如何使用 Azure CLI 部署具有基本 Load Balancer 的雙堆棧 (IPv4 + IPv6) 應用程式,其中包含具有雙堆棧子網的雙堆棧虛擬網路、具有雙重 (IPv4 + IPv6) 前端設定的基本 Load Balancer、具有雙重 IP 組態的 VM、雙重網路安全組規則的 VM、 和雙重公用IP。
若要使用標準 Load Balancer 部署雙堆疊 (IPV4 + IPv6) 應用程式,請參閱 使用 Azure CLI 使用標準 Load Balancer 部署 IPv6 雙堆疊應用程式。
如果您沒有 Azure 帳戶,請在開始之前建立 免費帳戶 。
先決條件
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱開始使用 Azure Cloud Shell。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 如果您正在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 若要完成驗證程式,請遵循終端機中顯示的步驟。 如需其他登入選項,請參閱 使用 Azure CLI 向 Azure 進行驗證。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能的詳細資訊,請參閱 使用和管理 Azure CLI 的擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
- 本文需要 2.0.49 版或更新版本的 Azure CLI。 如果使用 Azure Cloud Shell,則已安裝最新版本。
建立資源群組
您必須先使用 az group create 建立資源群組,才能建立雙堆棧虛擬網路。 下列範例會在 eastus 位置建立名為 DsResourceGroup01 的資源群組:
az group create \
--name DsResourceGroup01 \
--location eastus
建立負載平衡器的 IPv4 和 IPv6 公用 IP 位址
若要存取因特網上的 IPv4 和 IPv6 端點,您需要負載平衡器的 IPv4 和 IPv6 公用 IP 位址。 使用 az network public-ip create 建立公用 IP 位址。 下列範例會在 DsResourceGroup01 資源群組中建立名為 dsPublicIP_v4 和 dsPublicIP_v6 的 IPv4 和 IPv6 公用 IP 位址:
# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4 \
--resource-group DsResourceGroup01 \
--location eastus \
--sku BASIC \
--allocation-method dynamic \
--version IPv4
# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6 \
--resource-group DsResourceGroup01 \
--location eastus \
--sku BASIC \
--allocation-method dynamic \
--version IPv6
建立 VM 的公用 IP 位址
若要從遠端訪問因特網上的 VM,您需要 VM 的 IPv4 公用 IP 位址。 使用 az network public-ip create 建立公用 IP 位址。
az network public-ip create \
--name dsVM0_remote_access \
--resource-group DsResourceGroup01 \
--location eastus \
--sku BASIC \
--allocation-method dynamic \
--version IPv4
az network public-ip create \
--name dsVM1_remote_access \
--resource-group DsResourceGroup01 \
--location eastus \
--sku BASIC \
--allocation-method dynamic \
--version IPv4
建立基本負載平衡器
在本節中,您會設定負載平衡器的雙重前端 IP (IPv4 和 IPv6) 和後端位址集區,然後建立基本負載平衡器。
建立負載平衡器
使用 az network lb create 建立名為 dsLB 的基本 Load Balancer,其中包含名為 dsLbFrontEnd_v4 的前端集區、名為 dsLbBackEndPool_v4 的後端集區,與您在上一個步驟中建立的 IPv4 公用 IP 位址 dsPublicIP_v4 相關聯。
az network lb create \
--name dsLB \
--resource-group DsResourceGroup01 \
--sku Basic \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4 \
--public-ip-address dsPublicIP_v4 \
--backend-pool-name dsLbBackEndPool_v4
建立 IPv6 前端
使用 az network lb frontend-ip create 建立 IPV6 前端 IP。 下列範例會建立名為 dsLbFrontEnd_v6 的前端IP組態,並附加 dsPublicIP_v6 位址:
az network lb frontend-ip create \
--lb-name dsLB \
--name dsLbFrontEnd_v6 \
--resource-group DsResourceGroup01 \
--public-ip-address dsPublicIP_v6
設定IPv6後端位址池
使用 az network lb address-pool create 建立 IPv6 後端位址池。 下列範例會建立名為 dsLbBackEndPool_v6 的後端位址池,以包含具有 IPv6 NIC 設定的 VM:
az network lb address-pool create \
--lb-name dsLB \
--name dsLbBackEndPool_v6 \
--resource-group DsResourceGroup01
建立健康檢測
使用 az network lb probe create 建立健康探測器,以監控虛擬機器的健康狀況。
az network lb probe create -g DsResourceGroup01 --lb-name dsLB -n dsProbe --protocol tcp --port 3389
建立負載平衡器規則
負載平衡器規則會用來定義如何將流量分散至 VM。 您要定義連入流量的前端 IP 設定和接收流量的後端 IP 集區,以及所需的來源和目的地連接埠。
使用 az network lb rule create 建立負載平衡器規則。 下列範例會建立名為 dsLBrule_v4 和 dsLBrule_v6 的負載平衡器規則,並將 TCP 連接埠 80 上的流量均分至 IPv4 和 IPv6 前端 IP 設定:
az network lb rule create \
--lb-name dsLB \
--name dsLBrule_v4 \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v4 \
--protocol Tcp \
--frontend-port 80 \
--backend-port 80 \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4
az network lb rule create \
--lb-name dsLB \
--name dsLBrule_v6 \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6 \
--protocol Tcp \
--frontend-port 80 \
--backend-port 80 \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6
建立網路資源
部署某些 VM 之前,您必須先建立支援的網路資源 - 可用性設定組、網路安全組、虛擬網路和虛擬 NIC。
建立可用性設定組
若要改善應用程式的可用性,請將 VM 放在可用性設定組中。
使用 az vm availability-set create 建立可用性設定組。 下列範例會建立名為 dsAVset 的可用性設定組:
az vm availability-set create \
--name dsAVset \
--resource-group DsResourceGroup01 \
--location eastus \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
建立網路安全性群組
針對將在 VNET 中治理輸入和輸出通訊的規則,建立網路安全性群組。
建立網路安全性群組
使用 az network nsg create 建立網路安全組
az network nsg create \
--name dsNSG1 \
--resource-group DsResourceGroup01 \
--location eastus
建立輸入和輸出連線的網路安全組規則
建立網路安全組規則,以允許透過埠 3389 進行 RDP 連線、透過埠 80 進行因特網連線,以及使用 az network nsg rule create 進行輸出連線。
# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn \
--nsg-name dsNSG1 \
--resource-group DsResourceGroup01 \
--priority 100 \
--description "Allow Remote Desktop In" \
--access Allow \
--protocol "*" \
--direction Inbound \
--source-address-prefixes "*" \
--source-port-ranges "*" \
--destination-address-prefixes "*" \
--destination-port-ranges 3389
# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn \
--nsg-name dsNSG1 \
--resource-group DsResourceGroup01 \
--priority 200 \
--description "Allow HTTP In" \
--access Allow \
--protocol "*" \
--direction Inbound \
--source-address-prefixes "*" \
--source-port-ranges 80 \
--destination-address-prefixes "*" \
--destination-port-ranges 80
# Create outbound rule
az network nsg rule create \
--name allowAllOut \
--nsg-name dsNSG1 \
--resource-group DsResourceGroup01 \
--priority 300 \
--description "Allow All Out" \
--access Allow \
--protocol "*" \
--direction Outbound \
--source-address-prefixes "*" \
--source-port-ranges "*" \
--destination-address-prefixes "*" \
--destination-port-ranges "*"
建立虛擬網路
使用 az network vnet create 建立虛擬網路。 下列範例會建立名為 dsVNET 的虛擬網路,其子網 dsSubNET_v4 和 dsSubNET_v6:
# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"
# Create a single dual stack subnet
az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1
建立 NIC
使用 az network nic create 為每個 VM 建立虛擬 NIC。 下列範例會為每個 VM 建立虛擬 NIC。 每個 NIC 都有兩個 IP 組態(1 個 IPv4 組態、1 個 IPv6 組態)。 您可以使用 az network nic ip-config create 建立 IPV6 組態。
# Create NICs
az network nic create \
--name dsNIC0 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM0_remote_access
az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access
# Create IPV6 configurations for each NIC
az network nic ip-config create \
--name dsIp6Config_NIC0 \
--nic-name dsNIC0 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB
az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB
建立虛擬機器
使用 az vm create 建立 VM。 下列範例會建立兩個 VM 及必要的虛擬網路元件 (如果尚未存在)。
建立虛擬機 dsVM0 ,如下所示:
az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest
建立虛擬機 dsVM1 ,如下所示:
az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest
在 Azure 入口網站中檢視 IPv6 雙重堆疊虛擬網路
您可以依循下列步驟,在 Azure 入口網站中檢視 IPv6 雙重堆疊虛擬網路:
- 在入口網站的搜尋列中,輸入 dsVnet。
- 當搜尋結果中出現 myVirtualNetwork 時加以選取。 這會啟動名為 dsVnet 的雙重堆疊虛擬網路的 [概觀] 頁面。 雙重堆疊虛擬網路顯示兩個 NIC,而其 IPv4 和 IPv6 設定都位於名為 dsSubnet 的雙重堆疊子網路中。
清理資源
若不再需要,您可以使用 az group delete 命令來移除資源群組、VM 和所有相關資源。
az group delete --name DsResourceGroup01
後續步驟
在本文中,您已建立具有雙重前端 IP 設定 (IPv4 和 IPv6) 的基本負載平衡器。 您也建立了兩個包含 NIC 的虛擬機器,而 NIC 具有已新增至負載平衡器後端集區的雙重 IP 設定 (IPV4 + IPv6)。 若要深入瞭解 Azure 虛擬網路中的 IPv6 支援,請參閱什麼是 Azure 虛擬網路的 IPv6?