Configurer un équilibreur de charge réseau passthrough externe régional pour plusieurs protocoles IP

Ce guide fournit des instructions pour créer des équilibreurs de charge réseau passthrough externes régionaux basés sur un service de backend qui équilibrent la charge du trafic TCP, UDP, ESP, GRE, ICMP et ICMPv6. Vous pouvez utiliser cette configuration pour équilibrer la charge du trafic dont les protocoles IP ne sont pas TCP ou UDP. Les équilibreurs de charge réseau passthrough externes régionaux basés sur un pool cible ne sont pas compatibles avec cette fonctionnalité.

Pour configurer un équilibreur de charge réseau passthrough externe régional pour des protocoles IP autres que TCP ou UDP, vous devez créer une règle de transfert avec un protocole défini sur L3_DEFAULT. Cette règle de transfert pointe vers un service de backend dont le protocole est défini sur UNSPECIFIED.

Dans cet exemple, nous utilisons deux équilibreurs de charge réseau passthrough externes régionaux pour répartir le trafic entre les VM de backend de deux groupes d'instances gérés zonaux dans la région us-central1. Les deux équilibreurs de charge reçoivent le trafic sur la même adresse IP externe.

L'un deux contient une règle de transfert avec le protocole TCP et le port 80, et l'autre une règle de transfert avec le protocole L3_DEFAULT. Le trafic TCP arrivant à l'adresse IP sur le port 80 est géré par la règle de transfert TCP. Tout autre trafic qui ne correspond pas à la règle de transfert spécifique à TCP est géré par la règle de transfert L3_DEFAULT.

Équilibreur de charge réseau passthrough externe régional avec des groupes d'instances gérés zonaux.
Équilibreur de charge réseau passthrough externe régional avec des groupes d'instances gérés zonaux (cliquez pour agrandir).

Dans ce scénario, les connexions sont équilibrées à l'aide de plusieurs protocoles avec une vérification d'état TCP. Pour en savoir plus sur les autres protocoles compatibles, consultez Service de backend régional et Vérifications de l'état.

L'équilibreur de charge réseau passthrough externe régional est un équilibreur de charge régional. Tous les composants de l'équilibreur de charge doivent se trouver dans la même région.

Avant de commencer

Installez Google Cloud CLI. Pour une présentation complète de l'outil, consultez la présentation de gcloud CLI. Vous trouverez des commandes liées à l'équilibrage de charge dans la documentation de référence de l'API et de gcloud CLI.

Si vous n'avez pas encore utilisé gcloud CLI, exécutez d'abord la commande gcloud init pour vous authentifier.

Dans ce guide, nous partons du principe que vous maîtrisez bash.

Configurer le réseau et les sous-réseaux

L'exemple de cette page utilise un réseau VPC en mode personnalisé nommé lb-network. Si vous souhaitez uniquement gérer le trafic IPv4, vous pouvez utiliser un réseau VPC en mode automatique. Toutefois, les sous-réseaux avec des plages d'adresses IPv6 ne sont pas compatibles avec les réseaux VPC en mode automatique. Les sous-réseaux avec des plages d'adresses IPv6 ne sont compatibles qu'avec les réseaux VPC en mode personnalisé.

Dans cet exemple, des sous-réseaux des types de pile suivants sont créés :

Plages de sous-réseaux Type de pile
Plages de sous-réseaux IPv4 uniquement IPV4_ONLY (pile unique)
Plages de sous-réseaux IPv4 et IPv6 IPV4_IPV6 (double pile)
Plages de sous-réseaux IPv6 uniquement IPV6_ONLY (pile unique)

Pour les sous-réseaux à double pile et IPv6 uniquement qui utilisent une plage d'adresses IPv6, vous devez choisir un type d'accès IPv6 pour le sous-réseau. Le type d'accès IPv6 détermine si le sous-réseau est configuré avec des adresses IPv6 internes ou des adresses IPv6 externes. Pour cet exemple, le paramètre ipv6-access-type du sous-réseau est défini sur EXTERNAL.

Un sous-réseau avec une plage d'adresses IPv6 externes, c'est-à-dire dont le paramètre ipv6-access-type est défini sur EXTERNAL, peut également être utilisé pour obtenir l'adresse IPv6 externe d'une règle de transfert. Pour en savoir plus, consultez Spécifications des adresses IP pour les règles de transfert.

Les backends et les composants de l'équilibreur de charge utilisés pour cet exemple sont situés dans cette région et ce sous-réseau :

  • Région : us-central1
  • Sous-réseau : lb-subnet, avec plage d'adresses IPv4 principale 10.1.2.0/24. Bien que vous choisissiez la plage d'adresses IPv4 configurée sur le sous-réseau, la plage d'adresses IPv6 est attribuée automatiquement. Google fournit un bloc CIDR IPv6 de taille fixe (/64).

Pour créer les exemples de réseau et de sous-réseaux, procédez comme suit :

Console

Pour assurer la compatibilité avec le trafic IPv4 et IPv6, procédez comme suit:

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

    Accéder aux réseaux VPC

  2. Cliquez sur Créer un réseau VPC.

  3. Dans le champ Nom, saisissez lb-network.

  4. Définissez le Mode de création du sous-réseau sur Personnalisé.

  5. Dans la section Sous-réseaux, cliquez sur Ajouter un sous-réseau et configurez les champs suivants :

    • Nom : lb-subnet
    • Région : us-central1
    • Type de pile d'adresses IP: IPv4 et IPv6 (double pile)
    • Plage IPv4: 10.1.2.0/24
      Bien que vous puissiez configurer une plage d'adresses IPv4 pour le sous-réseau, vous ne pouvez pas choisir la plage d'adresses IPv6 pour Le sous-réseau. Google fournit un bloc CIDR IPv6 de taille fixe (/64).
    • Type d'accès IPv6: Externe
    • Cliquez sur Terminé.
  6. Cliquez sur Créer.

Pour assurer la compatibilité avec le trafic IPv4 uniquement, procédez comme suit :

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

    Accéder aux réseaux VPC

  2. Cliquez sur Créer un réseau VPC.

  3. Dans le champ Nom, saisissez lb-network.

  4. Définissez le Mode de création du sous-réseau sur Personnalisé.

  5. Dans la section Sous-réseaux, cliquez sur Ajouter un sous-réseau et configurez les champs suivants :

    • Nom : lb-subnet
    • Région : us-central1
    • Type de pile IP: IPv4 (pile unique)
    • Plage IPv4 : 10.1.2.0/24
  6. Cliquez sur Créer.

Pour assurer la compatibilité avec le trafic IPv6 uniquement, procédez comme suit :

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

    Accéder aux réseaux VPC

  2. Cliquez sur Créer un réseau VPC.

  3. Dans le champ Nom, saisissez lb-network.

  4. Définissez le Mode de création du sous-réseau sur Personnalisé.

  5. Dans la section Sous-réseaux, cliquez sur Ajouter un sous-réseau et configurez les champs suivants :

    • Nom : lb-subnet
    • Région : us-central1
    • Type de pile IP : IPv6 (pile unique)
    • Type d'accès IPv6: Externe
  6. Cliquez sur Créer.

gcloud

  1. Créez le réseau VPC en mode personnalisé:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. Au sein du réseau lb-network, créez un sous-réseau pour les backends dans la région us-central1.

    Pour le trafic IPv4 et IPv6, utilisez la commande suivante pour créer un sous-réseau à double pile :

      gcloud compute networks subnets create lb-subnet \
          --stack-type=IPV4_IPV6 \
          --ipv6-access-type=EXTERNAL \
          --network=lb-network \
          --range=10.1.2.0/24 \
          --region=us-central1
    

    Pour le trafic IPv4 uniquement, utilisez la commande suivante:

      gcloud compute networks subnets create lb-subnet \
          --network=lb-network \
          --range=10.1.2.0/24 \
          --region=us-central1
    

    Pour le trafic IPv6 uniquement, utilisez la commande suivante :

    gcloud compute networks subnets create lb-subnet \
        --stack-type=IPV6_ONLY \
        --ipv6-access-type=EXTERNAL \
        --network=lb-network \
        --region=us-central1
    

Créer les groupes d'instances gérés zonaux

Dans ce scénario d'équilibrage de charge, vous allez créer deux groupes d'instances gérés zonaux Compute Engine et installer un serveur Web Apache sur chaque instance.

Le groupe d'instances fait référence à un modèle d'instance, qui est utilisé pour créer des VM de backend. Dans cet exemple, vous allez créer des VM de backend avec des interfaces réseau IPv4 uniquement, à double pile et IPv6 uniquement. Les VM héritent également du paramètre ipv6-access-type (dans cet exemple, EXTERNAL) du sous-réseau. Pour en savoir plus sur les exigences IPv6, consultez Règle de transfert dans la présentation de l'équilibreur de charge réseau passthrough externe régional.

Pour utiliser des VM existantes comme backends, mettez-les à jour en pile double à l'aide de la commande gcloud compute instances network-interfaces update.

Les instances qui participent en tant que VM backend pour les équilibreurs de charge réseau passthrough externes régionaux doivent exécuter l'environnement invité Linux, l'environnement invité Windows ou d'autres processus appropriés présentant des fonctionnalités équivalentes.

Créer le groupe d'instances pour le trafic TCP sur le port 80

Console

  1. Créer un modèle d'instance. Dans la console Google Cloud , accédez à la page Modèles d'instances.

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

    1. Cliquez sur Créer un modèle d'instance.
    2. Dans le champ Nom, saisissez ig-us-template-tcp-80.
    3. Assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 12 (bookworm). Ces instructions utilisent des commandes uniquement disponibles dans Debian, comme apt-get.
    4. Développez la section Options avancées.
    5. Développez la section Gestion, puis copiez le script suivant dans le champ Script de démarrage.

      #! /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
      
    6. Développez la section Mise en réseau, puis procédez comme suit :

      1. Pour Tags réseau, ajoutez network-lb-tcp-80.
      2. Pour Interfaces réseau, sélectionnez l'interface réseau par défaut.

        Pour créer des VM de backend avec des interfaces réseau à double pile, configurez les champs suivants :

        • Réseau : lb-network
        • Sous-réseau : lb-subnet
        • Type de pile d'adresses IP: IPv4 et IPv6 (double pile)
        • Adresse IPv4 externe : Éphémère
        • Adresse IPv6 externe : Allocation automatique

        Pour créer des VM de backend avec des interfaces réseau IPv4 uniquement, configurez les champs suivants :

        • Réseau : lb-network
        • Sous-réseau : lb-subnet
        • Type de pile IP: IPv4 (pile unique)
        • Adresse IPv4 externe : Éphémère

        Pour créer des VM de backend avec des interfaces réseau IPv6 uniquement, configurez les champs suivants :

        • Réseau : lb-network
        • Sous-réseau : lb-subnet
        • Type de pile IP : IPv6 (pile unique)
        • Adresse IPv6 externe : Allocation automatique
    7. Cliquez sur Créer.

  2. Créez un groupe d'instances géré. Accédez à la page Groupes d'instances dans la console Google Cloud .

    Accéder à la page Groupes d'instances

    1. Cliquez sur Créer un groupe d'instances.
    2. Sélectionnez Nouveau groupe d'instances géré (sans état). Pour des informations plus détaillées, consultez la page Groupes d'instances gérés (MIG) sans état ou avec état.
    3. Dans le champ Nom, saisissez ig-us-tcp-80.
    4. Pour l'emplacement, sélectionnez Zone unique.
    5. Pour la région, sélectionnez us-central1.
    6. Pour la zone, sélectionnez us-central1-a.
    7. Pour le paramètre Modèle d'instance, sélectionnez ig-us-template-tcp-80.
    8. Spécifiez le nombre d'instances que vous souhaitez créer au sein du groupe.

      Pour cet exemple, spécifiez les options suivantes sous Autoscaling :

      • Dans le champ Mode autoscaling, sélectionnez Off:do not autoscale.
      • Dans le champ Nombre maximal d'instances, saisissez 2.
    9. Cliquez sur Créer.

gcloud

Les instructions gcloud de ce guide supposent que vous utilisez Cloud Shell ou un autre environnement avec bash installé.

  1. Créez un modèle d'instance de VM avec le serveur HTTP à l'aide de la commande gcloud compute instance-templates create.

    Pour créer des VM de backend avec des interfaces réseau à double pile, utilisez la commande suivante.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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'
    

    Pour créer des VM de backend avec des interfaces réseau IPv4 uniquement, utilisez la commande suivante.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --stack-type=IPV4_ONLY \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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" \
                  ://metadata.google.internal/computeMetadata/v1/instance/name)"
          echo "Page served from: $vm_hostname" | \
          tee /var/www/html/index.html
          systemctl restart apache2'
    

    Pour créer des VM de backend avec des interfaces réseau IPv6 uniquement, utilisez la commande suivante.

      gcloud compute instance-templates create ig-us-template-tcp-80 \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV6_ONLY \
          --tags=network-lb-tcp-80 \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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'
    
  2. Créez un groupe d'instances géré dans la zone à l'aide de la commande gcloud compute instance-groups managed create.

      gcloud compute instance-groups managed create ig-us-tcp-80 \
          --zone us-central1-a \
          --size 2 \
          --template ig-us-template-tcp-80
    

Créer le groupe d'instances pour le trafic TCP (sur le port 8080), UDP, ESP et ICMP

Console

  1. Créer un modèle d'instance. Dans la console Google Cloud , accédez à la page Modèles d'instances.

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

    1. Cliquez sur Create instance template (Créer un modèle d'instance).
    2. Dans le champ Nom, saisissez ig-us-template-l3-default.
    3. Assurez-vous que le disque de démarrage est défini sur une image Debian, telle que Debian GNU/Linux 12 (bookworm). Ces instructions utilisent des commandes uniquement disponibles dans Debian, comme apt-get.
    4. Développez la section Options avancées.
    5. Développez la section Gestion, puis copiez le script suivant dans le champ Script de démarrage. Le script de démarrage configure également le serveur Apache pour qu'il écoute sur le port 8080 au lieu du port 80.

      #! /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
      sed -ire 's/^Listen 80$/Listen 8080/g' /etc/apache2/ports.conf
      systemctl restart apache2
      
    6. Développez la section Mise en réseau, puis procédez comme suit :

      1. Pour Tags réseau, ajoutez network-lb-l3-default.
      2. Pour Interfaces réseau, sélectionnez l'interface réseau par défaut.

        Pour créer des VM de backend avec des interfaces réseau à double pile, configurez les champs suivants :

        • Réseau : lb-network
        • Sous-réseau : lb-subnet
        • Type de pile d'adresses IP: IPv4 et IPv6 (double pile)
        • Adresse IPv4 externe : Éphémère
        • Adresse IPv6 externe : Allocation automatique

        Pour créer des VM de backend avec des interfaces réseau IPv4 uniquement, configurez les champs suivants :

        • Réseau : lb-network
        • Sous-réseau : lb-subnet
        • Type de pile IP: IPv4 (pile unique)
        • Adresse IPv4 externe : Éphémère

        Pour créer des VM de backend avec des interfaces réseau IPv6 uniquement, configurez les champs suivants :

        • Réseau : lb-network
        • Sous-réseau : lb-subnet
        • Type de pile IP : IPv6 (pile unique)
        • Adresse IPv6 externe : Allocation automatique
    7. Cliquez sur Créer.

  2. Créez un groupe d'instances géré. Accédez à la page Groupes d'instances dans la console Google Cloud .

    Accéder à la page Groupes d'instances

    1. Cliquez sur Créer un groupe d'instances.
    2. Choisissez Nouveau groupe d'instances géré (sans état). Pour des informations plus détaillées, consultez la page Groupes d'instances gérés (MIG) sans état ou avec état.
    3. Dans le champ Nom, saisissez ig-us-l3-default.
    4. Pour l'emplacement, sélectionnez Zone unique.
    5. Pour la région, sélectionnez us-central1.
    6. Pour la zone, sélectionnez us-central1-c.
    7. Pour le paramètre Modèle d'instance, sélectionnez ig-us-template-l3-default.
    8. Spécifiez le nombre d'instances que vous souhaitez créer au sein du groupe.

      Pour cet exemple, spécifiez les options suivantes sous Autoscaling :

      • Dans le champ Mode autoscaling, sélectionnez Off:do not autoscale.
      • Dans le champ Nombre maximal d'instances, saisissez 2.
    9. Cliquez sur Créer.

gcloud

Les instructions gcloud de ce guide supposent que vous utilisez Cloud Shell ou un autre environnement avec bash installé.

  1. Créez un modèle d'instance de VM avec le serveur HTTP à l'aide de la commande gcloud compute instance-templates create.

    Le script de démarrage configure également le serveur Apache pour qu'il écoute sur le port 8080 au lieu du port 80.

    Pour créer des VM de backend avec des interfaces réseau à double pile, utilisez la commande suivante.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV4_IPV6 \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    

    Pour créer des VM de backend avec des interfaces IPv4 uniquement, utilisez la commande suivante.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --stack-type=IPV4_ONLY \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    

    Pour créer des VM de backend avec des interfaces réseau IPv6 uniquement, utilisez la commande suivante.

      gcloud compute instance-templates create ig-us-template-l3-default \
          --region=us-central1 \
          --network=lb-network \
          --subnet=lb-subnet \
          --ipv6-network-tier=PREMIUM \
          --stack-type=IPV6_ONLY \
          --tags=network-lb-l3-default \
          --image-family=debian-12 \
          --image-project=debian-cloud \
          --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
          sed -ire "s/^Listen 80$/Listen 8080/g" /etc/apache2/ports.conf
          systemctl restart apache2'
    
  2. Créez un groupe d'instances géré dans la zone à l'aide de la commande gcloud compute instance-groups managed create.

      gcloud compute instance-groups managed create ig-us-l3-default \
          --zone us-central1-c \
          --size 2 \
          --template ig-us-template-l3-default
    

Configurer des règles de pare-feu

Créez les règles de pare-feu suivantes :

  • Règles de pare-feu autorisant le trafic TCP externe à atteindre des instances de backend dans le groupe d'instances ig-us-tcp-80 sur le port 80 (à l'aide du tag cible network-lb-tcp-80). Créez des règles de pare-feu distinctes pour autoriser le trafic IPv4 et IPv6.
  • Règles de pare-feu autorisant un autre trafic externe (TCP sur le port 8080, UDP, ESP et ICMP) à atteindre des instances backend dans le groupe d'instances ig-us-l3-default (à l'aide du tag cible network-lb-l3-default). Créez des règles de pare-feu distinctes pour autoriser le trafic IPv4 et IPv6.

Cet exemple crée des règles de pare-feu permettant au trafic de toutes les plages sources d'atteindre vos instances backend sur les ports configurés. Si vous souhaitez créer des règles de pare-feu distinctes qui sont spécifiques aux vérifications d'état, utilisez les plages d'adresses IP sources décrites dans la section Présentation des vérifications d'état : plages d'adresses IP de vérification et règles de pare-feu.

Console

  1. Dans la console Google Cloud , accédez à la page Règles de pare-feu.

    Accéder à la page Règles de pare-feu

  2. Pour permettre au trafic TCP IPv4 d'atteindre les backends du groupe d'instances ig-us-tcp-80, créez la règle de pare-feu suivante :

    1. Cliquez sur Créer une règle de pare-feu.
    2. Saisissez le nom allow-network-lb-tcp-80-ipv4.
    3. Sélectionnez le réseau auquel s'applique la règle de pare-feu (par défaut).
    4. Sous Cibles, sélectionnez Tags cibles spécifiés.
    5. Dans le champ Tags cibles, saisissez network-lb-tcp-80.
    6. Définissez Filtre source sur Plages IPv4.
    7. Définissez le champ Plages d'adresses IPv4 sources sur 0.0.0.0/0 pour autoriser tout trafic, quelle que soit l'adresse IP source. Cela permet à la fois au trafic externe et aux test de vérification d'état d'atteindre les instances backend.
    8. Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés. Cochez la case tcp et saisissez comme port 80.
    9. Cliquez sur Créer. L'affichage de la nouvelle règle de pare-feu dans la console peut prendre un certain temps. Vous devrez peut-être cliquer sur Actualiser pour qu'elle apparaisse.
  3. Pour permettre au trafic IPv4 UDP, ESP et ICMP d'atteindre les backends du groupe d'instances ig-us-l3-default, créez la règle de pare-feu suivante :

    1. Cliquez sur Créer une règle de pare-feu.
    2. Saisissez le nom allow-network-lb-l3-default-ipv4.
    3. Sélectionnez le réseau auquel s'applique la règle de pare-feu (par défaut).
    4. Sous Cibles, sélectionnez Tags cibles spécifiés.
    5. Dans le champ Tags cibles, saisissez network-lb-l3-default.
    6. Définissez Filtre source sur Plages IPv4.
    7. Définissez le champ Plages IPv4 sources sur 0.0.0.0/0 pour autoriser tout trafic, quelle que soit l'adresse IP source. Cela permet à la fois au trafic externe et aux test de vérification d'état d'atteindre les instances backend.
    8. Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés.
      1. Cochez la case TCP et saisissez 8080.
      2. Cochez la case UDP.
      3. Cochez la case Autre et saisissez esp, icmp.
    9. Cliquez sur Créer. L'affichage de la nouvelle règle de pare-feu dans la console peut prendre un certain temps. Vous devrez peut-être cliquer sur Actualiser pour qu'elle apparaisse.
  4. Pour permettre au trafic TCP IPv6 d'atteindre les backends du groupe d'instances ig-us-tcp-80, créez la règle de pare-feu suivante :

    1. Cliquez sur Créer une règle de pare-feu.
    2. Saisissez le nom allow-network-lb-tcp-80-ipv6.
    3. Sélectionnez le réseau auquel s'applique la règle de pare-feu (par défaut).
    4. Sous Cibles, sélectionnez Tags cibles spécifiés.
    5. Dans le champ Tags cibles, saisissez network-lb-tcp-80.
    6. Définissez Filtre source sur Plages IPv6.
    7. Définissez le champ Plages d'adresses IPv6 sources sur ::/0 pour autoriser tout trafic, quelle que soit la source. Cela permet à la fois au trafic externe et aux test de vérification d'état d'atteindre les instances backend.
    8. Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés. Cochez la case à côté de TCP, puis saisissez 80.
    9. Cliquez sur Créer. L'affichage de la nouvelle règle de pare-feu dans la console peut prendre un certain temps. Vous devrez peut-être cliquer sur Actualiser pour qu'elle apparaisse.
  5. Pour permettre au trafic IPv6 UDP, ESP et ICMPv6 d'atteindre les backends du groupe d'instances ig-us-l3-default, créez la règle de pare-feu suivante : Cette règle de pare-feu permet également aux tests de vérification d'état TCP d'atteindre les instances sur le port 8080.

    1. Cliquez sur Créer une règle de pare-feu.
    2. Saisissez le nom allow-network-lb-l3-default-ipv6.
    3. Sélectionnez le réseau auquel s'applique la règle de pare-feu (par défaut).
    4. Sous Cibles, sélectionnez Tags cibles spécifiés.
    5. Dans le champ Tags cibles, saisissez network-lb-l3-default.
    6. Définissez Filtre source sur Plages IPv6.
    7. Définissez le champ Plages d'adresses IPv6 sources sur ::/0 pour autoriser tout trafic, quelle que soit la source. Cela permet à la fois au trafic externe et aux test de vérification d'état d'atteindre les instances backend.
    8. Dans Protocoles et ports, sélectionnez Protocoles et ports spécifiés.
      1. Cochez la case à côté de TCP, puis saisissez 8080.
      2. Cochez la case à côté de UDP.
      3. Cochez la case à côté de Autres, puis saisissez esp, 58.
    9. Cliquez sur Créer. L'affichage de la nouvelle règle de pare-feu dans la console peut prendre un certain temps. Vous devrez peut-être cliquer sur Actualiser pour qu'elle apparaisse.

gcloud

  1. Pour permettre au trafic TCP IPv4 d'atteindre les backends du groupe d'instances ig-us-tcp-80, créez la règle de pare-feu suivante :

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv4 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=0.0.0.0/0
    
  2. Pour permettre au trafic IPv4 UDP, ESP et ICMP d'atteindre les backends du groupe d'instances ig-us-l3-default, créez la règle de pare-feu suivante : Cette règle de pare-feu permet également aux tests de vérification d'état TCP d'atteindre les instances sur le port 8080.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv4 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,icmp \
        --source-ranges=0.0.0.0/0
    
  3. Pour permettre au trafic TCP IPv6 d'atteindre les backends du groupe d'instances ig-us-tcp-80, créez la règle de pare-feu suivante :

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv6 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=::/0
    
  4. Pour permettre au trafic IPv6 UDP, ESP et ICMPv6 d'atteindre les backends du groupe d'instances ig-us-l3-default, créez la règle de pare-feu suivante : Cette règle de pare-feu permet également aux tests de vérification d'état TCP d'atteindre les instances sur le port 8080.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv6 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,58 \
        --source-ranges=::/0
    

Configurer les équilibreurs de charge

Configurez ensuite deux équilibreurs de charge. Configurez les deux équilibreurs de charge pour qu'ils utilisent la même adresse IP externe pour les règles de transfert. L'un gère le trafic TCP sur le port 80, et l'autre gère le trafic TCP, UDP, ESP et ICMP sur le port 8080.

Lorsque vous configurez un équilibreur de charge, vos instances de VM backend reçoivent des paquets destinés à l'adresse IP externe statique configurée. Si vous utilisez une image fournie par Compute Engine, vos instances sont automatiquement configurées pour gérer cette adresse IP. Si vous utilisez une autre image, vous devez configurer cette adresse en tant qu'alias sur eth0 ou en tant qu'adresse de rebouclage sur chaque instance.

Pour configurer deux équilibreurs de charge, suivez les instructions ci-dessous.

Console

Démarrer la configuration

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

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

  2. Cliquez sur Créer un équilibreur de charge.
  3. Sous Type d'équilibreur de charge, sélectionnez Équilibreur de charge réseau (TCP/UDP/SSL), puis cliquez sur Suivant.
  4. Pour Proxy ou passthrough, sélectionnez Équilibreur de charge passthrough, puis cliquez sur Suivant.
  5. Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur Suivant.
  6. Cliquez sur Configurer.

Configuration de base

  1. Dans le champ Nom, saisissez le nom backend-service-tcp-80 pour le nouvel équilibreur de charge.
  2. Dans la liste Région, sélectionnez us-central1.

Configuration du backend

  1. Cliquez sur Configuration du backend.
  2. Sur la page Configuration du backend, procédez comme suit :
    1. Dans la liste Vérification d'état, cliquez sur Créer une vérification d'état, puis saisissez les informations suivantes :
      • Nom : tcp-health-check-80
      • Protocole : TCP
      • Port : 80
    2. Cliquez sur Créer.
    3. Dans la section Nouveau backend, sélectionnez le type de pile IP.
    4. Dans la liste Groupe d'instances, sélectionnez ig-us-tcp-80, puis cliquez sur Terminé.
  3. Vérifiez qu'une coche bleue apparaît à côté de Configuration du backend avant de continuer.

Configuration de l'interface

  1. Cliquez sur Configuration de l'interface.
  2. Dans le champ Nom, saisissez forwarding-rule-tcp-80.
  3. Pour gérer le trafic IPv4, procédez comme suit :
    1. Pour Version IP, sélectionnez IPv4.
    2. Dans la section Objectif de l'adresse IP interne, dans la liste Adresse IP, sélectionnez Créer une adresse IP.
      1. Dans le champ Nom, saisissez network-lb-ipv4.
      2. Cliquez sur Réserver.
    3. Dans le champ Ports, sélectionnez Unique. Dans le champ Numéro de port, saisissez 80.
    4. Cliquez sur OK.
  4. Pour gérer le trafic IPv6, procédez comme suit :

    1. Pour Version IP, sélectionnez IPv6.
    2. Pour le Sous-réseau, sélectionnez lb-subnet.
    3. Dans la liste Plage IPv6, sélectionnez Créer une adresse IP.
      1. Dans le champ Nom, saisissez network-lb-ipv6.
      2. Cliquez sur Réserver.
    4. Dans le champ Ports, sélectionnez Unique. Dans le champ Numéro de port, saisissez 80.
    5. Cliquez sur OK.

    Si un cercle bleu avec une coche s'affiche à gauche de Configuration du frontend, cela indique que la configuration a réussi.

Vérifier la configuration

  1. Cliquez sur Vérifier et finaliser.
  2. Vérifiez les paramètres de configuration de votre équilibreur de charge.
  3. Facultatif : cliquez sur Code équivalent pour afficher la requête API REST qui sera utilisée pour créer l'équilibreur de charge.
  4. Cliquez sur Créer.

    Sur la page "Équilibrage de charge", sous la colonne "Backend" de votre nouvel équilibreur de charge, vous devriez voir une coche verte indiquant que celui-ci est opérationnel.

Créer le deuxième équilibreur de charge

Démarrer la configuration

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

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

  2. Cliquez sur Créer un équilibreur de charge.
  3. Sous Type d'équilibreur de charge, sélectionnez Équilibreur de charge réseau (TCP/UDP/SSL), puis cliquez sur Suivant.
  4. Pour Proxy ou passthrough, sélectionnez Équilibreur de charge passthrough, puis cliquez sur Suivant.
  5. Pour Public ou interne, sélectionnez Public (externe), puis cliquez sur Suivant.
  6. Cliquez sur Configurer.

Configuration de base

  1. Dans le champ Nom, saisissez le nom backend-service-l3-default pour le nouvel équilibreur de charge.
  2. Dans la liste Région, sélectionnez us-central1.

Configuration du backend

  1. Cliquez sur Configuration du backend.
  2. Sur la page Configuration du backend, procédez comme suit :
    1. Dans la liste Vérification d'état, cliquez sur Créer une vérification d'état, puis saisissez les informations suivantes :
      • Nom : tcp-health-check-8080
      • Protocole : TCP
      • Port : 8080
    2. Cliquez sur Créer.
    3. Dans la section Nouveau backend, sélectionnez le type de pile IP. Si vous avez créé des backends de pile double pour gérer le trafic IPv4 et IPv6, sélectionnez IPv4 et IPv6 (double pile). Pour ne gérer que le trafic IPv4, sélectionnez IPv4 (pile unique).
    4. Dans la liste Groupe d'instances, sélectionnez ig-us-l3-default, puis cliquez sur Terminé.
    5. Dans la liste Protocoles, sélectionnez L3 (plusieurs protocoles).
  3. Vérifiez qu'une coche bleue apparaît à côté de Configuration du backend avant de continuer.

Configuration de l'interface

  1. Cliquez sur Configuration de l'interface.
  2. Dans le champ Nom, saisissez forwarding-rule-l3-default.
  3. Pour gérer le trafic IPv4, procédez comme suit :
    1. Pour Version IP, sélectionnez IPv4.
    2. Dans la section Objectif de l'adresse IP interne, dans la liste Adresse IP, sélectionnez Créer une adresse IP.
      1. Dans le champ Nom, saisissez network-lb-ipv4.
      2. Cliquez sur Réserver.
    3. Dans la liste Protocole, sélectionnez L3 (plusieurs protocoles).
    4. Pour Ports, sélectionnez Tous.
    5. Cliquez sur OK.
  4. Pour gérer le trafic IPv6, procédez comme suit :

    1. Pour Version IP, sélectionnez IPv6.
    2. Pour le Sous-réseau, sélectionnez lb-subnet.
    3. Dans la liste Plage IPv6, sélectionnez Créer une adresse IP.
      1. Dans le champ Nom, saisissez network-lb-ipv6.
      2. Cliquez sur Réserver.
    4. Dans le champ Protocole, sélectionnez L3 (plusieurs protocoles).
    5. Pour Ports, sélectionnez Tous.
    6. Cliquez sur OK.

    Si un cercle bleu avec une coche s'affiche à gauche de Configuration du frontend, cela indique que la configuration a réussi.

Vérifier la configuration

  1. Cliquez sur Vérifier et finaliser.
  2. Vérifiez les paramètres de configuration de votre équilibreur de charge.
  3. Facultatif : cliquez sur Code équivalent pour afficher la requête API REST qui sera utilisée pour créer l'équilibreur de charge.
  4. Cliquez sur Créer.

    Sur la page "Équilibrage de charge", sous la colonne "Backend" de votre nouvel équilibreur de charge, vous devriez voir une coche verte indiquant que celui-ci est opérationnel.

gcloud

  1. Réservez une adresse IP externe statique.

    Pour le trafic IPv4 : créez une adresse IP externe statique pour vos équilibreurs de charge.

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

    Pour le trafic IPv6 : créez une plage d'adresses IPv6 externe statique pour vos équilibreurs de charge. Le sous-réseau utilisé doit être un sous-réseau à double pile avec une plage de sous-réseau IPv6 externe.

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. Créez une vérification d'état TCP pour le port 80. Cette vérification de l'état permet de vérifier l'état des backends dans le groupe d'instances ig-us-tcp-80.

    gcloud compute health-checks create tcp tcp-health-check-80 \
        --region us-central1 \
        --port 80
    
  3. Créez une vérification de l'état TCP pour le port 8080. Cette vérification de l'état permet de vérifier l'état des backends dans le groupe d'instances ig-us-l3-default.

    gcloud compute health-checks create tcp tcp-health-check-8080 \
        --region us-central1 \
        --port 8080
    
  4. Créez le premier équilibreur de charge pour le trafic TCP sur le port 80.

    1. Créez le service de backend avec le protocole défini sur TCP.

      gcloud compute backend-services create backend-service-tcp-80 \
          --protocol TCP \
          --health-checks tcp-health-check-80 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. Ajoutez le groupe d'instances backend au service de backend.

      gcloud compute backend-services add-backend backend-service-tcp-80 \
          --instance-group ig-us-tcp-80 \
          --instance-group-zone us-central1-a \
          --region us-central1
      
    3. Pour le trafic IPv4 : créez une règle de transfert pour acheminer le trafic TCP entrant sur le port 80 vers le service de backend. TCP est le protocole de règle de transfert par défaut. Il n'a pas besoin d'être défini explicitement.

      Utilisez l'adresse IP réservée à l'étape 1 comme adresse IP externe statique de l'équilibreur de charge.

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports 80 \
          --address network-lb-ipv4 \
          --backend-service backend-service-tcp-80
      
    4. Pour le trafic IPv6 : créez une règle de transfert pour acheminer le trafic TCP entrant sur le port 80 vers le service de backend. TCP est le protocole de règle de transfert par défaut. Il n'a pas besoin d'être défini explicitement.

      Utilisez la plage d'adresses IPv6 réservée à l'étape 1 comme adresse IP externe statique de l'équilibreur de charge. Le sous-réseau utilisé doit être un sous-réseau à double pile avec une plage de sous-réseau IPv6 externe.

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports 80 \
          --backend-service backend-service-tcp-80
      
  5. Créez le deuxième équilibreur de charge pour le trafic TCP sur le port 8080, ainsi que le trafic UDP, ESP et ICMP.

    1. Créez le service de backend avec le protocole défini sur UNSPECIFIED.

      gcloud compute backend-services create backend-service-l3-default \
          --protocol UNSPECIFIED \
          --health-checks tcp-health-check-8080 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. Ajoutez le groupe d'instances backend au service de backend.

      gcloud compute backend-services add-backend backend-service-l3-default \
          --instance-group ig-us-l3-default \
          --instance-group-zone us-central1-c \
          --region us-central1
      
    3. Pour le trafic IPv4 : créez une règle de transfert en définissant le protocole sur L3_DEFAULT pour gérer le trafic de tous les protocoles IP compatibles restants (TCP sur le port 8080, UDP, ESP et ICMP). Tous les ports doivent être configurés avec des règles de transfert L3_DEFAULT.

      Utilisez la même adresse IPv4 externe que celle utilisée pour l'équilibreur de charge précédent.

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --address network-lb-ipv4 \
          --backend-service backend-service-l3-default
      
    4. Pour le trafic IPv6 : créez une règle de transfert en définissant le protocole sur L3_DEFAULT pour gérer le trafic de tous les protocoles IP compatibles restants (TCP sur le port 8080, UDP, ESP et ICMP). Tous les ports doivent être configurés avec des règles de transfert L3_DEFAULT.

      Utilisez la plage d'adresses IPv6 réservée à l'étape 1 comme adresse IP externe statique de l'équilibreur de charge. Le sous-réseau utilisé doit être un sous-réseau à double pile avec une plage de sous-réseau IPv6 externe.

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --backend-service backend-service-l3-default
      

Tester l'équilibreur de charge

Maintenant que le service d'équilibrage de charge est configuré, vous pouvez commencer à envoyer le trafic vers l'adresse IP externe de l'équilibreur de charge et surveiller le trafic qui est distribué aux instances backend.

Rechercher l'adresse IP externe de l'équilibreur de charge

Console

  1. Dans la console Google Cloud , accédez à la page Composants d'équilibrage de charge.

    Accéder aux composants d'équilibrage de charge

  2. Dans l'onglet Règles de transfert, localisez les règles de transfert utilisées par l'équilibreur de charge.

  3. Dans la colonne Adresse IP, notez l'adresse IP externe répertoriée pour chaque règle de transfert IPv4 et IPv6.

gcloud: IPv4

Saisissez la commande suivante pour afficher l'adresse IP externe de la règle de transfert utilisée par l'équilibreur de charge.

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

Dans cet exemple, nous utilisons la même adresse IPv4 pour les deux règles de transfert. Vous pouvez donc utiliser forwarding-rule-l3-default.

gcloud: IPv6

Saisissez la commande suivante pour afficher l'adresse IPv6 externe de la règle de transfert forwarding-rule-tcp-80 utilisée par l'équilibreur de charge.

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

Dans cet exemple, nous utilisons la même adresse IP pour les deux règles de transfert IPv6. Vous pouvez donc utiliser forwarding-rule-l3-default.

Envoyer du trafic vers l'équilibreur de charge

Cette procédure envoie le trafic externe à l'équilibreur de charge. Exécutez les tests suivants pour vous assurer que le trafic TCP sur le port 80 est équilibré en charge par le groupe d'instances ig-us-tcp-80, tandis que le reste du trafic (TCP sur le port 8080, UDP, ESP et ICMP) est géré par le groupe d'instances ig-us-l3-default.

Vérifier le comportement avec des requêtes TCP sur le port 80

  1. Envoyez des requêtes Web (via TCP sur le port 80) à l'équilibreur de charge à l'aide de curl pour contacter son adresse IP.

    • À partir de clients disposant d'une connectivité IPv4, exécutez la commande suivante:

      while true; do curl -m1 IP_ADDRESS; done
      
    • À partir de clients disposant d'une connectivité IPv6, exécutez la commande suivante:

      while true; do curl -m1 http://IPV6_ADDRESS; done
      

      Par exemple, si l'adresse IPv6 attribuée est [2001:db8:1:1:1:1:1:1/96], la commande est semblable à la suivante :

      while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]; done
      
  2. Notez le texte renvoyé par la commande curl. Le nom de la VM de backend qui génère la réponse est affiché dans ce texte, par exemple Page served from: VM_NAME. Les réponses ne proviennent que des instances du groupe d'instances ig-us-tcp-80.

    En cas d'échec au début de la phase de réponse, il vous faudra probablement patienter environ 30 secondes pour que la configuration soit entièrement chargée et que vos instances soient identifiées comme saines avant de réessayer :

Vérifier le comportement avec des requêtes TCP sur le port 8080

Envoyez des requêtes Web (via TCP sur le port 8080) à l'équilibreur de charge à l'aide de curl pour contacter son adresse IP.

  • À partir de clients disposant d'une connectivité IPv4, exécutez la commande suivante:

    while true; do curl -m1 IPV4_ADDRESS:8080; done
    
  • À partir de clients disposant d'une connectivité IPv6, exécutez la commande suivante:

    while true; do curl -m1 http://IPV6_ADDRESS; done
    

    Par exemple, si l'adresse IPv6 attribuée est [2001:db8:1:1:1:1:1:1/96], la commande est semblable à la suivante :

    while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:8080; done
    

Notez le texte renvoyé par la commande curl. Les réponses ne proviennent que des instances du groupe d'instances ig-us-l3-default.

Cela montre que tout le trafic envoyé à l'adresse IP de l'équilibreur de charge sur le port 8080 n'est traité que par les backends du groupe d'instances ig-us-l3-default.

Vérifier le comportement avec des requêtes ICMP

Pour vérifier le comportement avec le trafic ICMP, vous devez capturer la sortie de la commande tcpdump pour confirmer que seules les VM de backend du groupe d'instances ig-us-l3-default gèrent les requêtes ICMP envoyées à l'équilibreur de charge.

  1. Connectez-vous en SSH aux VM de backend.

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

      Accéder à la page "Instances de VM"

    2. Dans la liste des instances de machines virtuelles (VM), cliquez sur SSH sur la ligne de l'instance à laquelle vous souhaitez vous connecter.

  2. Exécutez la commande suivante pour utiliser tcpdump afin de commencer à écouter le trafic ICMP.

    sudo tcpdump icmp -w ~/icmpcapture.pcap -s0 -c 10000
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    

    Laissez la fenêtre SSH ouverte.

  3. Répétez les étapes 1 et 2 pour les quatre VM de backend.

  4. Envoyez des requêtes ICMP à l'équilibreur de charge.

    Pour tester les réponses IPv4, utilisez ping pour contacter l'adresse IPv4 de l'équilibreur de charge.

    ping IPV4_ADDRESS
    

    Pour tester les réponses IPv6, utilisez ping6 pour contacter l'adresse IPv6 de l'équilibreur de charge.

    ping6 IPV6_ADDRESS
    

    Par exemple, si l'adresse IPv6 attribuée est [2001:db8:1:1:1:1:1:1/96], la commande est semblable à la suivante :

    ping6 2001:db8:1:1:1:1:1:1
    
  5. Revenez à la fenêtre SSH de chaque VM et arrêtez la commande de capture tcpdump. Pour cela, vous pouvez utiliser Ctrl+C.

  6. Pour chaque VM, vérifiez la sortie de la commande tcpdump dans le fichier icmpcapture.pcap.

    sudo tcpdump -r ~/icmpcapture.pcap -n
    

    Pour les VM de backend du groupe d'instances ig-us-l3-default, les entrées de fichier doivent s'afficher comme suit :

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    22:13:07.814486 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 1, length 64
    22:13:07.814513 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 1, length 64
    22:13:08.816150 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 2, length 64
    22:13:08.816175 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 2, length 64
    22:13:09.817536 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 3, length 64
    22:13:09.817560 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 3, length 64
    ...
    

    Pour les VM de backend du groupe d'instances ig-us-tcp-80, vous constatez qu'aucun paquet n'a été reçu et que le fichier est vide :

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    

Options de configuration supplémentaires

Créer une règle de transfert IPv6 avec BYOIP

L'équilibreur de charge créé lors des étapes précédentes est configuré avec des règles de transfert dont IP version est défini sur IPv4 ou IPv6. Cette section explique comment créer une règle de transfert IPv6 avec des adresses BYOIP (Bring Your Own IP).

L'option "Utiliser votre propre adresse IP" vous permet de provisionner et d'utiliser vos propres adresses IPv6 publiques pour les ressources Google Cloud . Pour en savoir plus, consultez Utiliser vos propres adresses IP.

Avant de configurer une règle de transfert IPv6 avec des adresses BYOIP, vous devez effectuer les étapes suivantes :

  1. Créer un préfixe IPv6 public annoncé
  2. Créer des préfixes délégués publics
  3. Créer des sous-préfixes IPv6
  4. Annoncez le préfixe.

Vous pouvez configurer un équilibreur de charge réseau passthrough externe régional pour qu'il utilise des adresses IPv6 provenant d'un préfixe délégué public (PDP). Vous pouvez le déployer à l'aide de l'un des trois workflows suivants :

  • Allocation directe à partir d'un PDP : Si vous préférez que l'adresse IP soit directement liée au cycle de vie de l'équilibreur de charge, vous pouvez faire référence au PDP directement lors de la création de la règle de transfert. L'adresse IP éphémère est libérée et renvoyée au pool PDP si l'équilibreur de charge est supprimé.
  • Réservez une adresse IPv6 BYOIP. Vous pouvez réserver une adresse IPv6 BYOIP régionale spécifique ou attribuée automatiquement à partir d'un PDP avant de créer l'équilibreur de charge. Cette adresse est conservée indépendamment du cycle de vie de l'équilibreur de charge. Il s'agit du chemin d'accès requis pour les utilisateurs de Google Kubernetes Engine (GKE), car l'API GKE ne permet pas de créer un équilibreur de charge réseau passthrough directement à partir d'un PDP.
  • Convertissez une adresse IP éphémère. Si un équilibreur de charge est déjà en cours d'exécution avec une adresse IPv6 éphémère BYOIP, vous pouvez la promouvoir en adresse réservée afin qu'elle persiste même si l'équilibreur de charge est supprimé.

Limites

  • Pour configurer une règle de transfert IPv6 avec une adresse BYOIP, la longueur de préfixe de l'adresse IPv6 de la règle de transfert doit correspondre à la longueur de préfixe pouvant être allouée du sous-préfixe IPv6 (en mode EXTERNAL_IPV6_FORWARDING_RULE_CREATION) à partir duquel l'adresse IPv6 de la règle de transfert est allouée. La longueur du préfixe peut être /48, /56, /64, /72, /80, /88 ou /96.
  • L'adresse IPv6 doit se trouver dans la même région que le PDP.

En fonction de vos besoins, choisissez l'un des déploiements suivants :

Allocation directe à partir d'un PDP

Créez la règle de transfert en référençant directement le PDP. L'adresse IP est liée au cycle de vie 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 que vous souhaitez modifier.
  3. Cliquez sur Modifier ().
  4. Cliquez sur Frontend configuration (Configuration du frontend).
  5. Cliquez sur Ajouter un IP et port frontend.
  6. Dans la section Nouveaux IP et port frontend, spécifiez les éléments suivants :
    1. Sélectionnez le protocole dont vous avez besoin.
    2. Dans le champ Version IP, sélectionnez IPv6.
    3. Dans le champ Source de la plage IPv6, sélectionnez BYOIP.
    4. Dans le champ Type BYOIP, sélectionnez Collection d'adresses IP BYOIP.
    5. Dans la liste Collection d'adresses IP, sélectionnez un sous-préfixe (PDP) créé lors des étapes précédentes avec l'option de règle de transfert activée.
    6. Dans le champ Plage IPv6, saisissez la plage d'adresses IPv6. La longueur de préfixe de la plage d'adresses IPv6 doit correspondre à la longueur de préfixe pouvant être allouée du sous-préfixe associé.
    7. Dans le champ Ports, saisissez un numéro de port.
    8. Cliquez sur OK.
  7. Cliquez sur Mettre à jour.

gcloud

Exécutez la commande gcloud compute forwarding-rules create :

  gcloud compute forwarding-rules create FWD_RULE_NAME \
      --load-balancing-scheme=EXTERNAL \
      --ip-protocol=PROTOCOL \
      --ports=ALL \
      --ip-version=IPV6 \
      --region=REGION_A \
      --address=IPV6_CIDR_RANGE  \
      --backend-service=BACKEND_SERVICE \
      --ip-collection=PDP_NAME

Remplacez les éléments suivants :

  • FWD_RULE_NAME : nom de la règle de transfert.
  • PROTOCOL : protocole IP de la règle de transfert. La valeur par défaut est TCP. Dans cet exemple, le protocole IP peut être TCP ou L3_DEFAULT.
  • REGION_A : région de la règle de transfert.
  • IPV6_CIDR_RANGE : plage d'adresses IPv6 utilisée par la règle de transfert. Le préfixe de la plage d'adresses IPv6 doit correspondre à la longueur de préfixe pouvant être allouée spécifiée par le sous-préfixe associé.
  • BACKEND_SERVICE : nom du service de backend
  • PDP_NAME : nom du préfixe public délégué. Le PDP doit être un sous-préfixe en mode EXTERNAL_IPV6_FORWARDING_RULE_CREATION.

Réserver une adresse IPv6 BYOIP

Réservez l'adresse IPv6 BYOIP pour l'équilibreur de charge, puis créez la règle de transfert en référençant l'adresse IP ou le nom de ressource de l'adresse réservée.

Console

Réserver l'adresse IPv6 BYOIP pour l'équilibreur de charge

  1. Dans la console Google Cloud , accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  2. Cliquez sur Réserver une adresse statique.
  3. Dans le champ Nom, saisissez un nom pour la ressource d'adresse IP.
  4. Dans le champ Niveau de service réseau, sélectionnez Premium.
  5. Dans le champ Version IP, sélectionnez IPv6.
  6. Sélectionnez la Région. La région doit correspondre à celle de votre PDP.
  7. Cochez la case Attribuer à partir de la collection d'adresses IP.
  8. Dans la liste Collection d'adresses IP, sélectionnez le sous-préfixe IPv6 (PDP) à partir duquel vous souhaitez réserver l'adresse.
  9. Facultatif : Dans le champ Adresse IP, saisissez une plage d'adresses IPv6 spécifique à réserver (allocation personnalisée). Si vous ne spécifiez pas de plage d'adresses, Google Cloud alloue automatiquement une plage d'adresses à partir de la collection d'adresses IP sélectionnée (allocation automatique).
  10. Cliquez sur Réserver.

Attribuer l'adresse réservée à l'équilibreur de charge

  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 que vous souhaitez modifier.
  3. Cliquez sur Modifier, puis sur Configuration de l'interface.
  4. Cliquez sur Ajouter un IP et port frontend.
  5. Dans la section Nouveaux IP et port frontend, spécifiez les éléments suivants :
    1. Sélectionnez le protocole dont vous avez besoin.
    2. Dans le champ Version IP, sélectionnez IPv6.
    3. Dans le champ Source de la plage IPv6, sélectionnez BYOIP.
    4. Dans le champ Type BYOIP, sélectionnez Adresse IP réservée BYOIP.
    5. Dans la liste Adresse IP réservée, sélectionnez la ressource d'adresse BYOIPv6 réservée que vous avez créée à l'étape 1.
    6. Dans le champ Ports, saisissez un numéro de port.
    7. Cliquez sur OK.
  6. Configurez l'équilibreur de charge, puis cliquez sur Mettre à jour.

gcloud

Réserver l'adresse IPv6 BYOIP pour l'équilibreur de charge

Pour réserver une adresse IPv6 BYOIP régionale à partir d'un PDP avant la création de l'équilibreur de charge, exécutez la commande gcloud compute addresses create avec --endpoint-type=NETLB. Choisissez l'une des options suivantes :

  • Pour réserver une plage d'adresses IPv6 spécifique, exécutez la commande suivante :

      gcloud compute addresses create ADDRESS_NAME \
          --ip-collection=PDP_NAME \
          --addresses=IPV6_ADDRESS \
          --region=REGION_A \
          --endpoint-type=NETLB \
          --prefix-length=PREFIX_LENGTH
    
  • Pour que Google Cloud alloue automatiquement une plage à partir du PDP, exécutez la commande suivante :

      gcloud compute addresses create ADDRESS_NAME \
          --ip-collection=PDP_NAME \
          --region=REGION_A \
          --endpoint-type=NETLB \
          --prefix-length=PREFIX_LENGTH
    

Remplacez les éléments suivants :

  • ADDRESS_NAME : nom de la ressource d'adresse IP réservée.
  • PDP_NAME : nom du préfixe public délégué. Le PDP doit être un sous-préfixe en mode EXTERNAL_IPV6_FORWARDING_RULE_CREATION.
  • IPV6_ADDRESS : adresse IPv6 de début de la plage (par exemple, 2001:db8::).
  • REGION_A : région dans laquelle l'adresse doit être créée. Cette région doit correspondre à celle du PDP.
  • PREFIX_LENGTH : longueur de préfixe de la plage d'adresses, qui doit être égale à la longueur de préfixe pouvant être allouée du PDP associé (par exemple, 56).

Créer la règle de transfert à l'aide de l'adresse réservée

Pour créer la règle de transfert à l'aide de l'adresse réservée, exécutez la commande gcloud compute forwarding-rules create. Choisissez l'une des options suivantes :

  • Pour faire référence à la plage d'adresses IP, exécutez la commande suivante :

      gcloud compute forwarding-rules create FWD_RULE_NAME \
         --load-balancing-scheme=EXTERNAL \
         --ip-protocol=PROTOCOL \
         --ports=ALL \
         --ip-version=IPV6 \
         --region=REGION_A \
         --address=IPV6_CIDR_RANGE \
         --backend-service=BACKEND_SERVICE
    
  • Pour faire référence au nom de l'adresse réservée, exécutez la commande suivante :

      gcloud compute forwarding-rules create FWD_RULE_NAME \
          --load-balancing-scheme=EXTERNAL \
          --ip-protocol=PROTOCOL \
          --ports=ALL \
          --ip-version=IPV6 \
          --region=REGION_A \
          --address=ADDRESS_NAME \
          --backend-service=BACKEND_SERVICE
    

Remplacez les éléments suivants :

  • FWD_RULE_NAME : nom de la règle de transfert.
  • PROTOCOL : protocole IP de la règle de transfert. La valeur par défaut est TCP. Dans cet exemple, le protocole IP peut être TCP ou L3_DEFAULT.
  • REGION_A : région de la règle de transfert.
  • IPV6_CIDR_RANGE : plage d'adresses IPv6 utilisée par la règle de transfert. Le préfixe de la plage d'adresses IPv6 doit correspondre à la longueur de préfixe pouvant être allouée spécifiée par le sous-préfixe associé.
  • BACKEND_SERVICE : nom du service de backend
  • ADDRESS_NAME : nom de la ressource d'adresse IP réservée.

Convertir une adresse IP éphémère en adresse IP réservée

Créez la règle de transfert à l'aide de l'allocation directe et promouvez l'adresse IP éphémère en cours d'utilisation.

Console

  1. Suivez la procédure pour créer la règle de transfert à l'aide de l'allocation directe à partir d'un PDP.
  2. Dans la console Google Cloud , accédez à la page Adresses IP.

    Accéder à la page "Adresses IP"

  3. Cliquez sur l'onglet Adresses IP externes.
  4. Recherchez l'adresse BYOIP IPv6 éphémère associée à votre équilibreur de charge réseau passthrough externe.
  5. Dans la colonne Actions, cliquez sur le menu à trois points (), puis sélectionnez Convertir en adresse IP statique.
  6. Saisissez un nom pour l'adresse réservée, puis cliquez sur Réserver.

gcloud

  1. Suivez la procédure pour mettre à jour la règle de transfert à l'aide de l'allocation directe à partir d'un PDP.
  2. Pour convertir la plage d'adresses IP éphémères utilisée par l'équilibreur de charge en adresse IP statique réservée, exécutez la commande gcloud compute addresses create :

       gcloud compute addresses create ADDRESS_NAME \
           --addresses=IPV6_ADDRESS \
           --region=REGION_A \
           --endpoint-type=NETLB \
           --prefix-length=PREFIX_LENGTH
    

    Remplacez les éléments suivants :

    • ADDRESS_NAME : nom de la ressource d'adresse IP réservée.
    • IPV6_ADDRESS : adresse IPv6 de début de la plage (par exemple, 2001:db8::).
    • REGION_A : région de la règle de transfert.
    • PREFIX_LENGTH : longueur de préfixe de la plage d'adresses, qui doit être égale à la longueur de préfixe pouvant être allouée du PDP associé (par exemple, 56).

Étapes suivantes