Configurar o Gateway de Aplicativo com um endereço IPv6 público de front-end usando o Azure PowerShell
O Gateway de Aplicativo do Azure dá suporte a conexões de front-end dual stack (IPv4 e IPv6) de clientes. Para usar a conectividade de front-end IPv6, você precisa criar um novo Gateway de Aplicativo. Atualmente, você não pode atualizar os Gateways de Aplicativo IPv4 existentes apenas para Gateways de Aplicativo dual stack (IPv4 e IPv6). Além disso, atualmente não há suporte para endereços IPv6 de back-end.
Para dar suporte ao suporte a front-end IPv6, você deve criar uma VNet dual stack. Essa VNet dual stack tem sub-redes para IPv4 e IPv6. As VNets do Azure já fornecem funcionalidade dual stack.
Visão geral
O Azure PowerShell é usado para criar um Gateway de Aplicativo do Azure IPv6. O teste é executado para verificar se ele funciona corretamente.
Você aprenderá como:
- Configurar a rede de dual stack
- Criar um gateway de aplicativo com front-end IPv6
- Criar um conjunto de dimensionamento de máquinas virtuais 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 em servidores que você mantém. Um conjunto de dimensionamento de máquinas virtuais serve para servidores de 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 os Componentes do gateway de aplicativo.
Conclua também este guia de início rápido usando o portal do Azure.
Pré-requisitos
Se você não tiver uma assinatura 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 saber qual é a versão, execute Get-Module -ListAvailable Az
. Se você precisa atualizar, consulte Instalar o módulo do Azure PowerShell. Se você estiver executando o PowerShell localmente, também precisará executar o Login-AzAccount
para criar uma conexão com o Azure.
Regiões e disponibilidade
O Gateway de Aplicativo IPv6 está disponível para todas as regiões de nuvem pública nas quais o SKU do Gateway de Aplicativo v2 tem suporte. Ele também está disponível no Microsoft Azure operado pela 21Vianet e no Azure Governamental
Limitações
- Somente o SKU v2 dá suporte a um front-end com endereços IPv4 e IPv6
- Atualmente, não há suporte para back-ends IPv6
- No momento, não há suporte para link privado IPv6
- Atualmente, não há suporte para o Gateway de Aplicativo somente IPv6. O Gateway de Aplicativo deve ser dual stack (IPv6 e IPv4)
- O Controlador de Entrada do Gateway de Aplicativo (AGIC) não dá suporte à configuração IPv6
- Os Gateways de Aplicativo IPv4 existentes não podem ser atualizados para Gateways de Aplicativo de pilha dupla
- No momento, não há suporte para regras personalizadas do WAF com uma condição de correspondência IPv6
Criar um grupo de recursos
Um grupo de recursos é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Crie um grupo de recursos do Azure usando New-AzResourceGroup.
New-AzResourceGroup -Name myResourceGroupAG -Location eastus
Configurar uma sub-rede de dual stack e uma sub-rede de back-end
Configure as sub-redes nomeadas 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 dual stack
$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 do front-end do Gateway de Aplicativo
$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 de IP e portas
Associe a myAGSubnet criada 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 pool de back-end e as configurações
Crie o pool de back-end nomeado appGatewayBackendPool para o gateway de aplicativo usando New-AzApplicationGatewayBackendAddressPool. Defina 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 ouvinte e regra padrão
Um ouvinte é necessário para habilitar o gateway de aplicativo para rotear o tráfego corretamente para o pool de back-end. Neste exemplo, você cria um listener básico que ouve o tráfego na URL da raiz.
Crie um ouvinte nomeado mydefaultListener usando New-AzApplicationGatewayHttpListener com a configuração de front-end e porta de front-end criadas anteriormente. Uma regra é necessária para o ouvinte saber qual pool de back-end deve ser usado para tráfego de entrada. Crie uma regra básica nomeada 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 aplicativo
Agora que você criou os recursos de suporte necessários, pode especificar os 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 que hospedarão os sites. Um back-end pode ser formado por NICs, conjuntos de dimensionamento de máquinas virtuais, endereços IP públicos, endereços IP internos, nomes de domínio totalmente qualificados (FQDN) e back-ends multilocatário como o Serviço de Aplicativo do Azure.
Criar duas máquinas virtuais
Neste exemplo, você cria duas máquinas virtuais para serem usadas como servidores de back-end para o Gateway de Aplicativo. O IIS é instalado nas máquinas virtuais para verificar se o Azure criou o gateway de aplicativo com êxito. O conjunto de dimensionamento é atribuído ao pool de back-end quando você define as configurações de endereço IP.
Para criar as máquinas virtuais, obtenha a configuração do pool de back-end do Gateway de Aplicativo criado recentemente com Get-AzApplicationGatewayBackendAddressPool Essas informações são usadas para:
- Crie uma interface de rede com New-AzNetworkInterface.
- Crie uma configuração de máquina virtual com New-AzVMConfig.
- Criar a máquina virtual com New-AzVM.
Observação
Quando você executa o exemplo de código a seguir para criar as máquinas virtuais, o Azure solicita credenciais. Insira seu nome de usuário e sua senha 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
}
Localizar o endereço IP público do Gateway de Aplicativo
Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6
Atribuir um nome DNS ao endereço IPv6 de front-end
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 em azure.com.
Use os comandos a seguir para atribuir um nome em 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 aplicativo
Anteriormente, atribuimos o nome DNS myipv6appgw.eastus.cloudapp.azure.com ao endereço IPv6 público do gateway de aplicativo. Para testar essa conexão:
- Usando o cmdlet Invoke-WebRequest, emita uma solicitação para o front-end IPv6.
- Verifique a resposta. Uma resposta válida de myVM1 e myVM2 verifica se o gateway de aplicativo foi criado com êxito e é capaz de conectar-se com êxito ao back-end. Se você emitir o comando várias vezes, a carga do gateway será balanceada e responderá às solicitações subsequentes de um servidor de back-end diferente.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2
Importante
Se a conexão com o nome DNS ou endereço IPv6 falhar, pode ser porque você não pode procurar endereços IPv6 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ê poderá tentar testar a conexão com uma VM dual stack.
Limpar os recursos
Quando não forem mais necessários, remova o grupo de recursos, o gateway do aplicativo e todos os recursos relacionados usando Remove-AzResourceGroup.
Remove-AzResourceGroup -Name myResourceGroupAG