本文說明如何使用 Azure 中的標準負載平衡器部署雙堆疊 (IPv4 + IPv6) 應用程式。 此案例包括具有雙堆疊子網路的雙堆疊虛擬網路、具有雙 (IPv4 + IPv6) 前端設定的標準負載平衡器、具有雙重 IP 設定之 NIC 的 VM、雙網路安全性群組規則,以及雙公用 IP。
請遵循 Azure PowerShell 中的這些指示,在 Azure 中使用標準負載平衡器部署雙堆疊 (IPv4 + IPv6) 應用程式。
建立資源群組
您必須先使用 New-AzResourceGroup 建立資源群組,才能建立雙堆疊虛擬網路。 下列範例會在美國東部位置建立名為 myRGDualStack 的資源群組:
$rg = New-AzResourceGroup `
-ResourceGroupName "dsRG1" `
-Location "east us"
建立 IPv4 和 IPv6 公用 IP 位址
若要從網際網路存取虛擬機器,您需要負載平衡器的 IPv4 和 IPv6 公用 IP 位址。 使用 New-AzPublicIpAddress 建立公用 IP 位址。 下列範例會在 dsRG1 資源群組中建立名為 dsPublicIP_v4 和 dsPublicIP_v6 的 IPv4 及 IPv6 公用 IP 位址:
$PublicIP_v4 = New-AzPublicIpAddress `
-Name "dsPublicIP_v4" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-IpAddressVersion IPv4 `
-Sku Standard
$PublicIP_v6 = New-AzPublicIpAddress `
-Name "dsPublicIP_v6" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-IpAddressVersion IPv6 `
-Sku Standard
若要使用 RDP 連線存取虛擬機器,請使用 New-AzPublicIpAddress 為虛擬機器建立 IPV4 公用 IP 位址。
$RdpPublicIP_1 = New-AzPublicIpAddress `
-Name "RdpPublicIP_1" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-Sku Standard `
-IpAddressVersion IPv4
$RdpPublicIP_2 = New-AzPublicIpAddress `
-Name "RdpPublicIP_2" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-AllocationMethod Static `
-Sku Standard `
-IpAddressVersion IPv4
建立標準負載平衡器
在本節中,您會設定負載平衡器的雙前端 IP (IPv4 和 IPv6) 和後端位址集區,然後建立標準負載平衡器。
建立前端IP
使用 New-AzLoadBalancerFrontendIpConfig 建立前端 IP。 下列範例會建立名為 dsLbFrontEnd_v4 和 dsLbFrontEnd_v6 的 IPv4 和 IPv6 前端 IP 設定:
$frontendIPv4 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v4" `
-PublicIpAddress $PublicIP_v4
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PublicIpAddress $PublicIP_v6
為稍後部署的虛擬機器建立具有 New-AzLoadBalancerBackendAddressPoolConfig 的後端位址集區。 下列範例會建立名為 dsLbBackEndPool_v4 和 dsLbBackEndPool_v6 的後端位址集區,以包含同時具有 IPV4 和 IPv6 NIC 組態的虛擬機器:
$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v4"
$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v6"
建立健康狀態探查
使用 Add-AzLoadBalancerProbeConfig 建立健康情況探查,以監視 VM 的健康情況。
$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2
建立負載平衡器規則
負載平衡器規則用來定義如何將流量分散至 VM。 您可定義連入流量的前端 IP 組態及後端 IP 集區來接收流量,以及所需的來源和目的地連接埠。 若要確保只有狀況良好的 VM 接收流量,您可以選擇性地定義健康情況探查。 基本負載平衡器會使用 IPv4 探查來評估虛擬機器上 IPv4 和 IPv6 端點的健全狀況。 標準負載平衡器包含對明確 IPv6 健康情況探查的支援。
使用 Add-AzLoadBalancerRuleConfig 建立負載平衡器規則。 下列範例會建立名為 dsLBrule_v4 和 dsLBrule_v6 的負載平衡器規則,並將 TCP 連接埠 80 上的流量均分至 IPv4 和 IPv6 前端 IP 設定:
$lbrule_v4 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v4" `
-FrontendIpConfiguration $frontendIPv4 `
-BackendAddressPool $backendPoolv4 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-probe $probe
$lbrule_v6 = New-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v6" `
-FrontendIpConfiguration $frontendIPv6 `
-BackendAddressPool $backendPoolv6 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80 `
-probe $probe
建立負載平衡器
使用 New-AzLoadBalancer 建立標準負載平衡器。 下列範例會使用您在上述步驟中建立的 IPv4 和 IPv6 前端 IP 組態、後端集區和負載平衡規則,建立名為 myLoadBalancer 的公用標準負載平衡器:
$lb = New-AzLoadBalancer `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "MyLoadBalancer" `
-Sku "Standard" `
-FrontendIpConfiguration $frontendIPv4,$frontendIPv6 `
-BackendAddressPool $backendPoolv4,$backendPoolv6 `
-LoadBalancingRule $lbrule_v4,$lbrule_v6 `
-Probe $probe
建立網路資源
在部署某些 VM 並測試平衡器之前,您必須建立支援的網路資源 - 可用性設定組、網路安全性群組、虛擬網路和虛擬 NIC。
建立可用性設定組
若要改善應用程式的高可用性,請將 VM 放在可用性設定組中。
使用 New-AzAvailabilitySet 建立可用性設定組。 下列範例會建立名為 myAvailabilitySet 的可用性設定組:
$avset = New-AzAvailabilitySet `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsAVset" `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2 `
-Sku aligned
建立網路安全性群組
建立網路安全性群組,以控制虛擬網路中輸入和輸出通訊的規則。
建立連接埠 3389 的網路安全性群組規則
建立網路安全性群組規則,以允許透過埠 3389 與 New-AzNetworkSecurityRuleConfig 進行 RDP 連線。
$rule1 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleRDP' `
-Description 'Allow RDP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389
建立連接埠 80 的網路安全性群組規則
建立網路安全性群組規則,以允許透過埠 80 與 New-AzNetworkSecurityRuleConfig 進行因特網連線。
$rule2 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleHTTP' `
-Description 'Allow HTTP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 200 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 80
建立網路安全性群組
使用 New-AzNetworkSecurityGroup 建立網路安全性群組。
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsNSG1" `
-SecurityRules $rule1,$rule2
建立虛擬網路
使用 New-AzVirtualNetwork 建立虛擬網路。 下列範例會使用 mySubnet 建立名為 dsVnet 的虛擬網路:
# Create dual stack subnet
$subnet = New-AzVirtualNetworkSubnetConfig `
-Name "dsSubnet" `
-AddressPrefix "10.0.0.0/24","fd00:db8:deca:deed::/64"
# Create the virtual network
$vnet = New-AzVirtualNetwork `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsVnet" `
-AddressPrefix "10.0.0.0/16","fd00:db8:deca::/48" `
-Subnet $subnet
建立 NIC
使用 New-AzNetworkInterface 建立虛擬 NIC。 下列範例會建立兩個具有 IPv4 和 IPv6 組態的虛擬 NIC。 在下面的步驟中,為您建立的每個應用程式 VM 配置一個虛擬 NIC。
$Ip4Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp4Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv4 `
-LoadBalancerBackendAddressPool $backendPoolv4 `
-PublicIpAddress $RdpPublicIP_1
$Ip6Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp6Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv6 `
-LoadBalancerBackendAddressPool $backendPoolv6
$NIC_1 = New-AzNetworkInterface `
-Name "dsNIC1" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-NetworkSecurityGroupId $nsg.Id `
-IpConfiguration $Ip4Config,$Ip6Config
$Ip4Config=New-AzNetworkInterfaceIpConfig `
-Name dsIp4Config `
-Subnet $vnet.subnets[0] `
-PrivateIpAddressVersion IPv4 `
-LoadBalancerBackendAddressPool $backendPoolv4 `
-PublicIpAddress $RdpPublicIP_2
$NIC_2 = New-AzNetworkInterface `
-Name "dsNIC2" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-NetworkSecurityGroupId $nsg.Id `
-IpConfiguration $Ip4Config,$Ip6Config
建立虛擬機器
使用 Get-Credential 設定 VM 的系統管理員使用者名稱和密碼:
$cred = get-credential -Message "DUAL STACK VNET SAMPLE: Please enter the Administrator credential to log into the VMs."
現在您可以使用 New-AzVM 建立 VM。 下列範例會建立兩個 VM 和必要的虛擬網路元件 (如果它們尚不存在)。
$vmsize = "Standard_A2"
$ImagePublisher = "MicrosoftWindowsServer"
$imageOffer = "WindowsServer"
$imageSKU = "2019-Datacenter"
$vmName= "dsVM1"
$VMconfig1 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage 3> $null | Add-AzVMNetworkInterface -Id $NIC_1.Id 3> $null
$VM1 = New-AzVM -ResourceGroupName $rg.ResourceGroupName -Location $rg.Location -VM $VMconfig1
$vmName= "dsVM2"
$VMconfig2 = New-AzVMConfig -VMName $vmName -VMSize $vmsize -AvailabilitySetId $avset.Id 3> $null | Set-AzVMOperatingSystem -Windows -ComputerName $vmName -Credential $cred -ProvisionVMAgent 3> $null | Set-AzVMSourceImage -PublisherName $ImagePublisher -Offer $imageOffer -Skus $imageSKU -Version "latest" 3> $null | Set-AzVMOSDisk -Name "$vmName.vhd" -CreateOption fromImage 3> $null | Add-AzVMNetworkInterface -Id $NIC_2.Id 3> $null
$VM2 = New-AzVM -ResourceGroupName $rg.ResourceGroupName -Location $rg.Location -VM $VMconfig2
判斷 IPv4 和 IPv6 端點的 IP 位址
使用 get-AzNetworkInterface 取得資源群組中的所有網路介面物件,以總結此部署中使用的 IP。 此外,使用 get-AzpublicIpAddress取得 IPv4 和 IPv6 端點的負載平衡器前端位址。
$rgName= "dsRG1"
$NICsInRG= get-AzNetworkInterface -resourceGroupName $rgName
write-host `nSummary of IPs in this Deployment:
write-host ******************************************
foreach ($NIC in $NICsInRG) {
$VMid= $NIC.virtualmachine.id
$VMnamebits= $VMid.split("/")
$VMname= $VMnamebits[($VMnamebits.count-1)]
write-host `nPrivate IP addresses for $VMname
$IPconfigsInNIC= $NIC.IPconfigurations
foreach ($IPconfig in $IPconfigsInNIC) {
$IPaddress= $IPconfig.privateipaddress
write-host " "$IPaddress
IF ($IPconfig.PublicIpAddress.ID) {
$IDbits= ($IPconfig.PublicIpAddress.ID).split("/")
$PipName= $IDbits[($IDbits.count-1)]
$PipObject= get-azPublicIpAddress -name $PipName -resourceGroup $rgName
write-host " "RDP address: $PipObject.IpAddress
}
}
}
write-host `nPublic IP addresses on Load Balancer:
(get-AzpublicIpAddress -resourcegroupname $rgName | where { $_.name -notlike "RdpPublicIP*" }).IpAddress
下圖顯示範例輸出,其中列出兩個虛擬機器的私人 IPv4 和 IPv6 位址,以及負載平衡器的前端 IPv4 和 IPv6 IP 位址。
在 Azure 入口網站中檢視 IPv6 雙重堆疊虛擬網路
您可以依循下列步驟,在 Azure 入口網站中檢視 IPv6 雙重堆疊虛擬網路:
- 在入口網站的搜尋列中,輸入 dsVnet。
- 當 dsVnet 出現在搜尋結果中時,請選取它。 這會啟動名為 dsVnet 的雙重堆疊虛擬網路 [概觀] 頁面。 雙重堆疊虛擬網路顯示兩個 NIC,而其 IPv4 和 IPv6 設定都位於名為 dsSubnet 的雙重堆疊子網路中。
清理資源
不再需要時,您可以使用 Remove-AzResourceGroup 命令來移除資源群組、VM 和所有相關資源。
Remove-AzResourceGroup -Name dsRG1
請遵循 Azure CLI 中的這些指示,在 Azure 中使用標準負載平衡器部署雙堆疊 (IPv4 + IPv6) 應用程式。
建立資源群組
您必須先使用 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 STANDARD \
--allocation-method static \
--version IPv4
# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6 \
--resource-group DsResourceGroup01 \
--location eastus \
--sku STANDARD \
--allocation-method static \
--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 Standard \
--allocation-method static \
--version IPv4
az network public-ip create \
--name dsVM1_remote_access \
--resource-group DsResourceGroup01 \
--location eastus \
--sku Standard \
--allocation-method static \
--version IPv4
建立標準負載平衡器
在本節中,您會設定負載平衡器的雙前端 IP (IPv4 和 IPv6) 和後端位址集區,然後建立標準負載平衡器。
建立負載平衡器
使用 az network lb create named dsLB 建立標準負載平衡器,其中包含名為 dsLbFrontEnd_v4 的前端集區、名為 dsLbBackEndPool_v4 的後端集區,與您在上一個步驟中建立的 IPv4 公用 IP 位址 dsPublicIP_v4 相關聯。
az network lb create \
--name dsLB \
--resource-group DsResourceGroup01 \
--sku Standard \
--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
使用 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
建立網路安全性群組
建立網路安全性群組,以控制虛擬網路中輸入和輸出通訊的規則。
建立網路安全性群組
使用 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
使用本文中所述的範本,在 Azure 中使用標準負載平衡器部署雙堆疊 (IPv4 + IPv6) 應用程式。
必要組態
在範本中搜尋範本區段,以查看它們應該出現的位置。
虛擬網路的 IPv6 位址空間
要新增的範本區段:
"addressSpace": {
"addressPrefixes": [
"[variables('vnetv4AddressRange')]",
"[variables('vnetv6AddressRange')]"
IPv6 虛擬網路 addressSpace 內的 IPv6 子網路
要新增的範本區段:
{
"name": "V6Subnet",
"properties": {
"addressPrefix": "[variables('subnetv6AddressRange')]"
}
NIC 的 IPv6 組態
要新增的範本區段:
{
"name": "ipconfig-v6",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"privateIPAddressVersion":"IPv6",
"subnet": {
"id": "[variables('v6-subnet-id')]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[concat(resourceId('Microsoft.Network/loadBalancers','loadBalancer'),'/backendAddressPools/LBBAP-v6')]"
}
IPv6 網路安全性群組 (NSG) 規則
{
"name": "default-allow-rdp",
"properties": {
"description": "Allow RDP",
"protocol": "Tcp",
"sourcePortRange": "33819-33829",
"destinationPortRange": "5000-6000",
"sourceAddressPrefix": "fd00:db8:deca:deed::/64",
"destinationAddressPrefix": "fd00:db8:deca:deed::/64",
"access": "Allow",
"priority": 1003,
"direction": "Inbound"
}
條件式設定
如果您使用網路虛擬設備,請在路由表中新增 IPv6 路由。 否則,此配置是選擇性的。
{
"type": "Microsoft.Network/routeTables",
"name": "v6route",
"apiVersion": "[variables('ApiVersion')]",
"location": "[resourceGroup().location]",
"properties": {
"routes": [
{
"name": "v6route",
"properties": {
"addressPrefix": "fd00:db8:deca:deed::/64",
"nextHopType": "VirtualAppliance",
"nextHopIpAddress": "fd00:db8:ace:f00d::1"
}
選用設定
虛擬網路的 IPv6 網際網路存取
{
"name": "LBFE-v6",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
}
IPv6 公用 IP 位址
{
"apiVersion": "[variables('ApiVersion')]",
"type": "Microsoft.Network/publicIPAddresses",
"name": "lbpublicip-v6",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static",
"publicIPAddressVersion": "IPv6"
}
負載平衡器的 IPv6 前端
{
"name": "LBFE-v6",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
}
負載平衡器的 IPv6 後端位址集區
"backendAddressPool": {
"id": "[concat(resourceId('Microsoft.Network/loadBalancers', 'loadBalancer'), '/backendAddressPools/LBBAP-v6')]"
},
"protocol": "Tcp",
"frontendPort": 8080,
"backendPort": 8080
},
"name": "lbrule-v6"
IPv6 負載平衡器規則,用於關聯傳入和傳出連接埠
{
"name": "ipconfig-v6",
"properties": {
"privateIPAllocationMethod": "Dynamic",
"privateIPAddressVersion":"IPv6",
"subnet": {
"id": "[variables('v6-subnet-id')]"
},
"loadBalancerBackendAddressPools": [
{
"id": "[concat(resourceId('Microsoft.Network/loadBalancers','loadBalancer'),'/backendAddressPools/LBBAP-v6')]"
}
範例 VM 範本 JSON
若要使用 Azure Resource Manager 範本在 Azure 虛擬網路中部署 IPv6 雙堆疊應用程式,請 在這裡檢視範例範本。