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 plie). 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.

Avantages

La conversion de vos équilibreurs de charge en double pile présente plusieurs avantages:

  • Le principal avantage de IPv6 est qu'un pool d'adresses IP beaucoup plus important peut être alloué.

  • De nombreux clients qui utilisent déjà des équilibreurs de charge exclusivement IPv4 peuvent convertir des ressources IPv4 uniquement en ressources IPv4 et IPv6 (double pile) en tirant parti des méthodes spécifiques au cloud.

  • Vous pouvez configurer l'équilibreur de charge pour qu'il mette fin au trafic IPv6 entrant et transfère ce trafic par proxy via une connexion IPv4 ou IPv6 à vos backends, en fonction de vos préférences. Pour en savoir plus, consultez la page IPv6.

Limites

  • Vous ne pouvez pas mettre à jour le type de pile d'adresses IP du sous-réseau de IPv4 et IPv6 (double pile) à IPv4 uniquement.

  • Lorsque vous configurez la règle de sélection d'adresses IP sur le service de backend en tant que backends IPv6 uniquement, vous pouvez toujours configurer des backends IPv4 uniquement. Cependant, une telle configuration entraîne des backends non opérationnels, les clients obtiennent le code de réponse 503 et le trafic ne circule pas en amont. Les journaux affichent failed_to_pick_backend dans les messages d'échec HTTP statusDetails.

  • Vous pouvez configurer la règle de sélection d'adresse IP du service de backend sur IPv6 uniquement, mais le type de pile d'adresses IP des backends est toujours IPv4 et IPv6 (double pile).

  • Seuls les backends de groupes d'instances de VM et les groupes de points de terminaison du réseau (NEG) zonaux avec des points de terminaison GCE_VM_IP_PORT sont compatibles avec IPv4 et IPv6 (double pile).

  • 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 ne sont pas compatibles avec les règles de transfert avec IPv6. Le trafic IPv4 entrant est transmis par proxy via une connexion IPv4 ou IPv6 aux backends à double pile.

  • Les équilibreurs de charge d'application classiques ne sont pas compatibles avec les backends à deux piles. L'équilibreur de charge interrompt le trafic IPv6 entrant reçu des clients IPv6 et transfère par proxy ce trafic via une connexion IPv4 à vos backends IPv4.

Avant de commencer

Vous devez déjà avoir configuré un équilibreur de charge d'application avec une pile IPv4 uniquement avec un groupe d'instances ou des backends de NEG zonaux.

Pour plus d'informations sur la configuration des équilibreurs de charge d'application externes globaux, consultez la documentation suivante:

Pour plus d'informations sur la configuration des équilibreurs de charge d'application externes régionaux, consultez la documentation suivante:

Pour plus d'informations sur la configuration des équilibreurs de charge d'application internes interrégionaux, consultez la documentation suivante:

Pour plus d'informations sur la configuration des équilibreurs de charge d'application internes régionaux, 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 beta compute backend-services list:

    gcloud beta 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 beta compute url-maps list:

    gcloud beta 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 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.

  7. 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é.

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

  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 Google Cloud Console, accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Cliquez sur le nom d'un réseau pour afficher la page Détails du réseau VPC.

  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). Le type d'accès IPv6 est défini 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 de vérification d'état IPv6

Assurez-vous de disposer d'une règle d'entrée applicable aux instances faisant l'objet d'un équilibrage de charge et qui autorise le trafic issu des systèmes de vérification d'état Google Cloud (2600:2d00:1:b029::/64). Cet exemple utilise le tag cible allow-health-check-ipv6 pour identifier les instances de VM auxquelles la règle 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
    

Ajouter une règle de pare-feu de sous-réseau proxy réservé

Si vous utilisez un équilibreur de charge basé sur Envoy, 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 valeur internalIpv6Prefix à partir 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 l'adresse IPv6 interne, qui sera désignée plus loin par IPv6_PROXY.

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
  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,2600:2d00:1:1::/64,
          IPv6_PROXY \
    

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.

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.

La règle de transfert avec IPv6 ne peut être créée que pour les équilibreurs de charge d'application externes globaux. 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.

Console

  1. Dans la console Google Cloud, 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 beta 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
    

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

    gcloud beta 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 beta 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 beta 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 des NEG zonaux en tant que backend au service de backend.

    global

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

    gcloud beta compute backend-services add-backend BACKEND_SERVICE_IPV6 \
      --network-endpoint-group=ZONAL_NEG \
      --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 beta compute backend-services add-backend BACKEND_SERVICE_IPV6 \
      --network-endpoint-group=ZONAL_NEG \
      --max-rate-per-endpoint=10 \
      --region=REGION
    
  4. Réservez une adresse IPv6 externe que vos clients utiliseront pour accéder à votre équilibreur de charge.

    global

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

    gcloud compute addresses create lb-ipv6-1 \
       --ip-version=IPV6 \
       --network-tier=PREMIUM \
       --global
    
  5. Créez une règle de transfert pour le service de backend. Lorsque vous créez la règle de transfert, spécifiez l'adresse IP externe dans le sous-réseau.

    global

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

    gcloud beta compute forwarding-rules create FORWARDING_RULE_IPV6 \
       --load-balancing-scheme=EXTERNAL_MANAGED \
       --network-tier=PREMIUM \
       --address=lb-ipv6-1 \
       --global \
       --target-https-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 et 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

Cette étape est facultative. 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 et que vous sélectionnez Only IPv6 comme règle de sélection des adresses IP, vous n'observerez pas d'erreurs de configuration, mais le trafic ne sera pas acheminé vers vos backends.

Console

  1. Dans la console Google Cloud, 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

  1. Mettez à jour le service de backend  :

    global

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

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

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

    gcloud beta 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 beta 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 beta 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 l'adresse IP externe de l'équilibreur de charge

Console

  1. Dans la console Google Cloud, 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 vos instances

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

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

    curl http://IP_ADDRESS_IPV4
    
    curl http://IP_ADDRESS_IPV6
    

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

    curl http://[fd20:1db0:b882:802:0:46:0:0]
    

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.