Convertir l'équilibreur de charge d'application en IPv6

Ce document explique comment convertir des ressources et des backends de l'équilibreur de charge d'application de IPv4 uniquement (pile unique) vers IPv4 et IPv6 (double pile). Le principal avantage de l'utilisation d'IPv6 est qu'un pool d'adresses IP beaucoup plus important peut être alloué. Vous pouvez configurer l'équilibreur de charge pour qu'il mette fin au trafic IPv6 entrant et transfère ce trafic via une connexion IPv4 ou IPv6 à vos backends, en fonction de vos préférences. Pour en savoir plus, consultez IPv6 pour les équilibreurs de charge d'application et les équilibreurs de charge réseau proxy.

Dans ce document, "IPv4 uniquement" (pile unique) fait référence aux ressources qui n'utilisent que des adresses IPv4, et IPv4 et IPv6 (double pile) fait référence aux ressources qui utilisent à la fois des adresses IPv4 et IPv6.

Avant de commencer

Tenez compte des conditions suivantes avant de commencer le processus de conversion:

  • Vous devez utiliser l'un des types d'équilibreurs de charge d'application suivants:

    • Équilibreur de charge d'application externe mondial
    • Équilibreur de charge d'application externe régional
    • Équilibreur de charge d'application interne interrégional
    • Équilibreur de charge d'application interne régional

    Les équilibreurs de charge d'application classiques ne sont pas compatibles avec les backends ou les sous-réseaux à double pile. Pour en savoir plus sur la compatibilité IPv6, consultez la section IPv6 pour les équilibreurs de charge d'application et les équilibreurs de charge réseau proxy.

  • Votre équilibreur de charge doit comporter des backends de groupe d'instances de VM ou des backends de groupe de points de terminaison du réseau (NEG) zonaux avec des points de terminaison GCE_VM_IP_PORT. Les autres types de backends ne sont pas compatibles avec la double pile.

De plus, le processus de conversion diffère selon le type d'équilibreur de charge.

  • Pour les équilibreurs de charge d'application externes globaux, vous convertissez les backends en double pile et vous créez une règle de transfert IPv6 pouvant gérer le trafic IPv6 entrant.

  • Pour les équilibreurs de charge d'application internes interrégionaux, les équilibreurs de charge d'application externes régionaux et les équilibreurs de charge d'application internes régionaux, vous ne convertissez que les backends en double pile. Les règles de transfert IPv6 ne sont pas compatibles avec ces équilibreurs de charge.

Pour savoir comment configurer des équilibreurs de charge d'application, consultez la documentation suivante:

Identifier les ressources à convertir

Notez les noms des ressources auxquelles votre équilibreur de charge est associé. Vous devrez fournir ces noms ultérieurement.

  1. Pour répertorier tous les sous-réseaux, exécutez la commande gcloud compute networks subnets list:

    gcloud compute networks subnets list
    

    Notez le nom du sous-réseau avec des adresses IPv4 uniquement à convertir en double pile. Ce nom sera désigné plus loin par SUBNET. Le réseau VPC sera désigné plus loin par NETWORK.

  2. Pour répertorier tous les services de backend, exécutez la commande gcloud compute backend-services list:

    gcloud compute backend-services list
    

    Notez le nom du service de backend à convertir en double pile. Ce nom sera désigné plus loin par BACKEND_SERVICE.

  3. Pour répertorier tous les mappages d'URL, exécutez la commande gcloud compute url-maps list:

    gcloud compute url-maps list
    

    Notez le nom du mappage d'URL associé à votre équilibreur de charge. Ce nom sera désigné plus loin par URL_MAP.

  4. Si vous disposez déjà d'un équilibreur de charge, pour afficher le type de pile IP de vos backends, exécutez la commande gcloud compute instances list:

    gcloud compute instances list \
        --format= \
        "table(
        name,
        zone.basename(),
        networkInterfaces[].stackType.notnull().list(),
        networkInterfaces[].ipv6AccessConfigs[0].externalIpv6.notnull().list():label=EXTERNAL_IPV6,
        networkInterfaces[].ipv6Address.notnull().list():label=INTERNAL_IPV6)"
    
  5. Pour répertorier toutes les instances de VM et tous les modèles d'instance, utilisez la commande gcloud compute instances list et la commande gcloud compute instance-templates list:

    gcloud compute instances list
    
    gcloud compute instance-templates list
    

    Notez les noms des instances et des modèles d'instance à convertir en double pile. Ce nom sera désigné plus loin par VM_INSTANCE et INSTANCE_TEMPLATES.

  6. Pour répertorier tous les groupes d'instances, utilisez la commande gcloud compute instance-groups list:

    gcloud compute instance-groups list
    

    Notez le nom des groupes de points de terminaison du réseau à convertir en double pile. Ce nom sera désigné plus loin par INSTANCE_GROUP.

  7. Pour répertorier tous les groupes de points de terminaison du réseau (NEG) zonaux, exécutez la commande gcloud compute network-endpoint-groups list:

    gcloud compute network-endpoint-groups list
    

    Notez les noms des backends de NEG zonaux à convertir en double pile. Ce nom sera désigné plus loin par ZONAL_NEG.

  8. Pour répertorier tous les proxys cibles, utilisez la commande gcloud compute target-http-proxies list:

    gcloud compute target-http-proxies list
    

    Notez le nom du proxy cible associé à votre équilibreur de charge. Ce nom sera désigné plus loin par TARGET_PROXY.

Convertir des backends à pile unique en backends à double pile

Cette section explique comment convertir les ressources et les backends de votre équilibreur de charge à l'aide d'adresses IPv4 uniquement (pile unique) en adresses IPv4 et IPv6 (double pile).

Mettre à jour le sous-réseau

Les sous-réseaux à double pile ne sont compatibles qu'avec les réseaux VPC en mode personnalisé. Les sous-réseaux à double pile ne sont pas compatibles avec les réseaux VPC en mode automatique ou les anciens réseaux. Même si les VPC en mode automatique peuvent être utiles pour une exploration préliminaire, ceux en mode personnalisé sont davantage adaptés à la plupart des environnements de production. Nous vous recommandons d'utiliser des VPC en mode personnalisé.

Pour mettre à jour le VPC vers le paramètre de double pile, procédez comme suit :

  1. Si vous utilisez un réseau VPC en mode automatique, vous devez d'abord convertir le réseau VPC en mode automatique vers le mode personnalisé.

    Si vous utilisez le réseau default, vous devez le convertir en réseau VPC en mode personnalisé.

  2. Pour activer IPv6, consultez la section Définir le type de pile d'un sous-réseau sur double pile.

    Assurez-vous que le type d'accès IPv6 du sous-réseau est défini sur External.

  3. Facultatif : Si vous souhaitez configurer des plages d'adresses IPv6 internes sur les sous-réseaux de ce réseau, procédez comme suit :

    1. Dans le champ Plage IPv6 interne ULA du réseau VPC, sélectionnez Activée.
    2. Dans le champ Allouer une plage IPv6 interne, sélectionnez Automatiquement ou Manuellement.

      Si vous sélectionnez Manuellement, saisissez une plage /48 comprise dans la plage fd20::/20. Si la plage est utilisée, vous êtes invité à en fournir une autre.

Mettre à jour le sous-réseau proxy réservé

Si vous utilisez un équilibreur de charge basé sur Envoy, nous vous recommandons de remplacer le type de pile de sous-réseau proxy réservé par une double pile. Pour en savoir plus sur les équilibreurs de charge compatibles avec les sous-réseaux proxy réservés, consultez la page Équilibreurs de charge compatibles.

Pour définir le type de pile du sous-réseau proxy réservé sur double pile, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Pour afficher la page Détails du réseau VPC, cliquez sur le nom d'un réseau.

  3. Cliquez sur l'onglet Sous-réseaux.

  4. Dans la section Sous-réseaux proxy réservés pour l'équilibrage de charge, cliquez sur le nom du sous-réseau proxy réservé que vous souhaitez modifier.

  5. Sur la page Détails du sous-réseau, cliquez sur Modifier.

  6. Dans le champ Type de pile d'adresses IP, sélectionnez IPv4 et IPv6 (double pile). Définissez le type d'accès IPv6 sur Interne.

  7. Cliquez sur Enregistrer.

gcloud

Utilisez la commande subnets update.

gcloud compute networks subnets update PROXY_ONLY_SUBNET \
    --stack-type=IPV4_IPV6 \
    --ipv6-access-type=INTERNAL \
    --region=REGION

Remplacez les éléments suivants :

  • PROXY_ONLY_SUBNET : nom du sous-réseau proxy réservé.
  • REGION : région du sous-réseau.
  • IPv6_ACCESS_TYPE : le type d'accès IPv6 du sous-réseau est INTERNAL.

Mettre à jour l'instance ou les modèles de VM

Vous pouvez configurer des adresses IPv6 sur une instance de VM si une plage IPv6 est configurée pour le sous-réseau auquel la VM est connectée. Seuls les backends suivants sont compatibles avec les adresses IPv6:

  • Backends de groupe d'instances : un ou plusieurs backends de groupes d'instances gérés ou non, ou une combinaison de backends de groupes d'instances gérés et non gérés
  • NEG zonaux : un ou plusieurs NEG zonaux de type GCE_VM_IP_PORT

Mettre à jour les instances de VM

Vous ne pouvez pas modifier les instances de VM faisant partie d'un groupe d'instances géré ou non géré. Pour mettre à jour les instances de VM vers la double pile, procédez comme suit :

  1. Supprimez des instances spécifiques d'un groupe.
  2. Créer une VM à double pile
  3. Créer des instances avec des noms spécifiques dans les MIG

Mettre à jour des modèles d'instances de VM

Vous ne pouvez pas mettre à jour un modèle d'instance existant. Si vous devez y apporter des modifications, vous pouvez créer un autre modèle avec des propriétés similaires. Pour mettre à jour les modèles d'instances de VM vers la double pile, procédez comme suit :

Console

  1. Dans la console Google Cloud, accédez à la page Modèles d'instances.

    Accéder à la page Modèles d'instances

    1. Cliquez sur le modèle d'instance que vous souhaitez copier et mettre à jour.
    2. Cliquez sur Créer une instance similaire.
    3. Développez la section Options avancées.
    4. Pour Tags réseau, saisissez allow-health-check-ipv6.
    5. Dans la section Interfaces réseau, cliquez sur Ajouter une interface réseau.
    6. Dans la liste Réseau, sélectionnez le réseau VPC en mode personnalisé.
    7. Dans la liste Sous-réseau, sélectionnez SUBNET.
    8. Dans le champ Type de pile d'adresses IP, sélectionnez IPv4 et IPv6 (double pile).
    9. Cliquez sur Créer.
  2. Lancement d'une mise à jour progressive de base sur le groupe d'instances géré MIG associé à l'équilibreur de charge.

Mettre à jour le NEG zonal

Les points de terminaison de NEG zonaux ne peuvent pas être modifiés. Vous devez supprimer les points de terminaison IPv4 et créer un point de terminaison double pile avec des adresses IPv4 et IPv6.

Pour configurer un NEG zonal (avec des points de terminaison de type GCE_VM_IP_PORT) dans la région REGION_A, commencez par créer les VM dans la zone GCP_NEG_ZONE. Ajoutez ensuite les points de terminaison du réseau de VM au NEG zonal.

Créer des VM

Console

  1. Dans la console Google Cloud, accédez à la page Instances de VM.

    Accéder à la page "Instances de VM"

  2. Cliquez sur Créer une instance.

  3. Définissez le paramètre Nom sur vm-a1.

  4. Dans le champ Région, choisissez REGION_A, puis sélectionnez une valeur pour le champ Zone. Cette zone est désignée par GCP_NEG_ZONE dans cette procédure.

  5. Dans la section Disque de démarrage, assurez-vous que Debian GNU/Linux 12 (bookworm) est sélectionné pour les options du disque de démarrage. Si nécessaire, cliquez sur Sélectionner pour modifier l'image.

  6. Développez la section Options avancées et apportez les modifications suivantes :

    • Développez la section Mise en réseau.
    • Dans le champ Tags réseau, saisissez allow-health-check.
    • Dans la section Interfaces réseau, apportez les modifications suivantes :
      • Réseau : NETWORK
      • Sous-réseau : SUBNET
      • Type de pile d'adresses IP: IPv4 et IPv6 (double pile)
    • Cliquez sur OK.
    • Cliquez sur Gestion. Dans le champ Script de démarrage, copiez et collez le contenu de script suivant.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
  7. Cliquez sur Créer.

  8. Répétez les étapes ci-dessous pour créer une deuxième VM en utilisant la combinaison de nom et de zone suivante :

    • Nom : vm-a2, zone : GCP_NEG_ZONE

gcloud

Créez les VM en exécutant la commande suivante deux fois, en utilisant ces combinaisons pour le nom de la VM et sa zone. Le contenu du script est identique pour les deux VM.

  • VM_NAME de vm-a1 et la zone GCP_NEG_ZONE de votre choix.
  • VM_NAME de vm-a2 et la même zone GCP_NEG_ZONE.

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --stack-type=IPV4_IPV6 \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-health-check \
        --subnet=SUBNET \
        --metadata=startup-script='#! /bin/bash
          apt-get update
          apt-get install apache2 -y
          a2ensite default-ssl
          a2enmod ssl
          vm_hostname="$(curl -H "Metadata-Flavor:Google" \
          http://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

Ajouter des points de terminaison au NEG zonal

Console

Pour ajouter des points de terminaison au NEG zonal :

  1. Dans la console Google Cloud, accédez à la page Groupes de points de terminaison du réseau.

    Accéder à la page Groupes de points de terminaison du réseau

  2. Dans la liste Nom, cliquez sur le nom du groupe de points de terminaison du réseau (ZONAL_NEG). La page Détails du groupe de points de terminaison du réseau s'affiche.

  3. Dans la section Points de terminaison du réseau de ce groupe, sélectionnez le point de terminaison NEG créé précédemment. Cliquez sur Supprimer le point de terminaison.

  4. Dans la section Points de terminaison du réseau de ce groupe, cliquez sur Ajouter un point de terminaison du réseau.

  5. Sélectionnez l'instance de VM.

  6. Dans la section Interface réseau, le nom, la zone et le sous-réseau de la VM s'affichent.

  7. Dans le champ Adresse IPv4, saisissez l'adresse IPv4 du nouveau point de terminaison du réseau.

  8. Dans le champ Adresse IPv6, saisissez l'adresse IPv6 du nouveau point de terminaison du réseau.

  9. Sélectionnez le type de port.

    1. Si vous sélectionnez Par défaut, le point de terminaison utilise le port par défaut 80 pour tous les points de terminaison du groupe de points de terminaison du réseau. Cela est suffisant pour notre exemple, car le serveur Apache diffuse les requêtes au port 80.
    2. Si vous sélectionnez Personnalisé, saisissez le numéro de port du point de terminaison à utiliser.
  10. Pour ajouter d'autres points de terminaison, cliquez sur Ajouter un point de terminaison du réseau, puis répétez les étapes précédentes.

  11. Après avoir ajouté tous les points de terminaison, cliquez sur Créer.

gcloud

  1. Ajoutez des points de terminaison (points de terminaison GCE_VM_IP_PORT) à ZONAL_NEG.

    gcloud compute network-endpoint-groups update ZONAL_NEG \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80' \
        --add-endpoint='instance=vm-a2,ip=IPv4_ADDRESS, \
          ipv6=IPv6_ADDRESS,port=80'
    

Remplacez les éléments suivants :

IPv4_ADDRESS : adresse IPv4 du point de terminaison du réseau. L'adresse IPv4 doit appartenir à une VM dans Compute Engine (en tant qu'adresse IP principale ou dans le cadre d'une plage d'adresses IP avec alias). Si l'adresse IP n'est pas spécifiée, l'adresse IP principale de l'instance de VM du réseau à laquelle appartient le groupe de points de terminaison du réseau est utilisée.

IPv6_ADDRESS : adresse IPv6 du point de terminaison du réseau. L'adresse IPv6 doit appartenir à une instance de VM du réseau auquel appartient le groupe de points de terminaison du réseau (adresse IPv6 externe).

Créer une règle de pare-feu pour les sondes de vérification de l'état'état IPv6

Vous devez créer une règle de pare-feu pour autoriser les vérifications d'état à partir des plages d'adresses IP des systèmes de vérification Google Cloud. Pour en savoir plus, consultez la section Plages d'adresses IP de vérification.

Assurez-vous que la règle d'entrée s'applique aux instances faisant l'objet d'un équilibrage de charge et qu'elle autorise le trafic provenant des systèmes de vérification d'état Google Cloud. Cet exemple utilise le tag cible allow-health-check-ipv6 pour identifier les instances de VM auxquelles il s'applique.

Sans cette règle de pare-feu, la règle d'entrée interdite par défaut bloque les entrées au trafic vers les instances backend.

Console

  1. Dans la console Google Cloud, accédez à la page Règles d'administration.

    Accéder à la page "Stratégies de pare-feu"

  2. Pour autoriser le trafic de sous-réseau IPv6, cliquez à nouveau sur Créer une règle de pare-feu, puis saisissez les informations suivantes :

    • Nom : fw-allow-lb-access-ipv6
    • Réseau : NETWORK
    • Priorité : 1000
    • Sens du trafic : entrée
    • Cibles : Tags cibles spécifiés
    • Tags cibles : allow-health-check-ipv6
    • Filtre source : Plages IPv6
    • Plages IPv6 sources

      • Pour l'équilibreur de charge d'application externe global et l'équilibreur de charge réseau proxy externe global, saisissez 2600:2d00:1:b029::/64,2600:2d00:1:1::/64

      • Pour l'équilibreur de charge d'application interne interrégional, l'équilibreur de charge d'application externe régional, l'équilibreur de charge d'application interne régional, l'équilibreur de charge réseau proxy interne interrégional, l'équilibreur de charge réseau proxy externe régional et l'équilibreur de charge réseau proxy interne régional , saisissez 2600:2d00:1:b029::/64.

    • Protocoles et ports : tout autoriser

  3. Cliquez sur Créer.

gcloud

  1. Créez la règle de pare-feu fw-allow-lb-access-ipv6 pour autoriser la communication avec le sous-réseau.

    Pour l'équilibreur de charge d'application externe global et l'équilibreur de charge réseau proxy externe global, utilisez la commande suivante:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,2600:2d00:1:1::/64 \
        --rules=all
    

    Pour l'équilibreur de charge d'application interne interrégional, l'équilibreur de charge d'application externe régional, l'équilibreur de charge d'application interne régional, l'équilibreur de charge réseau proxy interne interrégional, l'équilibreur de charge réseau proxy externe régional et l'équilibreur de charge réseau proxy interne régional , exécutez la commande suivante:

    gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64 \
        --rules=all
    

Créer une règle de pare-feu pour le sous-réseau proxy réservé

Si vous utilisez un équilibreur de charge d'application externe régional ou un équilibreur de charge d'application interne, vous devez mettre à jour la règle de pare-feu d'entrée fw-allow-lb-access-ipv6 pour autoriser le trafic provenant du sous-réseau proxy réservé vers les backends.

Pour obtenir la plage d'adresses IPv6 du sous-réseau proxy réservé, exécutez la commande suivante:

gcloud compute networks subnets describe PROXY_ONLY_SUBNET \
    --region=REGION \
    --format="value(internalIpv6Prefix)"

Notez la plage d'adresses IPv6 internes, qui sera désignée plus loin par IPV6_PROXY_ONLY_SUBNET_RANGE.

Pour mettre à jour la règle de pare-feu fw-allow-lb-access-ipv6 pour le sous-réseau proxy réservé, procédez comme suit:

Console

  1. Dans la console Google Cloud, accédez à la page Règles d'administration.

    Accéder à la page "Stratégies de pare-feu"

  2. Dans le panneau Règles de pare-feu VPC, cliquez sur fw-allow-lb-access-ipv6.

    • Plages IPv4 sources : 2600:2d00:1:b029::/64, IPV6_PROXY_ONLY_SUBNET_RANGE
  3. Cliquez sur Enregistrer.

gcloud

  1. Mettez à jour la règle de pare-feu fw-allow-lb-access-ipv6 pour autoriser la communication avec le sous-réseau proxy réservé:

    gcloud compute firewall-rules update fw-allow-lb-access-ipv6 \
        --source-ranges=2600:2d00:1:b029::/64,IPV6_PROXY_ONLY_SUBNET_RANGE
    

Créer un service de backend et une règle de transfert pour IPv6

Cette section décrit la procédure à suivre pour créer un service de backend et une règle de transfert pour IPv6. Notez que la règle de transfert IPv6 ne peut être créée que pour les équilibreurs de charge d'application externes globaux. Les règles de transfert IPv6 ne sont pas compatibles avec les équilibreurs de charge d'application internes interrégionaux, les équilibreurs de charge d'application externes régionaux et les équilibreurs de charge d'application internes régionaux.

À ce stade du processus, BACKEND_SERVICE et BACKEND_SERVICE_IPV6 sont tous deux capables de diffuser le trafic. Pour éviter toute interruption du trafic, créez un service de backend avec la règle de sélection d'adresse IP définie sur Prefer IPv6. Après avoir créé le service de backend, vous pouvez acheminer le trafic vers le nouveau service de backend IPv6.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur le nom de l'équilibreur de charge.

  3. Cliquez sur Modifier.

Configurez le service de backend :

  1. Cliquez sur Configuration du backend.
  2. Dans le champ Service de backend, sélectionnez Créer un service de backend.
  3. Définissez le paramètre Nom sur BACKEND_SERVICE_IPV6.
  4. Pour le type de backend, sélectionnez Groupe de points de terminaison du réseau zonal.
  5. Dans la liste Règle de sélection des adresses IP, sélectionnez Préférer IPv6.
  6. Dans le champ Protocole, sélectionnez HTTP.
  7. Dans le panneau Nouveau backend, procédez comme suit :
    1. Dans la liste Groupe de points de terminaison du réseau, sélectionnez ZONAL_NEG.
    2. Dans le champ Nombre maximal de RPS, saisissez 10.
  8. Dans la liste Vérification de l'état, sélectionnez une vérification d'état HTTP.
  9. Cliquez sur OK.

Configurez l'interface IPv6 :

La règle de transfert avec IPv6 n'est pas compatible avec les équilibreurs de charge d'application internes interrégionaux, les équilibreurs de charge d'application externes régionaux et les équilibreurs de charge d'application internes régionaux.

  1. Cliquez sur Configuration de l'interface.
  2. Cliquez sur Ajouter une adresse IP et un port frontend.
  3. Dans le champ Nom, saisissez un nom pour la règle de transfert.
  4. Dans le champ Protocole, sélectionnez HTTP.
  5. Définissez Version IP sur IPv6.
  6. Cliquez sur OK.
  7. Cliquez sur Mettre à jour.

Configurer des règles de routage

  1. Cliquez sur Règles de routage.
  2. Cliquez sur Règle d'hôte et de chemin d'accès avancée.
  3. Cliquez sur Mettre à jour.

gcloud

  1. Créez une vérification d'état :

     gcloud compute health-checks create http HEALTH_CHECK \
         --port 80
    
  2. Créez le service de backend pour le trafic HTTP :

    global

    Pour l'équilibreur de charge d'application externe global, utilisez la commande suivante:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --global
    

    interrégional

    Pour l'équilibreur de charge d'application interne interrégional, utilisez la commande suivante:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --global
    

    régional

    Pour l'équilibreur de charge d'application externe régional, utilisez la commande suivante:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=EXTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --region=REGION
    

    Pour l'équilibreur de charge d'application interne régional, utilisez la commande suivante:

    gcloud compute backend-services create BACKEND_SERVICE_IPV6 \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --protocol=HTTP \
        --ip-address-selection-policy=PREFER_IPV6 \
        --health-checks=HEALTH_CHECK \
        --region=REGION
    
  3. Ajoutez les NEG zonaux à double pile en tant que backend au service de backend.

    global

    Pour l'équilibreur de charge d'application externe global, utilisez la commande suivante:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --network-endpoint-group=ZONAL_NEG \
         --network-endpoint-group-zone=ZONE \
         --max-rate-per-endpoint=10 \
         --global
    

    interrégional

    Pour l'équilibreur de charge d'application interne interrégional, utilisez la commande suivante:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --network-endpoint-group=ZONAL_NEG \
         --network-endpoint-group-zone=ZONE \
         --max-rate-per-endpoint=10 \
         --global
    

    régional

    Pour l'équilibreur de charge d'application externe régional et l'équilibreur de charge d'application interne régional, utilisez la commande suivante:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --network-endpoint-group=ZONAL_NEG \
         --network-endpoint-group-zone=ZONE \
         --max-rate-per-endpoint=10 \
         --region=REGION
    
  4. Ajoutez les groupes d'instances dual-stack en tant que backend au service de backend.

    global

    Pour l'équilibreur de charge d'application externe global, utilisez la commande suivante:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --instance-group=INSTANCE_GROUP \
         --global
    

    interrégional

    Pour l'équilibreur de charge d'application interne interrégional, utilisez la commande suivante:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --instance-group=INSTANCE_GROUP \
         --global
    

    régional

    Pour l'équilibreur de charge d'application externe régional et l'équilibreur de charge d'application interne régional, utilisez la commande suivante:

     gcloud compute backend-services add-backend BACKEND_SERVICE_IPV6 \
         --instance-group=INSTANCE_GROUP \
         --region=REGION
    
  5. Pour les équilibreurs de charge d'application externes globaux uniquement Créez la règle de transfert IPv6 pour l'équilibreur de charge d'application externe global. Utilisez la commande :

     gcloud compute forwarding-rules create FORWARDING_RULE_IPV6 \
         --load-balancing-scheme=EXTERNAL_MANAGED \
         --network-tier=PREMIUM \
         --global \
         --target-http-proxy=TARGET_PROXY \
         --ports=443
    

Acheminer le trafic vers le nouveau service de backend IPv6

Mettez à jour le mappage d'URL pour diriger une partie du trafic client vers le nouveau service de backend IPv6 BACKEND_SERVICE_IPV6.

  1. Utilisez la commande suivante pour modifier les mappages d'URL :

    global

    Pour l'équilibreur de charge d'application externe global, utilisez la commande suivante:

      gcloud compute url-maps edit URL_MAP \
          --global
      

    interrégional

    Pour l'équilibreur de charge d'application interne interrégional, utilisez la commande suivante:

      gcloud compute url-maps edit URL_MAP \
          --global
      

    régional

    Pour l'équilibreur de charge d'application externe régional et l'équilibreur de charge d'application interne régional, utilisez la commande suivante:

       gcloud compute url-maps edit URL_MAP \
           --region=REGION
       
  2. Dans l'éditeur de texte qui s'affiche, ajoutez un routeRule avec une action weightedBackendServices qui dirige un pourcentage du trafic IPv6 vers BACKEND_SERVICE_IPV6.

    defaultService: global/backendServices/BACKEND_SERVICE
    hostRules:
    - hosts:
      - '*'
      pathMatcher: matcher1
    name: URL_MAP
    pathMatchers:
    - defaultService: global/backendServices/BACKEND_SERVICE
      name: matcher1
      routeRules:
      - matchRules:
        - prefixMatch: ''
        priority: 1
        routeAction:
          weightedBackendServices:
          - backendService: global/backendServices/BACKEND_SERVICE
            weight: 95
          - backendService: global/backendServices/BACKEND_SERVICE_IPV6
            weight: 5
    

Pour mettre en œuvre la migration progressive vers IPv6, augmentez le pourcentage de pondération du nouveau service de backend BACKEND_SERVICE_IPV6 de manière incrémentielle à 100% en modifiant le mappage d'URL plusieurs fois.

Configurer la règle de sélection des adresses IP

Après avoir converti vos ressources et vos backends en double pile, vous pouvez utiliser la règle de sélection d'adresse IP pour spécifier le type de trafic envoyé du service de backend à vos backends.

Remplacez IP_ADDRESS_SELECTION_POLICY par l'une des valeurs suivantes :

Règle de sélection des adresses IP Description
IPv4 uniquement N'envoyez le trafic IPv4 qu'aux backends du service de backend, quel que soit le trafic entre le client et le GFE. Seules les vérifications de l'état IPv4 sont utilisées pour vérifier l'état des backends.
Préférer IPv6

Privilégiez la connexion IPv6 du backend à la connexion IPv4 (à condition qu'il existe un backend opérationnel avec des adresses IPv6).

Les vérifications d'état surveillent régulièrement les connexions IPv6 et IPv4 des backends. Le GFE tente d'abord de se connecter à IPv6. Si la connexion IPv6 est interrompue ou lente, le GFE utilise des visiteurs heureux pour se connecter à IPv4.

Même si l'une des connexions IPv6 ou IPv4 n'est pas opérationnelle, le backend est toujours considéré comme opérationnel et le GFE peut tester les deux connexions, après quoi les visiteurs heureux choisissent celle à utiliser.

IPv6 uniquement

N'envoyez le trafic IPv6 qu'aux backends du service de backend, quel que soit le trafic entre le client et le proxy. Seules les vérifications de l'état IPv6 sont utilisées pour vérifier l'état des backends.

Il n'y a aucune validation pour vérifier si le type de trafic de backend correspond à la règle de sélection d'adresse IP. Par exemple, si vous avez des backends IPv4 uniquement et que vous sélectionnez Only IPv6 comme règle de sélection des adresses IP, la configuration entraîne des backends défaillants, car le trafic ne parvient pas à les atteindre et le code de réponse HTTP 503 est renvoyé aux clients.

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur le nom de l'équilibreur de charge.

  3. Cliquez sur Modifier.

  4. Cliquez sur Configuration du backend.

  5. Dans le champ Service de backend, sélectionnez BACKEND_SERVICE_IPV6.

  6. Le type de backend doit être un groupe de points de terminaison du réseau zonal ou un groupe d'instances.

  7. Dans la liste Règle de sélection d'adresse IP, sélectionnez IP_ADDRESS_SELECTION_POLICY.

  8. Cliquez sur OK.

gcloud

Mettez à jour la règle de sélection des adresses IP pour le service de backend:

global

Pour l'équilibreur de charge d'application externe global, utilisez la commande suivante:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

interrégional

Pour l'équilibreur de charge d'application interne interrégional, utilisez la commande suivante:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --global

régional

Pour l'équilibreur de charge d'application externe régional, utilisez la commande suivante:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

Pour l'équilibreur de charge d'application interne régional, utilisez la commande suivante:

gcloud compute backend-services update BACKEND_SERVICE_IPV6 \
    --load-balancing-scheme=INTERNAL_MANAGED \
    --protocol=HTTP \
    --ip-address-selection-policy=IP_ADDRESS_SELECTION_POLICY \
    --region=REGION

Tester votre équilibreur de charge

Vous devez vérifier que toutes les ressources requises sont mises à jour vers la double pile. Après avoir mis à jour toutes les ressources, le trafic doit être automatiquement acheminé vers les backends. Vous pouvez vérifier les journaux et vérifier que la conversion est terminée.

Testez l'équilibreur de charge pour vérifier que la migration a réussi et que le trafic entrant atteint les backends comme prévu.

Rechercher les adresses IP de l'équilibreur de charge

Console

  1. Dans Google Cloud Console, accédez à la page Équilibrage de charge.

    Accéder à la page "Équilibrage de charge"

  2. Cliquez sur le nom de l'équilibreur de charge.

  3. Dans la section Interface, deux adresses IP d'équilibreur de charge s'affichent. Dans cette procédure, l'adresse IPv4 est appelée IP_ADDRESS_IPV4 et l'adresse IPv6 est appelée IP_ADDRESS_IPV6.

  4. Dans la section Backends, lorsque la règle de sélection d'adresse IP est définie sur Prefer IPv6, deux états de vérification d'état s'affichent pour les backends.

Envoyer du trafic vers l'équilibreur de charge

Dans cet exemple, les requêtes de la commande curl sont distribuées de manière aléatoire sur les backends.

Pour les équilibreurs de charge externes

  1. Répétez les commandes suivantes plusieurs fois jusqu'à ce que toutes les VM de backend répondent :

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    Par exemple, si l'adresse IPv6 est [fd20:1db0:b882:802:0:46:0:0]:80, la commande se présente comme suit :

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

Pour les équilibreurs de charge internes

  1. Créez une VM cliente de test dans le même réseau VPC et dans la même région que l'équilibreur de charge. Elle ne doit pas nécessairement se trouver dans le même sous-réseau ou la même zone.

    gcloud compute instances create client-vm \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=allow-ssh \
        --subnet=SUBNET
    
  2. Utilisez SSH pour vous connecter à l'instance cliente.

    gcloud compute ssh client-vm \
        --zone=ZONE
    
  3. Répétez les commandes suivantes plusieurs fois jusqu'à ce que toutes les VM de backend répondent :

    curl -m1 IP_ADDRESS_IPV4:PORT
    
    curl -m1 IP_ADDRESS_IPV6:PORT
    

    Par exemple, si l'adresse IPv6 est [fd20:1db0:b882:802:0:46:0:0]:80, la commande se présente comme suit :

    curl -m1 [fd20:1db0:b882:802:0:46:0:0]:80
    

Vérifier les journaux

Chaque entrée de journal capture les adresses IPv4 et IPv6 de destination du backend. Étant donné que nous prenons en charge la double pile, il est important d'observer l'adresse IP utilisée par le backend.

Vous pouvez vérifier que le trafic est bien dirigé vers IPv6 ou rebasculé vers IPv4 en affichant les journaux.

HttpRequest contient l'adresse backend_ip associée au backend. En examinant les journaux et en comparant les adresses IPv4 et IPv6 de destination de backend_ip, vous pouvez vérifier quelle adresse IP est utilisée.