Partilhar via


Configurar o Gateway de Aplicativo com um endereço IPv6 público frontend usando o Azure PowerShell

O Gateway de Aplicativo do Azure dá suporte a conexões front-end de pilha dupla (IPv4 e IPv6) de clientes. Para usar a conectividade frontend IPv6, você precisa criar um novo Application Gateway. Atualmente, não é possível atualizar gateways de aplicativos IPv4 existentes apenas para gateways de aplicativos de pilha dupla (IPv4 e IPv6). Além disso, atualmente os endereços IPv6 de back-end não são suportados.

Para suportar frontend IPv6, você deve criar uma VNet de pilha dupla. Esta VNet de pilha dupla tem sub-redes para IPv4 e IPv6. As VNets do Azure já fornecem capacidade de pilha dupla.

Descrição geral

O Azure PowerShell é usado para criar um Gateway de Aplicativo do Azure IPv6. O teste é realizado para verificar se funciona corretamente.

Sabe como:

  • Configurar a rede de pilha dupla
  • Criar um gateway de aplicativo com frontend IPv6
  • Criar um conjunto de dimensionamento de máquina virtual com o pool de back-end padrão

O Azure PowerShell é usado para criar um Gateway de Aplicativo do Azure IPv6 e executar testes para garantir que ele funcione corretamente. O gateway de aplicativo pode gerenciar e proteger o tráfego da Web para os servidores que você mantém. Um conjunto de dimensionamento de máquina virtual é para servidores back-end gerenciarem o tráfego da Web. O conjunto de dimensionamento contém duas instâncias de máquina virtual que são adicionadas ao pool de back-end padrão do gateway de aplicativo. Para obter mais informações sobre os componentes de um gateway de aplicativo, consulte Componentes do gateway de aplicativo.

Você também pode concluir este início rápido usando o portal do Azure.

Pré-requisitos

Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

Se você optar por instalar e usar o PowerShell localmente, este artigo exigirá o módulo do Azure PowerShell versão 1.0.0 ou posterior. Para localizar a versão, execute Get-Module -ListAvailable Az. Se precisar de atualizar, veja Install Azure PowerShell module (Instalar o módulo do Azure PowerShell). Se você estiver executando o PowerShell localmente, também precisará executar Login-AzAccount para criar uma conexão com o Azure.

Regiões e disponibilidade

O IPv6 Application Gateway está disponível para todas as regiões de nuvem pública onde o Application Gateway v2 SKU é suportado. Também está disponível no Microsoft Azure operado pela 21Vianet e Azure Government

Limitações

  • Apenas o SKU v2 suporta um frontend com endereços IPv4 e IPv6
  • Back-ends IPv6 não são suportados no momento
  • O link privado IPv6 não é suportado no momento
  • Atualmente, não há suporte para o Application Gateway somente IPv6. O Application Gateway deve ser de pilha dupla (IPv6 e IPv4)
  • O Application Gateway Ingress Controller (AGIC) não suporta a configuração IPv6
  • Os gateways de aplicativos IPv4 existentes não podem ser atualizados para gateways de aplicativos de pilha dupla
  • Regras personalizadas WAF com uma condição de correspondência IPv6 não são suportadas atualmente

Criar um grupo de recursos

Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos. Crie um grupo de recursos do Azure usando New-AzResourceGroup.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Configurar uma sub-rede de pilha dupla e uma sub-rede de back-end

Configure as sub-redes denominadas myBackendSubnet e myAGSubnet usando New-AzVirtualNetworkSubnetConfig.

$AppGwSubnetPrefix = @("10.0.0.0/24", "ace:cab:deca::/64")
$appgwSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myAGSubnet -AddressPrefix $AppGwSubnetPrefix
$backendSubnet = New-AzVirtualNetworkSubnetConfig `
-Name myBackendSubnet -AddressPrefix  10.0.1.0/24

Criar uma rede virtual de pilha dupla

$VnetPrefix = @("10.0.0.0/16", "ace:cab:deca::/48")
$vnet = New-AzVirtualNetwork `
-Name myVNet `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-AddressPrefix $VnetPrefix `
-Subnet @($appgwSubnet, $backendSubnet)

Criar endereços IP públicos Frontend do Application Gateway

$pipv4 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress4 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv4' `
-Force

$pipv6 = New-AzPublicIpAddress `
-Name myAGPublicIPAddress6 `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-Sku 'Standard' `
-AllocationMethod 'Static' `
-IpAddressVersion 'IPv6' `
-Force

Criar as configurações e portas IP

Associe myAGSubnet que você criou anteriormente ao gateway de aplicativo usando New-AzApplicationGatewayIPConfiguration. Atribua myAGPublicIPAddress ao gateway de aplicativo usando New-AzApplicationGatewayFrontendIPConfig.

$vnet   = Get-AzVirtualNetwork `
-ResourceGroupName myResourceGroupAG `
-Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig `
-VirtualNetwork $vnet `
-Name myAGSubnet
$gipconfig = New-AzApplicationGatewayIPConfiguration `
-Name myAGIPConfig `
-Subnet $subnet
$fipconfigv4 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv4Config `
-PublicIPAddress $pipv4
$fipconfigv6 = New-AzApplicationGatewayFrontendIPConfig `
-Name myAGFrontendIPv6Config `
-PublicIPAddress $pipv6
$frontendport = New-AzApplicationGatewayFrontendPort `
-Name myAGFrontendIPv6Config `
-Port 80

Criar o conjunto e as definições de back-end

Crie o pool de back-end chamado appGatewayBackendPool para o gateway de aplicativo usando New-AzApplicationGatewayBackendAddressPool. Configure as configurações para os pools de endereços de back-end usando New-AzApplicationGatewayBackendHttpSettings.

$backendPool = New-AzApplicationGatewayBackendAddressPool `
-Name myAGBackendPool
$poolSettings = New-AzApplicationGatewayBackendHttpSetting `
-Name myPoolSettings `
-Port 80 `
-Protocol Http `
-CookieBasedAffinity Enabled `
-RequestTimeout 30

Criar o serviço de escuta e a regra predefinidos

É necessário um serviço de escuta para permitir ao gateway de aplicação encaminhar o tráfego adequadamente para o conjunto de back-end. Neste exemplo, vai criar um serviço de escuta básico que escuta o tráfego no URL de raiz.

Crie um ouvinte chamado mydefaultListener usando New-AzApplicationGatewayHttpListener com a configuração de frontend e a porta de frontend que você criou anteriormente. É necessária uma regra para o serviço de escuta saber qual o conjunto de back-end a utilizar para o tráfego de entrada. Crie uma regra básica chamada rule1 usando New-AzApplicationGatewayRequestRoutingRule.

$listenerv4 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv4 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv4 `
-FrontendPort $frontendport
$listenerv6 = New-AzApplicationGatewayHttpListener `
-Name myAGListnerv6 `
-Protocol Http `
-FrontendIPConfiguration $fipconfigv6 `
-FrontendPort $frontendport
$frontendRulev4 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv4 `
-RuleType Basic `
-Priority 10 `
-HttpListener $listenerv4 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolSettings 
$frontendRulev6 = New-AzApplicationGatewayRequestRoutingRule `
-Name ruleIPv6 `
-RuleType Basic `
-Priority 1 `
-HttpListener $listenerv6 `
-BackendAddressPool $backendPool `
-BackendHttpSettings $poolsettings

Criar o gateway de aplicação

Agora que você criou os recursos de suporte necessários, pode especificar parâmetros para o gateway de aplicativo usando New-AzApplicationGatewaySku. O novo gateway de aplicativo é criado usando New-AzApplicationGateway. A criação do gateway de aplicativo leva alguns minutos.

$sku = New-AzApplicationGatewaySku `
  -Name Standard_v2 `
  -Tier Standard_v2 `
  -Capacity 2
New-AzApplicationGateway `
-Name myipv6AppGW `
-ResourceGroupName myResourceGroupAG `
-Location eastus `
-BackendAddressPools $backendPool `
-BackendHttpSettingsCollection $poolsettings `
-FrontendIpConfigurations @($fipconfigv4, $fipconfigv6) `
-GatewayIpConfigurations $gipconfig `
-FrontendPorts $frontendport `
-HttpListeners @($listenerv4, $listenerv6) `
-RequestRoutingRules @($frontendRulev4, $frontendRulev6) `
-Sku $sku `
-Force

Servidores de back-end

Agora que você criou o gateway de aplicativo, pode criar as máquinas virtuais de back-end para hospedar sites. Um back-end pode ser composto por NICs, conjuntos de dimensionamento de máquina virtual, endereços IP públicos, endereços IP internos, FQDN (nomes de domínio totalmente qualificados) e back-ends multilocatários, como o Serviço de Aplicativo do Azure.

Criar duas máquinas virtuais

Neste exemplo, você cria duas máquinas virtuais para usar como servidores back-end para o gateway de aplicativo. O IIS é instalado nas máquinas virtuais para verificar se o Azure criou com êxito o gateway de aplicativo. O conjunto de escala é atribuído ao pool de back-end quando você define as configurações de endereço IP.

Para criar as máquinas virtuais, obtemos a configuração do pool de back-end do Application Gateway recentemente criada com Get-AzApplicationGatewayBackendAddressPool. Estas informações são utilizadas para:

  • Crie uma interface de rede com New-AzNetworkInterface.
  • Crie uma configuração de máquina virtual com New-AzVMConfig.
  • Crie as máquinas virtuais com New-AzVM.

Nota

Quando você executa o exemplo de código a seguir para criar máquinas virtuais, o Azure solicita credenciais. Introduza o seu nome de utilizador e palavra-passe. A criação das VMs leva alguns minutos.

$appgw = Get-AzApplicationGateway -ResourceGroupName myResourceGroupAG -Name myipv6AppGW
$backendPool = Get-AzApplicationGatewayBackendAddressPool -Name myAGBackendPool -ApplicationGateway $appgw
$vnet   = Get-AzVirtualNetwork -ResourceGroupName myResourceGroupAG -Name myVNet
$subnet = Get-AzVirtualNetworkSubnetConfig -VirtualNetwork $vnet -Name myBackendSubnet
$cred = Get-Credential
for ($i=1; $i -le 2; $i++)
{
  $nic = New-AzNetworkInterface `
    -Name myNic$i `
    -ResourceGroupName myResourceGroupAG `
    -Location EastUS `
    -Subnet $subnet `
    -ApplicationGatewayBackendAddressPool $backendpool
  $vm = New-AzVMConfig `
    -VMName myVM$i `
    -VMSize Standard_DS2_v2
  Set-AzVMOperatingSystem `
    -VM $vm `
    -Windows `
    -ComputerName myVM$i `
    -Credential $cred
  Set-AzVMSourceImage `
    -VM $vm `
    -PublisherName MicrosoftWindowsServer `
    -Offer WindowsServer `
    -Skus 2016-Datacenter `
    -Version latest
  Add-AzVMNetworkInterface `
    -VM $vm `
    -Id $nic.Id
  Set-AzVMBootDiagnostic `
    -VM $vm `
    -Disable
  New-AzVM -ResourceGroupName myResourceGroupAG -Location EastUS -VM $vm
  Set-AzVMExtension `
    -ResourceGroupName myResourceGroupAG `
    -ExtensionName IIS `
    -VMName myVM$i `
    -Publisher Microsoft.Compute `
    -ExtensionType CustomScriptExtension `
    -TypeHandlerVersion 1.4 `
    -SettingString '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}' `
    -Location EastUS
}

Encontre o endereço IP público do Application Gateway

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6

Atribuir um nome DNS ao endereço IPv6 frontend

Um nome DNS facilita o teste para o gateway de aplicativo IPv6. Você pode atribuir um nome DNS público usando seu próprio domínio e registrador ou pode criar um nome no azure.com.

Use os comandos a seguir para atribuir um nome no azure.com. O nome é definido como o rótulo especificado + a região + cloudapp.azure.com. Neste exemplo, o registro AAAA myipv6appgw é criado no namespace eastus.cloudapp.azure.com:

$publicIp = Get-AzPublicIpAddress -Name myAGPublicIPAddress6 -ResourceGroupName myResourceGroupAG
$publicIp.DnsSettings = @{"DomainNameLabel" = "myipv6appgw"}
Set-AzPublicIpAddress -PublicIpAddress $publicIp

Testar o gateway de aplicação

Anteriormente, atribuímos o nome DNS myipv6appgw.eastus.cloudapp.azure.com ao endereço IPv6 público do gateway de aplicativo. Para testar esta ligação:

  1. Usando o cmdlet Invoke-WebRequest, emita uma solicitação para o front-end IPv6.
  2. Confira a resposta. Uma resposta válida de myVM1 ou myVM2 verifica se o gateway de aplicativo foi criado com êxito e pode se conectar com êxito ao back-end. Se você executar o comando várias vezes, a carga do gateway será balanceada e responderá às solicitações subsequentes de um servidor back-end diferente.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2

Importante

Se a ligação ao nome DNS ou endereço IPv6 falhar, poderá ser porque não consegue procurar endereços IPv6 a partir do seu dispositivo. Para verificar se esse é o seu problema, teste também o endereço IPv4 do gateway de aplicativo. Se o endereço IPv4 se conectar com êxito, é provável que você não tenha um endereço IPv6 público atribuído ao seu dispositivo. Se esse for o caso, você pode tentar testar a conexão com uma VM de pilha dupla.

Clean up resources (Limpar recursos)

Quando não for mais necessário, remova o grupo de recursos, o gateway de aplicativo e todos os recursos relacionados usando Remove-AzResourceGroup.

Remove-AzResourceGroup -Name myResourceGroupAG

Próximos passos