Ce document explique comment le trafic IPv6 est géré par les équilibreurs de charge d'application et les équilibreurs de charge réseau proxy. Ces équilibreurs de charge sont des équilibreurs de charge proxy, ce qui signifie que les connexions client entrantes sont interrompues au niveau de l'équilibreur de charge. L'équilibreur de charge établit ensuite une nouvelle connexion pour transférer la requête du client au backend. Selon le type d'équilibreur de charge, vous pouvez activer IPv6 pour l'une ou l'autre de ces connexions, ou les deux.
L'activation d'IPv6 pour votre équilibreur de charge présente les avantages suivants :
- Déploiement multirégional à l'aide d'une seule adresse IPv6 Anycast. Vous n'avez besoin que d'une seule adresse IPv6 d'équilibrage de charge pour les instances d'applications exécutées dans plusieurs régions. Votre serveur DNS dispose ainsi d'un seul enregistrement AAAA. Il n'est donc pas nécessaire d'équilibrer la charge entre plusieurs adresses IPv6. La mise en cache des enregistrements AAAA par les clients n'est pas un problème, car il n'existe qu'une seule adresse à mettre en cache. Les requêtes des utilisateurs envoyées à l'adresse IPv6 sont automatiquement équilibrées en charge en fonction de la capacité disponible du backend opérationnel le plus proche.
Exécutez des déploiements à double pile. Pour desservir les clients IPv6 et IPv4, créez deux adresses IP d'équilibrage de charge, l'une pour IPv6 et l'autre pour IPv4. Les clients IPv4 et IPv6 se connectent respectivement aux adresses IPv4 et IPv6. Ces clients sont ensuite automatiquement équilibrés en charge en fonction de la capacité disponible des backends opérationnels à double pile IPv4 ou IPv6 les plus proches. Pour savoir quels équilibreurs de charge sont compatibles avec les backends à double pile, consultez la page Tableau : services de backend et types de backends compatibles.
Équilibrage de charge du trafic client IPv6 via HTTP, HTTPS, HTTP/2, TCP et SSL/TLS. La compatibilité des protocoles dépend du type d'équilibreur de charge que vous utilisez et du protocole de la règle de transfert.
- Dépassement de capacité entre régions à l'aide d'une seule adresse IPv6 d'équilibrage de charge. Si les backends d'une région manquent de ressources ou ne sont pas opérationnels, l'équilibreur de charge global redirige automatiquement les requêtes des utilisateurs vers la région la plus proche disposant de ressources disponibles. Dès que la région la plus proche dispose à nouveau de ressources disponibles, l'équilibrage de charge global rétablit la diffusion via cette région. L'équilibrage de charge global nécessite d'utiliser le niveau Premium des niveaux de service réseau.
Compatibilité avec les équilibreurs de charge
Pour les équilibreurs de charge basés sur un proxy, tels que les équilibreurs de charge d'application et les équilibreurs de charge réseau proxy, la connexion du client à l'équilibreur de charge et la deuxième connexion de l'équilibreur de charge au backend peuvent être configurées indépendamment l'une de l'autre. Par exemple, l'équilibreur de charge peut accepter le trafic IPv4 et IPv6 d'un client, mettre fin à la connexion, puis transférer la requête de l'équilibreur de charge au backend via une nouvelle connexion IPv6, à condition que le backend soit un backend à double pile équipé pour gérer les connexions IPv6.
Pour permettre à un équilibreur de charge de recevoir des connexions IPv6 de clients, vous devez utiliser une adresse IPv6 pour la règle de transfert de l'équilibreur de charge. La connexion ultérieure de l'équilibreur de charge au backend utilise IPv4 par défaut. Toutefois, vous pouvez activer certains équilibreurs de charge pour qu'ils utilisent IPv6 en configurant l'option Règle de sélection d'adresse IP sur le service de backend.
Le tableau suivant décrit les types de connexions compatibles avec tous les équilibreurs de charge basés sur un proxy :
| Équilibreur de charge | Connexion des clients à l'équilibreur de charge | Connexion de l'équilibreur de charge aux backends |
|---|---|---|
| Équilibreur de charge d'application externe global Équilibreur de charge réseau proxy externe global |
Les connexions IPv4 et IPv6 peuvent être interrompues. | Au choix :
|
| Équilibreur de charge d'application classique Équilibreur de charge réseau proxy classique |
Les connexions IPv4 et IPv6 peuvent être interrompues. | Connexion IPv4 uniquement |
| Équilibreur de charge d'application externe régional Équilibreur de charge réseau proxy externe régional Équilibreur de charge d'application interne régional Équilibreur de charge réseau proxy interne régional Équilibreur de charge d'application interne interrégional Équilibreur de charge réseau proxy interne interrégional |
Les connexions IPv4 et IPv6 (preview) peuvent être interrompues. | Au choix :
|
GCE_VM_IP_PORT) peuvent être configurés pour être double pile.
Fonctionnement de la terminaison IPv6
La terminaison IPv6 est compatible avec les équilibreurs de charge d'application et les équilibreurs de charge réseau proxy. La configuration de la terminaison IPv6 de ces équilibreurs de charge vous permet d'afficher les backends en tant qu'applications IPv6 auprès de vos clients IPv6, comme le montre la figure suivante :
Voici comment se déroule le processus de connexion d'un utilisateur à l'équilibreur de charge via IPv6 :
- L'équilibreur de charge, avec son adresse IPv6 et sa règle de transfert, attend que les utilisateurs se connectent.
- Un client IPv6 se connecte à l'équilibreur de charge via IPv6.
- L'équilibreur de charge agit comme un proxy inverse et met fin à la connexion du client IPv6. En fonction de la règle de sélection d'adresse IP du service de backend, il place la requête dans une connexion IPv4 ou IPv6 vers un backend.
- Dans le sens inverse, l'équilibreur de charge reçoit la réponse du backend, puis la place dans la connexion IPv6 qu'il transmet au client d'origine.
Allocation d'adresses IPv6 pour les règles de transfert de l'équilibreur de charge
Lorsque vous configurez un équilibreur de charge externe ou interne, vous lui fournissez une ou plusieurs règles de transfert, chacune disposant d'une adresse IP IPv4 ou IPv6 (ou les deux). Les équilibreurs de charge externes utilisent des adresses IP externes et routées publiquement, tandis que les équilibreurs de charge internes utilisent des adresses IP internes et privées qui ne sont pas accessibles depuis Internet. Vous pouvez utiliser ces adresses IP dans les enregistrements DNS de votre site.
Lorsque vous créez une règle de transfert, vous pouvez soit réserver une adresse IP statique pour votre projet, soit acquérir automatiquement une adresse IP éphémère lors de la création de la règle. Une adresse IP statique est réservée pour votre projet. Vous pouvez la conserver jusqu'à ce que vous la libériez volontairement. L'adresse éphémère est associée à la règle de transfert jusqu'à ce que vous supprimiez cette dernière. Si vous supprimez la règle de transfert, l'adresse éphémère est libérée de nouveau dans le pool Google Cloud .
Si vous avez besoin d'adresses IPv4 et IPv6 pour votre équilibreur de charge, vous pouvez créer deux règles de transfert, l'une associée à l'adresse IPv4 et l'autre à l'adresse IPv6. Vous pouvez ensuite associer les deux règles au même équilibreur de charge.
Format d'adresse IPv6
Lorsque vous créez une règle de transfert, le comportement d'allocation d'adresses IPv6 dépend du type d'équilibreur de charge :
Pour les équilibreurs de charge d'application externes globaux, Google Cloud attribue une plage d'adresses IPv6
/64aux règles de transfert IPv6. Google Cloud CLI répertorie les adresses IPv6 avec les 64 bits les moins significatifs définis sur 0. Cependant, l'équilibreur de charge accepte le trafic sur toute la plage. D'autres adresses IPv6 de l'équilibreur de charge peuvent donc s'afficher dans la plage allouée des en-têtesX-Forwarded-Foren fonction de l'adresse IP du serveur IPv6 à laquelle le client est connecté.Pour les équilibreurs de charge d'application internes régionaux et interrégionaux, ainsi que les équilibreurs de charge réseau proxy, avec
--ip-versiondéfini surIPV6,Google Cloud crée une plage d'adresses IPv6 avec un préfixe/96aléatoire dans la plage du sous-réseau. L'adresse IPv6 de la règle de transfert est allouée à partir d'un sous-réseau personnalisé qui doit être configuré avec un--ipv6-access-typedeINTERNALet un--stack-typedeIPV4_IPV6ouIPV6_ONLY.Pour l'équilibreur de charge d'application externe régional et l'équilibreur de charge réseau proxy externe régional, avec
--ip-versiondéfini surIPV6, Google Cloud crée une plage d'adresses IPv6 avec préfixe/96aléatoire dans la plage du sous-réseau. L'adresse IPv6 de la règle de transfert est allouée à partir d'un sous-réseau personnalisé qui doit être configuré avec unipv6-access-typedeEXTERNALet unstack-typedeIPV4_IPV6ouIPV6_ONLY. Les adresses IPv6 externes ne peuvent être réservées que dans le niveau réseau Premium. L'indicateur--endpoint-typedoit être défini surNETLBpour être utilisé pour la règle de transfert.
Lors du formatage des adresses IPv6, Google Cloud suit les recommandations de la section 4 de la norme RFC 5952.
En-tête de l'adresse IP du client avec la terminaison IPv6 pour les équilibreurs de charge d'application
Lorsque l'équilibreur de charge joue le rôle de proxy pour "convertir" la connexion IPv6 du client en une connexion IPv4 vers votre backend, l'adresse IP source d'origine est remplacée par l'adresse IP de l'équilibreur de charge. Néanmoins, les backends doivent souvent connaître l'adresse IP source d'origine pour la journalisation, la prise de décision ou à d'autres fins. Google Cloud fournit un en-tête HTTP qui est propagé aux backends et qui inclut l'adresse IP du client IPv6 d'origine.
Les en-têtes HTTP pour IPv6 sont semblables à ceux pour IPv4. Les requêtes sont au format suivant :
X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES
Le dernier élément correspond à l'adresse IP de l'équilibreur de charge. L'avant-dernier élément indique l'adresse IP du client telle qu'elle est perçue par l'équilibreur de charge. Vous pouvez inclure d'autres éléments dans l'en-tête X-Forwarded-For lorsque le client ou les proxys intermédiaires ajoutent d'autres en-têtes X-Forwarded-For avant d'envoyer la requête à l'équilibreur de charge.
Voici un exemple d'en-tête X-Forwarded-For :
X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e
2001:db8:abcd:1::1234 correspond à l'adresse IPv6 du client. 2607:f8b0:4005:801::200e correspond à l'adresse IPv6 de l'équilibreur de charge d'application externe.
Passer d'IPv4 uniquement à la double pile
Vous pouvez convertir les ressources d'équilibreur de charge qui utilisent IPv4 uniquement (pile unique) en IPv4 et IPv6 (double pile). En mettant à jour les ressources de l'équilibreur de charge, vous pouvez acheminer automatiquement le trafic IPv6 vers vos backends.
Pour obtenir des instructions sur la conversion des ressources et des backends de votre équilibreur de charge vers la double pile, consultez la documentation suivante :
| Équilibreur de charge | Documentation |
|---|---|
|
Équilibreur de charge d'application externe global Équilibreur de charge d'application interne interrégional Équilibreur de charge d'application externe régional Équilibreur de charge d'application interne régional |
Convertir l'équilibreur de charge d'application en IPv6 |
|
Équilibreur de charge réseau proxy externe global Équilibreur de charge réseau proxy interne interrégional Équilibreur de charge réseau proxy externe régional Équilibreur de charge réseau proxy interne régional |
Convertir un équilibreur de charge réseau proxy en IPv6 |
Tarifs
Pour connaître les tarifs des adresses IP, consultez Tarifs du réseau : cloud privé virtuel.
Pour en savoir plus sur la tarification de l'équilibrage de charge, consultez la page Tarifs du réseau : Cloud Load Balancing.
Limites
- Les équilibreurs de charge réseau proxy classiques et les équilibreurs de charge d'application classiques ne sont pas compatibles avec les backends à double pile. Le trafic IPv6 est interrompu par l'équilibreur de charge, puis transmis par le biais d'un serveur proxy aux backends, via une connexion IPv4.
Lorsqu'une règle de transfert IPv6 est créée, une plage d'adresses IPv6
/96est automatiquement allouée à partir du sous-réseau. Toutefois, seule la première adresse de cette plage /96 (par exemple, celle se terminant par:0:0) est accessible par les clients. Assurez-vous que vos clients et vos enregistrements DNS sont configurés pour utiliser cette première adresse spécifique. Cela s'applique aux équilibreurs de charge d'application externes régionaux, aux équilibreurs de charge d'application internes régionaux, aux équilibreurs de charge réseau proxy internes régionaux, aux équilibreurs de charge réseau proxy internes interrégionaux, aux équilibreurs de charge d'application internes interrégionaux, et aux équilibreurs de charge réseau proxy externes régionaux (aperçu).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_PORTsont compatibles avec les backends à double pile (IPv4 et IPv6).