Implementación de una instancia de Equilibrador de carga de puerta de enlace de doble pila

En este tutorial, implementará configuraciones de IPv6 en una instancia existente de Equilibrador de carga de puerta de enlace configurada para IPv4.

Aprenderá a:

  • Agregue intervalos de direcciones IPv6 a una subred existente.
  • Agregue un front-end IPv6 a una instancia de Equilibrador de carga de puerta de enlace.
  • Agregue un grupo de back-end IPv6 a una instancia de Equilibrador de carga de puerta de enlace.
  • Agregue la configuración IPv6 a las interfaces de red.
  • Agregue una regla de equilibrio de carga para el tráfico IPv6.
  • Encadene el front-end del equilibrador de carga IPv6 a la instancia de Equilibrador de carga de puerta de enlace.

Junto con la instancia de Equilibrador de carga de puerta de enlace, este escenario incluye los siguientes recursos ya implementados:

  • Una red virtual de pila dual y una subred.
  • Una instancia estándar de Load Balancer con configuraciones de front-end dual (IPv4 + IPv6).
  • Una instancia de Equilibrador de carga de puerta de enlace solo con IPv4.
  • Una interfaz de red con una configuración IP de pila dual, un grupo de seguridad de red adjunto y direcciones IPv4 y IPv6 públicas.

Requisitos previos

Adición de intervalos de direcciones IPv6 a una subred existente

En este artículo, se supone que ya tiene una instancia de Equilibrador de carga de puerta de enlace configurada para el tráfico IPv4, con una red virtual y una subred correspondientes. En este paso, agregará intervalos IPv6 a la red virtual y la subred de la instancia de Equilibrador de carga de puerta de enlace. Este intervalo es necesario al crear una configuración de front-end IPv6 para la instancia de Equilibrador de carga de puerta de enlace mediante una dirección IP privada de esta subred o red virtual.


#Add IPv6 ranges to the VNET and subnet
#Retrieve the VNET object
$rg = Get-AzResourceGroup  -ResourceGroupName "myResourceGroup"
$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.addressprefix.add("fd00:db8:deca::/64")

#Update the running VNET with the new subnet configuration
$vnet |  Set-AzVirtualNetwork

Adición de un front-end IPv6 a una instancia de Equilibrador de carga de puerta de enlace

Ahora que ha agregado intervalos de prefijos IPv6 a la subred y la red virtual de la instancia de Equilibrador de carga de puerta de enlace, podemos crear una nueva configuración de front-end IPv6 en la instancia de Equilibrador de carga de puerta de enlace con una dirección IPv6 del intervalo de la subred.


# Retrieve the load balancer configuration
$gwlb = Get-AzLoadBalancer -ResourceGroupName "myResourceGroup"-Name "myGatewayLoadBalancer"

# Add IPv6 frontend configuration to the local copy of the load balancer configuration
$gwlb | Add-AzLoadBalancerFrontendIpConfig `
     -Name "myGatewayFrontEndv6" `
     -PrivateIpAddressVersion "IPv6" `
     -Subnet $subnet

#Update the running load balancer with the new frontend
$gwlb | Set-AzLoadBalancer 

Adición de un grupo de back-end IPv6 a una instancia de Equilibrador de carga de puerta de enlace

Para distribuir el tráfico IPv6, necesita un grupo de back-end que contenga instancias con direcciones IPv6. En primer lugar, cree un grupo de back-end en la instancia de Equilibrador de carga de puerta de enlace. En el paso siguiente, creará configuraciones IPv6 en las NIC de back-end existentes para el tráfico IPv4 y las adjuntará a este grupo de back-end.


## Create IPv6 tunnel interfaces
$int1 = @{
    Type = 'Internal'
    Protocol = 'Vxlan'
    Identifier = '866'
    Port = '2666'
}
$tunnelInterface1 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int1

$int2 = @{
    Type = 'External'
    Protocol = 'Vxlan'
    Identifier = '867'
    Port = '2667'
}
$tunnelInterface2 = New-AzLoadBalancerBackendAddressPoolTunnelInterfaceConfig @int2

# Create the IPv6 backend pool
$pool = @{
    Name = 'myGatewayBackendPoolv6'
    TunnelInterface = $tunnelInterface1,$tunnelInterface2
}

# Add the backend pool to the load balancer
$gwlb | Add-AzLoadBalancerBackendAddressPoolConfig @pool

# Update the load balancer
$gwlb | Set-AzLoadBalancer

Adición de la configuración IPv6 a las interfaces de red


#Retrieve the NIC object
$NIC_1 = Get-AzNetworkInterface -Name "myNic1" -ResourceGroupName $rg.ResourceGroupName


$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "myGatewayBackendPoolv6" -LoadBalancer $gwlb

#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


Adición de una regla de equilibrio de carga para el tráfico IPv6

Las reglas de equilibrio de carga determinan cómo se enruta el tráfico a las instancias de back-end. Para la instancia de Equilibrador de carga de puerta de enlace, cree una regla de equilibrio de carga con puertos de alta disponibilidad habilitados, de modo que pueda inspeccionar el tráfico de todos los protocolos que llegan a todos los puertos.


# Retrieve the updated (live) versions of the frontend and backend pool, and existing health probe
$frontendIPv6 = Get-AzLoadBalancerFrontendIpConfig -Name "myGatewayFrontEndv6" -LoadBalancer $gwlb
$backendPoolv6 = Get-AzLoadBalancerBackendAddressPoolConfig -Name "myGatewayBackendPoolv6" -LoadBalancer $gwlb
$healthProbe = Get-AzLoadBalancerProbeConfig -Name "myHealthProbe" -LoadBalancer $gwlb

# Create new LB rule with the frontend and backend
$gwlb | Add-AzLoadBalancerRuleConfig `
  -Name "myRulev6" `
  -FrontendIpConfiguration $frontendIPv6 `
  -BackendAddressPool $backendPoolv6 `
  -Protocol All `
  -FrontendPort 0 `
  -BackendPort 0 `
  -Probe $healthProbe

#Finalize all the load balancer updates on the running load balancer
$gwlb | Set-AzLoadBalancer
 

Encadenamiento del front-end del equilibrador de carga IPv6 a la instancia de Equilibrador de carga de puerta de enlace

En este último paso, encadenará el front-end IPv6 de Standard Load Balancer existente al front-end IPv6 de la instancia de Equilibrador de carga de puerta de enlace. Ahora, todo el tráfico IPv6 dirigido al front-end de Standard Load Balancer se reenvía a la instancia de Equilibrador de carga de puerta de enlace para su inspección por parte de las NVA configuradas antes de llegar a la aplicación.


## Place the existing Standard load balancer into a variable. ##
$par1 = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myLoadBalancer'
}
$lb = Get-AzLoadBalancer @par1

## Place the public frontend IP of the Standard load balancer into a variable.
$par3 = @{
    ResourceGroupName = 'myResourceGroup'
    Name = 'myIPv6PublicIP'
}
$publicIP = Get-AzPublicIPAddress @par3

## Chain the Gateway load balancer to your existing Standard load balancer frontend. ##
# $feip = Get-AzLoadBalancerFrontendIpConfig -Name "myGatewayFrontEndv6" -LoadBalancer $gwlb

$par4 = @{
    Name = 'myIPv6FrontEnd'
    PublicIPAddress = $publicIP 
    LoadBalancer = $lb
    GatewayLoadBalancerId = $feip.id
}
$config = Set-AzLoadBalancerFrontendIpConfig @par4

$config | Set-AzLoadBalancer

Limitaciones

  • La instancia de Equilibrador de carga de puerta de enlace no admite NAT 64/46.
  • Al implementar el encadenamiento, debe coincidir la versión de dirección IP de las configuraciones de front-end de Standard Load Balancer y Equilibrador de carga de puerta de enlace.

Pasos siguientes