Compartir a través de


Configuración de Application Gateway con una dirección IPv6 pública de front-end mediante Azure PowerShell

Azure Application Gateway admite conexiones de front-end de pila dual (IPv4 e IPv6) desde clientes. Para usar la conectividad de front-end IPv6, debe crear una nueva instancia de Application Gateway. Actualmente no puede actualizar las instancias de Application Gateway IPv4 existentes a puertas de enlace de aplicaciones de pila dual (IPv4 e IPv6). Además, actualmente no se admiten direcciones IPv6 de back-end.

Para permitir la compatibilidad con el front-end IPv6, debe crear una red virtual de doble pila. Esta red virtual de pila doble tiene subredes para IPv4 e IPv6. Las redes virtuales de Azure ya proporcionan funcionalidad de pila dual.

Información general

Azure PowerShell se usa para crear una instancia de Azure Application Gateway IPv6. Se realizan pruebas para comprobar que funciona correctamente.

Aprenderá a:

Azure PowerShell se usa para crear una instancia de Azure Application Gateway IPv6 y realizar pruebas para tener la seguridad de que funciona correctamente. La puerta de enlace de aplicación puede administrar y proteger el tráfico web en los servidores que mantenga. Un conjunto de escalado de máquinas virtuales sirve para que los servidores backend administren el tráfico web. El conjunto de escalado contiene dos instancias de máquina virtual que se agregan al grupo de servidores back-end predeterminado de la puerta de enlace de aplicación. Para más información sobre los componentes de una puerta de enlace de aplicación, consulte Componentes de puertas de enlace de aplicación.

Para completar este inicio rápido, también puede usar Azure Portal.

Requisitos previos

Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

Si decide instalar y usar PowerShell de forma local, para realizar los pasos de este artículo necesita la versión 1.0.0 del módulo de Azure PowerShell o cualquier versión posterior. Para encontrar la versión, ejecute Get-Module -ListAvailable Az. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Login-AzAccount para crear una conexión con Azure.

Regiones y disponibilidad

Application Gateway IPv6 está disponible para todas las regiones de nube pública en las que se admite la SKU de Application Gateway v2. También está disponible en Microsoft Azure operado por 21Vianet y Azure Government

Limitaciones

  • Solo la SKU v2 admite un front-end con direcciones IPv4 e IPv6
  • Actualmente no se admiten back-end IPv6
  • Actualmente no se admite vínculo privado IPv6
  • Actualmente no se admite Application Gateway de solo IPv6. Application Gateway debe ser de pila dual (IPv6 e IPv4)
  • El controlador de entrada de Application Gateway (AGIC) no admite la configuración de IPv6.
  • Las instancias de Application Gateway IPv4 existentes no se pueden actualizar a instancias de Application Gateway de doble pila
  • Las reglas personalizadas de WAF con una condición de coincidencia IPv6 no se admiten actualmente

Crear un grupo de recursos

Un grupo de recursos es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Cree un grupo de recursos de Azure mediante New-AzResourceGroup.

New-AzResourceGroup -Name myResourceGroupAG -Location eastus

Configuración de una subred de doble pila y una subred de back-end

Configure las subredes llamadas myBackendSubnet y myAGSubnet mediante 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

Creación de una red virtual de doble pila

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

Creación de direcciones IP públicas de front-end de 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

Creación de las configuraciones y los puertos IP

Asocie el elemento myAGSubnet que creó anteriormente a la puerta de enlace de aplicaciones mediante New-AzApplicationGatewayIPConfiguration. Asigne el elemento myAGPublicIPAddress a la puerta de enlace de aplicaciones mediante 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

Creación de la configuración y el grupo de servidores back-end

Cree el grupo de servidores back-end llamado appGatewayBackendPool para la puerta de enlace de aplicaciones mediante New-AzApplicationGatewayBackendAddressPool. Configure los valores de los grupos de direcciones de los servidores back-end mediante New-AzApplicationGatewayBackendHttpSettings.

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

Creación del agente de escucha y la regla predeterminados

Es necesario un agente de escucha para que la puerta de enlace de aplicaciones enrute el tráfico de forma adecuada al grupo de servidores back-end. En este ejemplo, creará un agente de escucha básico que escucha el tráfico en la dirección URL raíz.

Cree un cliente de escucha llamado mydefaultListener mediante New-AzApplicationGatewayHttpListener con la configuración de front-end y el puerto de front-end que creó anteriormente. Es necesaria una regla para que el agente de escucha sepa qué grupo de servidores back-end se usa para el tráfico entrante. Cree una regla básica llamada rule1 mediante 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

Creación de la puerta de enlace de aplicaciones

Ahora que ha creado los recursos complementarios necesarios, puede especificar los parámetros de la puerta de enlace de aplicación mediante New-AzApplicationGatewaySku. La nueva puerta de enlace de aplicación se crea mediante New-AzApplicationGateway. Esta operación tarda unos 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 back-end

Ahora que ha creado la puerta de enlace de aplicación, puede crear las máquinas virtuales de back-end para hospedar los sitios web. Un servidor back-end puede estar compuesto por NIC, conjuntos de escalado de máquinas virtuales, direcciones IP públicas e internas, nombres de dominio completos (FQDN) y servidores back-end multiinquilino como Azure App Service.

Creación de dos máquinas virtuales

En este ejemplo, se crearán dos máquinas virtuales que se usarán como servidores back-end para la puerta de enlace de aplicaciones. IIS se instala en las máquinas virtuales para comprobar que Azure ha instalado correctamente la puerta de enlace de aplicación. El conjunto de escalado se asigna al grupo de servidores back-end al configurar las opciones de dirección IP.

Para crear las máquinas virtuales, ejecute Get-AzApplicationGatewayBackendAddressPool para obtener la configuración del grupo de servidores back-end de Application Gateway recién creado. Esta información se usa para:

  • Cree una interfaz de red con New-AzNetworkInterface.
  • Cree una configuración de máquina virtual con New-AzVMConfig.
  • Cree la máquina virtual con New-AzVM.

Nota:

Al ejecutar el ejemplo de código siguiente para crear las máquinas virtuales, Azure le pide credenciales. Escriba su nombre de usuario y contraseña. Esta operación tarda unos 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
}

Búsqueda de la dirección IP pública de Application Gateway

Get-AzPublicIPAddress -ResourceGroupName myResourceGroupAG -Name myAGPublicIPAddress6

Asignación de un nombre DNS a la dirección IPv6 de front-end

Un nombre DNS facilita las pruebas de la puerta de enlace de aplicación IPv6. Puede asignar un nombre DNS público usando su propio dominio y registrador o puede crear un nombre en azure.com.

Use los comandos siguientes para asignar un nombre en azure.com. El nombre se establece en la etiqueta que especifique más la región y más cloudapp.azure.com. En este ejemplo, el registro AAAA myipv6appgw se crea en el espacio de nombres eastus.cloudapp.azure.com:

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

Prueba de la puerta de enlace de aplicaciones

Anteriormente, asignamos el nombre DNS myipv6appgw.eastus.cloudapp.azure.com a la dirección IPv6 pública de la puerta de enlace de aplicación. Para probar esta conexión:

  1. Emita una solicitud al front-end IPv6 con el cmdlet Invoke-WebRequest.
  2. Compruebe la respuesta. Una respuesta válida de myVM1 o de myVM2corrobora que la puerta de enlace de aplicación se ha creado correctamente y puede conectarse sin problemas con el back-end. Si emite el comando varias veces, la puerta de enlace equilibra la carga y responde a las solicitudes subsiguientes desde otro servidor back-end.
PS C:\> (Invoke-WebRequest -Uri myipv6appgw.eastus.cloudapp.azure.com).Content
myVM2

Importante

Si se produce un error en la conexión con el nombre DNS o la dirección IPv6, puede deberse a que no se pueden examinar direcciones IPv6 desde el dispositivo. Para comprobar si este es el problema, pruebe también la dirección IPv4 de la puerta de enlace de aplicaciones. Si la dirección IPv4 se conecta correctamente, es probable que no tenga una dirección IPv6 pública asignada al dispositivo. Si este es el caso, puede probar la conexión con una máquina virtual de pila dual.

Limpieza de recursos

Cuando ya no los necesite, puede usar el comando Remove-AzResourceGroup para quitar el grupo de recursos, la puerta de enlace de aplicaciones y todos los recursos relacionados.

Remove-AzResourceGroup -Name myResourceGroupAG

Pasos siguientes