Déployer un équilibreur de charge de passerelle Azure double pile

Dans ce tutoriel, vous déployez des configurations IPv6 sur un équilibreur de charge de passerelle Azure configuré par IPv4 existant.

Vous allez découvrir comment effectuer les actions suivantes :

  • Ajoutez des plages d’adresses IPv6 à un sous-réseau existant.
  • Ajoutez un front-end IPv6 à l’équilibreur de charge de passerelle.
  • Ajoutez un pool principal IPv6 à l’équilibreur de charge de passerelle.
  • Ajoutez la configuration IPv6 aux interfaces réseau.
  • Ajoutez une règle d’équilibrage de charge pour le trafic IPv6.
  • Chaînez le front-end de l’équilibreur de charge IPv6 à l’équilibreur de charge de passerelle.

En plus de l’équilibreur de charge de passerelle, ce scénario inclut les ressources déjà déployées suivantes :

  • Un réseau virtuel et un sous-réseau double pile.
  • Un équilibreur de charge Standard avec des configurations front-end double (IPv4 + IPv6).
  • Un équilibreur de charge de passerelle avec IPv4 uniquement.
  • Une interface réseau avec une configuration IP à double pile, un groupe de sécurité réseau attaché, et des adresses IPv4 et IPv6 publiques.

Prérequis

Ajouter des plages d’adresses IPv6 à un sous-réseau existant

Cet article suppose que vous disposez déjà d’un équilibreur de charge de passerelle configuré pour le trafic IPv4, avec un réseau virtuel et un sous-réseau correspondants. Dans cette étape, vous ajoutez des plages IPv6 au réseau virtuel et au sous-réseau de votre équilibreur de charge de passerelle. Cette plage est nécessaire lors de la création d’une configuration front-end IPv6 pour votre équilibreur de charge de passerelle à l’aide d’une adresse IP privée à partir de ce sous-réseau/réseau virtuel.


#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

Ajouter un front-end IPv6 à l’équilibreur de charge de passerelle

Maintenant que vous avez ajouté des plages de préfixe IPv6 au sous-réseau et au réseau virtuel de votre équilibreur de charge de passerelle, nous pouvons créer une configuration front-end IPv6 sur l’équilibreur de charge de passerelle, avec une adresse IPv6 à partir de la plage de votre sous-réseau.


# 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 

Ajouter un pool principal IPv6 à l’équilibreur de charge de passerelle

Pour distribuer le trafic IPv6, vous avez besoin d’un pool principal contenant des instances avec des adresses IPv6. Tout d’abord, vous créez un pool principal sur l’équilibreur de charge de passerelle. À l’étape suivante, vous allez créer des configurations IPv6 sur vos cartes réseau principales existantes pour le trafic IPv4 et les attacher à ce pool principal.


## 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

Ajouter une configuration IPv6 aux interfaces réseau


#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


Ajouter une règle d’équilibrage de charge pour le trafic IPv6

Les règles d’équilibrage de charge déterminent la façon dont le trafic est acheminé vers vos instances principales. Pour l’équilibreur de charge de passerelle, vous créez une règle d’équilibrage de charge avec les ports haute disponibilité activés, afin de pouvoir inspecter le trafic de tous les protocoles, arrivant sur tous les ports.


# 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
 

Chaîner le front-end de l’équilibreur de charge IPv6 à l’équilibreur de charge de passerelle

Dans cette dernière étape, vous allez chaîner le front-end IPv6 de votre Standard Load Balancer existant au front-end IPv6 de l’équilibreur de charge de passerelle. À présent, tout le trafic IPv6 dirigé vers le front-end du Standard Load Balancer est transféré à votre équilibreur de charge de passerelle pour inspection par les appliances virtuelles réseau configurées avant d’atteindre votre application.


## 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

Limites

  • L’équilibreur de charge de passerelle ne prend pas en charge NAT 64/46.
  • Lorsque vous implémentez le chaînage, la version d’adresse IP des configurations front-end Standard et de l’équilibreur de charge de passerelle doit correspondre.

Étapes suivantes