Este artigo mostra como implantar um aplicativo de pilha dupla (IPv4 + IPv6) usando o Balanceador de Carga Padrão no Azure. O cenário inclui uma rede virtual de pilha dupla com uma sub-rede de pilha dupla, um Balanceador de Carga Padrão com configurações de frontend duplas (IPv4 + IPv6), VMs com NICs que têm uma configuração IP dupla, regras de grupo de segurança de rede dupla e IPs públicos duplos.
Siga estas instruções no Azure PowerShell para implantar um aplicativo de pilha dupla (IPv4 + IPv6) usando o Balanceador de Carga Padrão no Azure.
Criar um grupo de recursos
Antes de criar a sua rede virtual dual-stack, você deve criar um grupo de recursos com New-AzResourceGroup. O exemplo a seguir cria um grupo de recursos chamado myRGDualStack no local leste dos EUA :
$rg = New-AzResourceGroup `
-ResourceGroupName "dsRG1" `
-Location "east us"
Criar endereços IP públicos IPv4 e IPv6
Para acessar suas máquinas virtuais da Internet, você precisa de endereços IP públicos IPv4 e IPv6 para o balanceador de carga. Crie endereços IP públicos com New-AzPublicIpAddress. O exemplo a seguir cria endereços IP públicos IPv4 e IPv6 chamados dsPublicIP_v4 e dsPublicIP_v6 no grupo de recursos dsRG1 :
$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
Para acessar suas máquinas virtuais usando uma conexão RDP, crie endereços IP públicos IPV4 para as máquinas virtuais com New-AzPublicIpAddress.
$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
Criar o Balanceador de Carga Standard
Nesta seção, você configura o IP de front-end duplo (IPv4 e IPv6) e o pool de endereços de back-end para o balanceador de carga e, em seguida, cria um Balanceador de Carga Padrão.
Criar o IP de front-end
Crie um IP frontend com New-AzLoadBalancerFrontendIpConfig. O exemplo a seguir cria configurações de IP frontend IPv4 e IPv6 chamadas dsLbFrontEnd_v4 e dsLbFrontEnd_v6:
$frontendIPv4 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v4" `
-PublicIpAddress $PublicIP_v4
$frontendIPv6 = New-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PublicIpAddress $PublicIP_v6
Crie um pool de endereços de back-end com New-AzLoadBalancerBackendAddressPoolConfig para as máquinas virtuais implantadas mais tarde. O exemplo a seguir cria pools de endereços de back-end chamados dsLbBackEndPool_v4 e dsLbBackEndPool_v6 para incluir máquinas virtuais com configurações de NIC IPV4 e IPv6:
$backendPoolv4 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v4"
$backendPoolv6 = New-AzLoadBalancerBackendAddressPoolConfig `
-Name "dsLbBackEndPool_v6"
Criar uma sonda de integridade
Use Add-AzLoadBalancerProbeConfig para criar uma sonda de saúde para monitorizar a saúde das VMs.
$probe = New-AzLoadBalancerProbeConfig -Name MyProbe -Protocol tcp -Port 3389 -IntervalInSeconds 15 -ProbeCount 2
Criar uma regra do balanceador de carga
É utilizada uma regra de balanceador de carga para definir a forma como o tráfego é distribuído pelas VMs. Você define a configuração de IP de front-end para o tráfego de entrada e o pool de IP de back-end para receber o tráfego, juntamente com a porta de origem e de destino necessária. Para garantir que apenas VMs íntegras recebam tráfego, você pode, opcionalmente, definir uma sonda de integridade. O balanceador de carga básico usa uma sonda IPv4 para avaliar a integridade dos endpoints IPv4 e IPv6 nas VMs. O balanceador de carga padrão inclui suporte para testes de integridade IPv6 explícitos.
Crie uma regra de balanceador de carga com Add-AzLoadBalancerRuleConfig. O exemplo a seguir cria regras de balanceador de carga chamadas dsLBrule_v4 e dsLBrule_v6 e equilibra o tráfego na porta TCP 80 para as configurações de IP frontend IPv4 e IPv6:
$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
Criar um balanceador de carga
Crie um balanceador de carga padrão com New-AzLoadBalancer. O exemplo a seguir cria um Balanceador de Carga Padrão público chamado myLoadBalancer usando as configurações IP de front-end IPv4 e IPv6, pools de back-end e regras de balanceamento de carga que você criou nas etapas anteriores:
$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
Criar recursos de rede
Antes de implantar algumas VMs e testar seu balanceador, você deve criar recursos de rede de suporte - conjunto de disponibilidade, grupo de segurança de rede, rede virtual e NICs virtuais.
Criar um conjunto de disponibilidade
Para melhorar a elevada disponibilidade da aplicação, coloque as VMs num conjunto de disponibilidade.
Crie um conjunto de disponibilidade com New-AzAvailabilitySet. O exemplo seguinte cria um conjunto de disponibilidade designado myAvailabilitySet:
$avset = New-AzAvailabilitySet `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsAVset" `
-PlatformFaultDomainCount 2 `
-PlatformUpdateDomainCount 2 `
-Sku aligned
Criar grupo de segurança de rede
Crie um grupo de segurança de rede para as regras que regem a comunicação de entrada e saída em sua rede virtual.
Criar uma regra de grupo de segurança de rede para a porta 3389
Crie uma regra de grupo de segurança de rede para permitir conexões RDP através da porta 3389 com New-AzNetworkSecurityRuleConfig.
$rule1 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleRDP' `
-Description 'Allow RDP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 100 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 3389
Criar uma regra de grupo de segurança de rede para a porta 80
Crie uma regra de grupo de segurança de rede para permitir conexões com a Internet através da porta 80 com New-AzNetworkSecurityRuleConfig.
$rule2 = New-AzNetworkSecurityRuleConfig `
-Name 'myNetworkSecurityGroupRuleHTTP' `
-Description 'Allow HTTP' `
-Access Allow `
-Protocol Tcp `
-Direction Inbound `
-Priority 200 `
-SourceAddressPrefix * `
-SourcePortRange * `
-DestinationAddressPrefix * `
-DestinationPortRange 80
Criar um grupo de segurança de rede
Crie um grupo de segurança de rede com New-AzNetworkSecurityGroup.
$nsg = New-AzNetworkSecurityGroup `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Name "dsNSG1" `
-SecurityRules $rule1,$rule2
Criar uma rede virtual
Crie uma rede virtual com New-AzVirtualNetwork. O exemplo a seguir cria uma rede virtual chamada dsVnet com mySubnet:
# 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
Criar Placas de Interface de Rede (NICs)
Crie NICs virtuais com New-AzNetworkInterface. O exemplo a seguir cria duas NICs virtuais com configurações IPv4 e IPv6. (Uma NIC virtual para cada VM que criar para a aplicação nos passos seguintes).
$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
Criar máquinas virtuais
Defina um nome de utilizador e palavra-passe de administrador para as VMs com Get-Credential:
$cred = get-credential -Message "DUAL STACK VNET SAMPLE: Please enter the Administrator credential to log into the VMs."
Agora você pode criar as VMs com New-AzVM. O exemplo a seguir cria duas VMs e os componentes de rede virtual necessários, caso ainda não existam.
$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
Determinar endereços IP dos pontos de extremidade IPv4 e IPv6
Obtenha todos os objetos das interfaces de rede no grupo de recursos para resumir os IPs utilizados nesta implementação com get-AzNetworkInterface
. Além disso, obtenha os endereços front-end do Load Balancer dos pontos de extremidade IPv4 e IPv6 com get-AzpublicIpAddress
.
$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
A figura a seguir mostra uma saída de exemplo que lista os endereços IPv4 e IPv6 privados das duas VMs e os endereços IP IPv4 e IPv6 frontend do Balanceador de Carga.
Visualizar rede virtual de pilha dupla IPv6 no portal do Azure
Você pode visualizar a rede virtual de pilha dupla IPv6 no portal do Azure da seguinte forma:
- Na barra de pesquisa do portal, digite dsVnet.
- Quando dsVnet aparecer nos resultados da pesquisa, selecione-o. Isto abre a página Visão geral da rede virtual de pilha dupla chamada dsVnet. A rede virtual de pilha dupla mostra as duas NICs com configurações IPv4 e IPv6 localizadas na sub-rede de pilha dupla chamada dsSubnet.
Limpeza de recursos
Quando não for mais necessário, você poderá usar o comando Remove-AzResourceGroup para remover o grupo de recursos, a VM e todos os recursos relacionados.
Remove-AzResourceGroup -Name dsRG1
Siga estas instruções na CLI do Azure para implantar um aplicativo de pilha dupla (IPv4 + IPv6) usando o Balanceador de Carga Padrão no Azure.
Criar um grupo de recursos
Antes de criar a sua rede virtual dual-stack, você deve criar um grupo de recursos com az group create. O exemplo a seguir cria um grupo de recursos chamado DsResourceGroup01 no local eastus :
az group create \
--name DsResourceGroup01 \
--location eastus
Criar endereços IP públicos IPv4 e IPv6 para balanceador de carga
Para acessar seus pontos de extremidade IPv4 e IPv6 na Internet, você precisa de endereços IP públicos IPv4 e IPv6 para o balanceador de carga. Crie um endereço IP público com az network public-ip create. O exemplo a seguir cria o endereço IP público IPv4 e IPv6 chamado dsPublicIP_v4 e dsPublicIP_v6 no grupo de recursos DsResourceGroup01 :
# 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
Criar endereços IP públicos para VMs
Para acessar remotamente suas VMs na Internet, você precisa de endereços IP públicos IPv4 para as VMs. Crie um endereço IP público com az network public-ip create.
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
Criar o Balanceador de Carga Standard
Nesta seção, você configura o IP de front-end duplo (IPv4 e IPv6) e o pool de endereços de back-end para o balanceador de carga e, em seguida, cria um Balanceador de Carga Padrão.
Criar um balanceador de carga
Crie o Balanceador de Carga Padrão com az network lb create chamado dsLB que inclui um pool de front-end chamado dsLbFrontEnd_v4, um pool de back-end chamado dsLbBackEndPool_v4 associado ao endereço IP público IPv4 dsPublicIP_v4 que você criou na etapa anterior.
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
Criar frontend IPv6
Crie um IP frontend IPV6 com az network lb frontend-ip create. O exemplo a seguir cria uma configuração de IP frontend chamada dsLbFrontEnd_v6 e anexa o endereço dsPublicIP_v6 :
az network lb frontend-ip create \
--lb-name dsLB \
--name dsLbFrontEnd_v6 \
--resource-group DsResourceGroup01 \
--public-ip-address dsPublicIP_v6
Crie um pool de endereços de back-end IPv6 com az network lb address-pool create. O exemplo a seguir cria um pool de endereços de back-end chamado dsLbBackEndPool_v6 para incluir VMs com configurações de NIC IPv6:
az network lb address-pool create \
--lb-name dsLB \
--name dsLbBackEndPool_v6 \
--resource-group DsResourceGroup01
Criar uma sonda de integridade
Crie uma sonda de integridade com az network lb probe create para monitorar a integridade das máquinas virtuais.
az network lb probe create -g DsResourceGroup01 --lb-name dsLB -n dsProbe --protocol tcp --port 3389
Criar uma regra do balanceador de carga
É utilizada uma regra de balanceador de carga para definir a forma como o tráfego é distribuído pelas VMs. Você define a configuração de IP de front-end para o tráfego de entrada e o pool de IP de back-end para receber o tráfego, juntamente com a porta de origem e de destino necessária.
Crie uma regra de balanceador de carga com az network lb rule create. O exemplo a seguir cria regras de balanceador de carga chamadas dsLBrule_v4 e dsLBrule_v6 e equilibra o tráfego na porta TCP 80 para as configurações de IP frontend IPv4 e IPv6:
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
Criar recursos de rede
Antes de implantar algumas VMs, você deve criar recursos de rede de suporte - conjunto de disponibilidade, grupo de segurança de rede, rede virtual e NICs virtuais.
Criar um conjunto de disponibilidade
Para melhorar a disponibilidade do seu aplicativo, coloque suas VMs em um conjunto de disponibilidade.
Crie um conjunto de disponibilidade com az vm availability-set create. O exemplo a seguir cria um conjunto de disponibilidade chamado dsAVset:
az vm availability-set create \
--name dsAVset \
--resource-group DsResourceGroup01 \
--location eastus \
--platform-fault-domain-count 2 \
--platform-update-domain-count 2
Criar grupo de segurança de rede
Crie um grupo de segurança de rede para as regras que regem a comunicação de entrada e saída em sua rede virtual.
Criar um grupo de segurança de rede
Criar um grupo de segurança de rede com az network nsg create
az network nsg create \
--name dsNSG1 \
--resource-group DsResourceGroup01 \
--location eastus
Criar uma regra de grupo de segurança de rede para conexões de entrada e saída
Crie uma regra de grupo de segurança de rede para permitir conexões RDP através da porta 3389, conexão à Internet através da porta 80, e para conexões de saída com 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 "*"
Criar uma rede virtual
Crie uma rede virtual com az network vnet create. O exemplo a seguir cria uma rede virtual chamada dsVNET com sub-redes dsSubNET_v4 e 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
Criar NICs
Crie NICs virtuais para cada VM com a AZ Network NIC Create. O exemplo a seguir cria uma NIC virtual para cada VM. Cada NIC tem duas configurações IP (1 configuração IPv4, 1 configuração IPv6). Você cria a configuração IPV6 com az network nic ip-config create.
# 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
Criar máquinas virtuais
Crie as VMs com az vm create. O exemplo a seguir cria duas VMs e os componentes de rede virtual necessários, caso ainda não existam.
Crie a máquina virtual dsVM0 da seguinte maneira:
az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest
Crie a máquina virtual dsVM1 da seguinte maneira:
az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest
Exibir rede virtual de dual stack IPv6 no portal do Azure
Você pode visualizar a rede virtual de pilha dupla IPv6 no portal do Azure da seguinte forma:
- Na barra de pesquisa do portal, digite dsVnet.
- Quando myVirtualNetwork aparecer nos resultados da pesquisa, selecione-a. Isso inicia a página Visão geral da rede virtual de pilha dupla chamada dsVnet. A rede virtual de pilha dupla mostra as duas NICs com configurações IPv4 e IPv6 localizadas na sub-rede de pilha dupla chamada dsSubnet.
Limpeza de recursos
Quando já não for necessário, pode utilizar o comando az group delete para remover o Grupo de Recursos, a VM e todos os recursos relacionados.
az group delete --name DsResourceGroup01
Use o modelo descrito neste artigo para implantar um aplicativo de pilha dupla (IPv4 + IPv6) usando o Balanceador de Carga Padrão no Azure.
Configurações necessárias
Procure as seções de modelo no modelo para ver onde elas devem ocorrer.
Espaço de endereçamento IPv6 para a rede virtual
Seção de modelo a ser adicionada:
"addressSpace": {
"addressPrefixes": [
"[variables('vnetv4AddressRange')]",
"[variables('vnetv6AddressRange')]"
Sub-rede IPv6 dentro do espaço de endereço de rede virtual IPv6
Secção de template a adicionar:
{
"name": "V6Subnet",
"properties": {
"addressPrefix": "[variables('subnetv6AddressRange')]"
}
Configuração IPv6 para a NIC
Uma seção de modelo para adicionar:
{
"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')]"
}
Regras do grupo de segurança de rede 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"
}
Configuração condicional
Se você estiver usando um dispositivo virtual de rede, adicione rotas IPv6 na Tabela de Rotas. Caso contrário, essa configuração é opcional.
{
"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"
}
Configuração opcional
Acesso à Internet IPv6 para a rede virtual
{
"name": "LBFE-v6",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
}
Endereços IP públicos IPv6
{
"apiVersion": "[variables('ApiVersion')]",
"type": "Microsoft.Network/publicIPAddresses",
"name": "lbpublicip-v6",
"location": "[resourceGroup().location]",
"sku": {
"name": "Standard"
},
"properties": {
"publicIPAllocationMethod": "Static",
"publicIPAddressVersion": "IPv6"
}
Front-end IPv6 para o balanceador de carga
{
"name": "LBFE-v6",
"properties": {
"publicIPAddress": {
"id": "[resourceId('Microsoft.Network/publicIPAddresses','lbpublicip-v6')]"
}
Pool de endereços de back-end IPv6 para balanceador de carga
"backendAddressPool": {
"id": "[concat(resourceId('Microsoft.Network/loadBalancers', 'loadBalancer'), '/backendAddressPools/LBBAP-v6')]"
},
"protocol": "Tcp",
"frontendPort": 8080,
"backendPort": 8080
},
"name": "lbrule-v6"
Regras do balanceador de carga IPv6 para associar portas de entrada e saída
{
"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')]"
}
Exemplo de modelo de VM JSON
Para implantar uma aplicação de pilha dupla IPv6 na rede virtual do Azure usando o modelo do Gestor de Recursos do Azure, consulte o exemplo de modelo aqui.