Adición de una aplicación IPv4 a IPv6 en Azure Virtual Network usando PowerShell
En este artículo se muestra cómo agregar conectividad IPv6 a una aplicación IPv4 existente en una instancia de Azure Virtual Network con una instancia de Standard Load Balancer e IP pública. La actualización local incluye:
- Espacio de direcciones IPv6 para la red virtual y la subred
- Standard Load Balancer con configuraciones de front-end IPv4 e IPV6
- Máquinas virtuales con NIC que tienen una configuración IPv4 + IPv6
- IP pública de IPv6 para que el equilibrador de carga tenga conectividad IPv6 accesible desde Internet
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
Opción | Ejemplo o vínculo |
---|---|
Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. | |
Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. | |
Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Enter para ejecutar el código o comando.
Si decide instalar y usar PowerShell de forma local, la versión del módulo de Azure PowerShell que necesita este artículo es la 6.9.0 u otra posterior. Ejecute Get-Module -ListAvailable Az
para buscar la versión instalada. Si necesita actualizarla, consulte Instalación del módulo de Azure PowerShell. Si PowerShell se ejecuta localmente, también debe ejecutar Connect-AzAccount
para crear una conexión con Azure.
Requisitos previos
En este artículo se da por supuesto que implementó una instancia de Standard Load Balancer como se describe en Inicio rápido: Creación de una instancia de Standard Load Balancer mediante Azure PowerShell.
Recuperación del grupo de recursos
Para poder generar la red virtual de doble pila, debe recuperar el grupo de recursos con Get-AzResourceGroup.
$rg = Get-AzResourceGroup -ResourceGroupName "myResourceGroupSLB"
Creación de direcciones IP IPv6
Cree una dirección IPv6 pública con New-AzPublicIpAddress para su instancia de Standard Load Balancer. En el ejemplo siguiente, se crea una dirección IP pública IPv6 denominada PublicIP_v6 en el grupo de recursos myResourceGroupSLB:
$PublicIP_v6 = New-AzPublicIpAddress `
-Name "PublicIP_v6" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Sku Standard `
-AllocationMethod Static `
-IpAddressVersion IPv6
Configuración del front-end del equilibrador de carga
Recupere la configuración del equilibrador de carga existente y, a continuación, agregue la nueva dirección IP IPv6 mediante Add-AzLoadBalancerFrontendIpConfig como se indica a continuación:
# Retrieve the load balancer configuration
$lb = Get-AzLoadBalancer -ResourceGroupName $rg.ResourceGroupName -Name "MyLoadBalancer"
# Add IPv6 components to the local copy of the load balancer configuration
$lb | Add-AzLoadBalancerFrontendIpConfig `
-Name "dsLbFrontEnd_v6" `
-PublicIpAddress $PublicIP_v6
#Update the running load balancer with the new frontend
$lb | Set-AzLoadBalancer
Configuración del grupo back-end de equilibradores de carga
Cree el grupo back-end en la copia local de la configuración del equilibrador de carga y actualice el equilibrador de carga en ejecución con la nueva configuración del grupo back-end como se indica a continuación:
$lb | Add-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6"
# Update the running load balancer with the new backend pool
$lb | Set-AzLoadBalancer
Creación de reglas de equilibrador de carga
Recupere la configuración existente del grupo back-end y front-end de equilibradores de carga y, a continuación, agregue nuevas reglas de equilibrio de carga mediante Add-AzLoadBalancerRuleConfig.
# Retrieve the updated (live) versions of the frontend and backend pool
$frontendIPv6 = Get-AzLoadBalancerFrontendIpConfig -Name "dsLbFrontEnd_v6" -LoadBalancer $lb
$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6" -LoadBalancer $lb
# Create new LB rule with the frontend and backend
$lb | Add-AzLoadBalancerRuleConfig `
-Name "dsLBrule_v6" `
-FrontendIpConfiguration $frontendIPv6 `
-BackendAddressPool $backendPoolv6 `
-Protocol Tcp `
-FrontendPort 80 `
-BackendPort 80
#Finalize all the load balancer updates on the running load balancer
$lb | Set-AzLoadBalancer
Incorporación de intervalos de direcciones IPv6
Agregue intervalos de direcciones IPv6 a la red virtual y a la subred que hospeda las máquinas virtuales como se indica a continuación:
#Add IPv6 ranges to the VNET and subnet
#Retrieve the VNET object
$vnet = Get-AzVirtualNetwork -ResourceGroupName $rg.ResourceGroupName -Name "myVnet"
#Add IPv6 prefix to the VNET
$vnet.addressspace.addressprefixes.add("fd00:db8:deca::/48")
#Update the running VNET
$vnet | Set-AzVirtualNetwork
#Retrieve the subnet object from the local copy of the VNET
$subnet= $vnet.subnets[0]
#Add IPv6 prefix to the Subnet (subnet of the VNET prefix, of course)
$subnet.addressprefix.add("fd00:db8:deca::/64")
#Update the running VNET with the new subnet configuration
$vnet | Set-AzVirtualNetwork
Incorporación de la configuración IPv6 a NIC
Configuración de todas las NIC de máquina virtual con una dirección IPv6 mediante Add-AzNetworkInterfaceIpConfig como se indica a continuación:
#Retrieve the NIC objects
$NIC_1 = Get-AzNetworkInterface -Name "myNic1" -ResourceGroupName $rg.ResourceGroupName
$NIC_2 = Get-AzNetworkInterface -Name "myNic2" -ResourceGroupName $rg.ResourceGroupName
$NIC_3 = Get-AzNetworkInterface -Name "myNic3" -ResourceGroupName $rg.ResourceGroupName
#Add an IPv6 IPconfig to NIC_1 and update the NIC on the running VM
$NIC_1 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0] -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6
$NIC_1 | Set-AzNetworkInterface
#Add an IPv6 IPconfig to NIC_2 and update the NIC on the running VM
$NIC_2 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0] -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6
$NIC_2 | Set-AzNetworkInterface
#Add an IPv6 IPconfig to NIC_3 and update the NIC on the running VM
$NIC_3 | Add-AzNetworkInterfaceIpConfig -Name MyIPv6Config -Subnet $vnet.Subnets[0] -PrivateIpAddressVersion IPv6 -LoadBalancerBackendAddressPool $backendPoolv6
$NIC_3 | Set-AzNetworkInterface
Visualización de la red virtual de doble pila IPv6 en Azure Portal
Para ver la red virtual de doble pila IPv6 en Azure Portal, siga estos pasos:
En la barra de búsqueda del portal, escriba redes virtuales y
En la ventana de Redes virtuales, seleccione myVNet.
Seleccione Dispositivos conectados en Configuración para ver las interfaces de red conectadas. La red virtual de doble pila muestra las tres NIC con configuraciones IPv4 e IPv6.
Limpieza de recursos
Cuando ya no se necesiten, puede usar el comando Remove-AzResourceGroup para quitar el grupo de recursos, la máquina virtual y todos los recursos relacionados.
Remove-AzResourceGroup -Name MyAzureResourceGroupSLB
Pasos siguientes
En este artículo, ha actualizado una instancia de Standard Load Balancer existente con una configuración de direcciones IP de front-end IPv4 a una configuración de doble pila (IPv4 e IPv6). También ha agregado configuraciones IPv6 a las NIC de las máquinas virtuales en el grupo back-end y a la instancia de Virtual Network que las hospeda. Para más información sobre la compatibilidad de IPv6 en las redes virtuales de Azure, consulte ¿Qué es IPv6 para Azure Virtual Network?