Utiliser Azure CLI pour déployer une application double pile IPv6 dans un réseau virtuel Azure

Cet article montre comment déployer dans Azure une application double pile (IPv4 + IPv6) avec un équilibreur de charge standard incluant un réseau virtuel double pile avec un sous-réseau double pile, un équilibreur de charge standard avec des configurations de front-end doubles (IPv4 + IPv6), des machines virtuelles dont les cartes réseau ont une configuration IP double, des règles de groupe de sécurité réseau doubles et des IP publiques doubles.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.

Prérequis

  • Cet article demande la version 2.0.49 ou ultérieure d’Azure CLI. Si vous utilisez Azure Cloud Shell, la version la plus récente est déjà installée.

Créer un groupe de ressources

Avant de pouvoir créer un réseau virtuel double pile, vous devez créer un groupe de ressources avec az group create. L’exemple suivant crée un groupe de ressources nommé DsResourceGroup01 à l’emplacement eastus :

az group create \
--name DsResourceGroup01 \
--location eastus

Créer des adresses IP publiques IPv4 et IPv6 pour l’équilibreur de charge

Pour accéder à vos points de terminaison IPv4 et IPv6 sur Internet, vous avez besoin d’adresses IP publiques IPv4 et IPv6 pour l’équilibreur de charge. Créez une adresse IP publique avec la commande az network public-ip create. L’exemple suivant crée des adresses IP IPv4 et IPv6 publiques nommées dsPublicIP_v4 and dsPublicIP_v6 dans le groupe de ressources DsResourceGroup01 :

# Create an IPV4 IP address
az network public-ip create \
--name dsPublicIP_v4  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku STANDARD  \
--allocation-method static  \
--version IPv4

# Create an IPV6 IP address
az network public-ip create \
--name dsPublicIP_v6  \
--resource-group DsResourceGroup01  \
--location eastus \
--sku STANDARD  \
--allocation-method static  \
--version IPv6

Créer des adresses IP publiques pour les machines virtuelles

Pour accéder à distance à vos machines virtuelles sur Internet, vous avez besoin d’adresses IP publiques IPv4 pour les machines virtuelles. Créez une adresse IP publique avec la commande az network public-ip create.

az network public-ip create \
--name dsVM0_remote_access  \
--resource-group DsResourceGroup01 \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

az network public-ip create \
--name dsVM1_remote_access  \
--resource-group DsResourceGroup01  \
--location eastus  \
--sku Standard  \
--allocation-method static  \
--version IPv4

Créer un Standard Load Balancer

Dans cette section, vous configurez une IP de front-end double (IPv4 et IPv6) et le pool d’adresses de back-end pour l’équilibreur de charge, puis créez un équilibreur de charge standard.

Créer un équilibreur de charge

Créez l’équilibreur de charge Standard à l’aide de la commande az network lb create. Il est nommé dsLB et inclut un pool frontal nommé dsLbFrontEnd_v4 et un pool principal nommé dsLbBackEndPool_v4, qui est associé à l’adresse IP publique IPv4 dsPublicIP_v4 créée à l’étape précédente.

az network lb create \
--name dsLB  \
--resource-group DsResourceGroup01 \
--sku Standard \
--location eastus \
--frontend-ip-name dsLbFrontEnd_v4  \
--public-ip-address dsPublicIP_v4  \
--backend-pool-name dsLbBackEndPool_v4

Créer une adresse IP frontale IPv6

Créez une adresse IP frontale IPV6 avec az network lb frontend-ip create. L’exemple suivant crée une configuration IP frontale nommée dsLbFrontEnd_v6 et joint l’adresse dsPublicIP_v6 :

az network lb frontend-ip create \
--lb-name dsLB  \
--name dsLbFrontEnd_v6  \
--resource-group DsResourceGroup01  \
--public-ip-address dsPublicIP_v6

Configurer un pool d’adresses de back-end IPv6

Créez un pool d’adresses de back-end IPv6 avec az network lb address-pool create. L’exemple suivant crée un pool d’adresses de back-end nommé dsLbBackEndPool_v6 pour inclure des machines virtuelles avec des configurations de carte réseau IPv6 :

az network lb address-pool create \
--lb-name dsLB  \
--name dsLbBackEndPool_v6  \
--resource-group DsResourceGroup01

Créer une sonde d’intégrité

Créez une sonde d’intégrité à l’aide de la commande az network lb probe create pour surveiller l’intégrité des machines virtuelles.

az network lb probe create -g DsResourceGroup01  --lb-name dsLB -n dsProbe --protocol tcp --port 3389

Créer une règle d’équilibreur de charge

Une règle d’équilibrage de charge est utilisée pour définir la distribution du trafic vers les machines virtuelles. Vous définissez la configuration IP frontale pour le trafic entrant et le pool d’adresses IP principal pour recevoir le trafic, ainsi que le port source et le port de destination requis.

Utilisez az network lb rule create pour créer une règle d’équilibrage de charge. L’exemple suivant crée des règles d’équilibreur de charge nommées dsLBrule_v4 et dsLBrule_v6 et équilibre le trafic sur le port TCP80 vers les configurations IP front-end IPv4 et IPv6 :

az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v4  \
--resource-group DsResourceGroup01  \
--frontend-ip-name dsLbFrontEnd_v4  \
--protocol Tcp  \
--frontend-port 80  \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v4


az network lb rule create \
--lb-name dsLB  \
--name dsLBrule_v6  \
--resource-group DsResourceGroup01 \
--frontend-ip-name dsLbFrontEnd_v6  \
--protocol Tcp  \
--frontend-port 80 \
--backend-port 80  \
--probe-name dsProbe \
--backend-pool-name dsLbBackEndPool_v6

Créer des ressources réseau

Avant de déployer des machines virtuelles, vous devez créer des ressources réseau de prise en charge (groupe à haute disponibilité, Groupe de sécurité réseau, réseau virtuel et cartes réseau virtuelles).

Créer un groupe à haute disponibilité

Pour améliorer la disponibilité de votre application, placez vos machines virtuelles dans un groupe à haute disponibilité.

Créez un groupe à haute disponibilité avec la commande az vm availability-set create. L’exemple suivant permet de créer un groupe à haute disponibilité nommé dsAVset :

az vm availability-set create \
--name dsAVset  \
--resource-group DsResourceGroup01  \
--location eastus \
--platform-fault-domain-count 2  \
--platform-update-domain-count 2  

Création d’un groupe de sécurité réseau

Créez un groupe de sécurité réseau pour les règles qui régissent les communications entrantes et sortantes de votre réseau virtuel.

Créer un groupe de sécurité réseau

Créez un Groupe de sécurité réseau avec la commande az network nsg create.

az network nsg create \
--name dsNSG1  \
--resource-group DsResourceGroup01  \
--location eastus

Créez une règle de Groupe de sécurité réseau pour les connexions entrantes et sortantes.

Avec az network nsg rule create, créez une règle de Groupe de sécurité réseau pour autoriser les connexions RDP sur le port 3389 et la connexion Internet sur le port 80, ainsi que pour les connexions sortantes.

# Create inbound rule for port 3389
az network nsg rule create \
--name allowRdpIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 100  \
--description "Allow Remote Desktop In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges 3389

# Create inbound rule for port 80
az network nsg rule create \
--name allowHTTPIn  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 200  \
--description "Allow HTTP In"  \
--access Allow  \
--protocol "*"  \
--direction Inbound  \
--source-address-prefixes "*"  \
--source-port-ranges 80  \
--destination-address-prefixes "*"  \
--destination-port-ranges 80

# Create outbound rule

az network nsg rule create \
--name allowAllOut  \
--nsg-name dsNSG1  \
--resource-group DsResourceGroup01  \
--priority 300  \
--description "Allow All Out"  \
--access Allow  \
--protocol "*"  \
--direction Outbound  \
--source-address-prefixes "*"  \
--source-port-ranges "*"  \
--destination-address-prefixes "*"  \
--destination-port-ranges "*"

Créez un réseau virtuel

Créez un réseau virtuel avec la commande az network vnet create. L’exemple suivant crée un réseau virtuel nommé dsVNET avec les sous-réseaux dsSubNET_v4 et dsSubNET_v6 :

# Create the virtual network
az network vnet create \
--name dsVNET \
--resource-group DsResourceGroup01 \
--location eastus  \
--address-prefixes "10.0.0.0/16" "fd00:db8:deca::/48"

# Create a single dual stack subnet

az network vnet subnet create \
--name dsSubNET \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--address-prefixes "10.0.0.0/24" "fd00:db8:deca:deed::/64" \
--network-security-group dsNSG1

Créer des cartes réseau

Créez des cartes réseau virtuelles pour chaque machine virtuelle avec az network nic create. L’exemple suivant crée une carte réseau virtuelle pour chaque machine virtuelle. Chaque carte réseau a deux configurations IP (1 configuration IPv4 et 1 configuration IPv6). Vous allez créer la configuration IPV6 avec az network nic ip-config create.

# Create NICs
az network nic create \
--name dsNIC0  \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1  \
--vnet-name dsVNET  \
--subnet dsSubNet  \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4  \
--lb-name dsLB  \
--public-ip-address dsVM0_remote_access

az network nic create \
--name dsNIC1 \
--resource-group DsResourceGroup01 \
--network-security-group dsNSG1 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv4 \
--lb-address-pools dsLbBackEndPool_v4 \
--lb-name dsLB \
--public-ip-address dsVM1_remote_access

# Create IPV6 configurations for each NIC

az network nic ip-config create \
--name dsIp6Config_NIC0  \
--nic-name dsNIC0  \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

az network nic ip-config create \
--name dsIp6Config_NIC1 \
--nic-name dsNIC1 \
--resource-group DsResourceGroup01 \
--vnet-name dsVNET \
--subnet dsSubNet \
--private-ip-address-version IPv6 \
--lb-address-pools dsLbBackEndPool_v6 \
--lb-name dsLB

Créer des machines virtuelles

Créez les machines virtuelles avec az vm create. L’exemple suivant crée deux machines virtuelles ainsi que les composants de réseau virtuel nécessaires s’ils n’existent pas encore.

Créez la machine virtuelle dsVM0 comme suit :

 az vm create \
--name dsVM0 \
--resource-group DsResourceGroup01 \
--nics dsNIC0 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest  

Créez la machine virtuelle dsVM1 comme suit :

az vm create \
--name dsVM1 \
--resource-group DsResourceGroup01 \
--nics dsNIC1 \
--size Standard_A2 \
--availability-set dsAVset \
--image MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest 

Afficher le réseau virtuel double pile IPv6 dans le Portail Microsoft Azure

Vous pouvez afficher le réseau virtuel double pile IPv6 dans le Portail Microsoft Azure en procédant comme suit :

  1. Dans la barre de recherche du portail, saisissez dsVnet.
  2. Quand la mention myVirtualNetwork apparaît dans les résultats de recherche, sélectionnez-la. Cette opération affiche la page Vue d’ensemble du réseau virtuel double pile nommé dsVnet. Le réseau virtuel de pile double présente les deux cartes réseau, avec des configurations IPv4 et IPv6 situées dans le sous-réseau double pile nommé dsSubnet.

IPv6 dual stack virtual network in Azure

Nettoyer les ressources

Lorsque vous n’en avez plus besoin, vous pouvez utiliser la commande az group delete pour supprimer le groupe de ressources, la machine virtuelle et toutes les ressources associées.

 az group delete --name DsResourceGroup01

Étapes suivantes

Cet article vous a permis de créer un équilibreur de charge Standard Load Balancer avec une configuration IP front-end double (IPv4 et IPv6). Vous avez également créé deux machines virtuelles incluant des cartes réseau avec des configurations IP doubles (IPV4 + IPv6), qui ont été ajoutées au pool de back-ends de l’équilibreur de charge. 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).