Utiliser PowerShell pour ajouter une application IPv4 vers IPv6 dans un réseau virtuel Azure
Cet article explique comment ajouter une connectivité IPv6 à une application IPv4 existante dans un réseau virtuel Azure avec un Standard Load Balancer et une adresse IP publique. La mise à niveau sur place comprend les éléments suivants :
- Espace d’adressage IPv6 pour le réseau virtuel et le sous-réseau
- Standard Load Balancer avec des configurations frontales IPv4 et IPV6
- Machines virtuelles avec cartes réseau disposant d’une configuration IPv4 + IPv6
- Adresse IP publique IPv6 pour que l'équilibreur de charge dispose d'une connectivité IPv6 accessible sur Internet
Azure Cloud Shell
Azure héberge Azure Cloud Shell, un environnement d’interpréteur de commandes interactif que vous pouvez utiliser dans votre navigateur. Vous pouvez utiliser Bash ou PowerShell avec Cloud Shell pour utiliser les services Azure. Vous pouvez utiliser les commandes préinstallées Cloud Shell pour exécuter le code de cet article sans avoir à installer quoi que ce soit dans votre environnement local.
Pour démarrer Azure Cloud Shell :
Option | Exemple/Lien |
---|---|
Sélectionnez Essayer dans le coin supérieur droite d’un bloc de codes ou de commandes. La sélection de Essayer ne copie pas automatiquement le code ni la commande dans Cloud Shell. | |
Accédez à https://shell.azure.com ou sélectionnez le bouton Lancer Cloud Shell pour ouvrir Cloud Shell dans votre navigateur. | |
Sélectionnez le bouton Cloud Shell dans la barre de menus en haut à droite du portail Azure. |
Pour utiliser Azure Cloud Shell :
Démarrez Cloud Shell.
Sélectionnez le bouton Copier sur un bloc de codes (ou un bloc de commandes) pour copier le code ou la commande.
Collez le code ou la commande dans la session Cloud Shell en sélectionnant Ctrl+Maj+V sur Windows et Linux ou en sélectionnant Cmd+Maj+V sur macOS.
Sélectionnez Entrée pour exécuter le code ou la commande.
Si vous choisissez d’installer et d’utiliser PowerShell en local, vous devez exécuter le module Azure PowerShell version 6.9.0 ou ultérieure pour les besoins de cet article. Exécutez Get-Module -ListAvailable Az
pour rechercher la version installée. Si vous devez effectuer une mise à niveau, consultez Installer le module Azure PowerShell. Si vous exécutez PowerShell en local, vous devez également exécuter Connect-AzAccount
pour créer une connexion avec Azure.
Prérequis
Cet article suppose que vous avez déployé un équilibreur de charge standard comme cela est décrit dans Démarrage rapide : Créer un équilibreur de charge standard - Azure PowerShell.
Récupérer le groupe de ressources
Avant de pouvoir créer un réseau virtuel double pile, vous devez récupérer le groupe de ressources avec Get-AzResourceGroup.
$rg = Get-AzResourceGroup -ResourceGroupName "myResourceGroupSLB"
Créer une adresse IP IPv6
Créez une adresse IPv6 publique avec New-AzPublicIpAddress pour votre Standard Load Balancer. L’exemple suivant crée une adresse IP publique IPv6 nommée PublicIP_v6 dans le groupe de ressources myResourceGroupSLB :
$PublicIP_v6 = New-AzPublicIpAddress `
-Name "PublicIP_v6" `
-ResourceGroupName $rg.ResourceGroupName `
-Location $rg.Location `
-Sku Standard `
-AllocationMethod Static `
-IpAddressVersion IPv6
Configurer le front-end de l’équilibreur de charge
Récupérez la configuration d’équilibreur de charge existante, puis ajoutez la nouvelle adresse IP IPv6 en utilisant Add-AzLoadBalancerFrontendIpConfig comme suit :
# 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
Configurer le pool back-end de l’équilibreur de charge
Créez le pool back-end sur la copie locale de la configuration d’équilibreur de charge et mettez à jour l’équilibreur de charge en cours d’exécution avec la nouvelle configuration de pool back-end, comme suit :
$lb | Add-AzLoadBalancerBackendAddressPoolConfig -Name "LbBackEndPool_v6"
# Update the running load balancer with the new backend pool
$lb | Set-AzLoadBalancer
Configurer les règles d’équilibreur de charge
Récupérez la configuration existante des pools back-end et front-end d’équilibreur de charge, puis ajoutez de nouvelles règles d’équilibrage de charge avec 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
Ajouter des plages d’adresses IPv6
Ajoutez des plages d’adresses IPv6 au réseau virtuel et au sous-réseau hébergeant les machines virtuelles comme suit :
#Add IPv6 ranges to the VNET and subnet
#Retreive 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
Ajouter la configuration IPv6 aux cartes réseau
Configurez toutes les cartes réseau des machines virtuelles avec une adresse IPv6 à l’aide de Add-AzNetworkInterfaceIpConfig comme suit :
#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
Afficher le réseau virtuel double pile IPv6 dans le portail Azure
Vous pouvez afficher le réseau virtuel double pile IPv6 dans le portail Azure en procédant comme suit :
Dans la barre de recherche du portail, entrez réseaux virtuels et
Dans la fenêtre Réseaux virtuels, sélectionnez myVNet.
Sélectionnez Appareils connectés sous Paramètres pour voir les interfaces réseau jointes. Le réseau virtuel double pile affiche les trois cartes réseau, avec les configurations IPv4 et IPv6.
Nettoyer les ressources
Quand vous n’en avez plus besoin, vous pouvez utiliser la commande Remove-AzResourceGroup pour supprimer le groupe de ressources, la machine virtuelle et toutes les ressources associées.
Remove-AzResourceGroup -Name MyAzureResourceGroupSLB
Étapes suivantes
Dans cet article, vous avez mis à jour un équilibreur de charge standard existant avec une configuration d’adresse IP front-end IPv4 en une configuration double pile (IPv4 et IPv6). Vous avez également ajouté des configurations IPv6 aux cartes réseau des machines virtuelles du pool principal et au réseau virtuel qui les héberge. Pour en savoir plus sur la prise en charge du protocole IPv6 dans les réseaux virtuels Azure, voir What is IPv6 for Azure Virtual Network? (Rôle d’iPv6 pour un réseau virtuel Azure).