IPv6 für Application Load Balancer und Proxy-Network Load Balancer

In diesem Dokument wird beschrieben, wie IPv6-Traffic von Application Load Balancern und Proxy-Network Load Balancern verarbeitet wird. Diese Load Balancer sind Proxy-Load-Balancer. Das bedeutet, dass eingehende Clientverbindungen am Load Balancer beendet werden. Der Load Balancer initiiert dann eine neue Verbindung, um die Clientanfrage an das Backend weiterzuleiten. Je nach Typ des Load Balancers können Sie IPv6 für eine oder beide dieser Verbindungen aktivieren.

Die Aktivierung von IPv6 für Ihren Load Balancer bietet folgende Vorteile:

  • Nur eine Anycast-IPv6-Adresse für die Bereitstellung in mehreren Regionen. Für Anwendungsinstanzen, die über mehrere Regionen hinweg ausgeführt werden, benötigen Sie nur eine Load-Balancer-IPv6-Adresse. Ihr DNS-Server hat also einen einzigen AAAA-Eintrag und Sie müssen kein Load-Balancing über mehrere IPv6-Adressen ausführen. Clients können AAAA-Einträge problemlos im Cache speichern, da nur eine Adresse gespeichert werden muss. Die von Nutzern an die IPv6-Adresse gerichteten Anfragen werden per Load-Balancing automatisch an das nächstgelegene intakte Backend mit verfügbarer Kapazität geleitet.
  • Dual-Stack-Bereitstellungen ausführen. Damit sowohl IPv6- als auch IPv4-Clients bedient werden, erstellen Sie zwei IP-Adressen für den Load Balancer – eine für IPv6 und eine für IPv4. IPv4-Clients stellen eine Verbindung zur IPv4-Adresse her, während IPv6-Clients eine Verbindung zur IPv6-Adresse herstellen. Diese Clients werden dann per Load-Balancing automatisch zu den nächstgelegenen fehlerfreien IPv4- oder IPv6-Dual-Stack-Backends mit verfügbarer Kapazität geleitet. Informationen dazu, welche Load Balancer Dual-Stack-Backends unterstützen, finden Sie unter Tabelle: Backend-Dienste und unterstützte Backend Typen.

  • Load-Balancing für HTTP-, HTTPS-, HTTP/2-, TCP- und SSL/TLS-IPv6-Clienttraffic. Die Protokollunterstützung hängt vom Typ des verwendeten Load Balancers und vom Protokoll der Weiterleitungsregel ab.

  • Regionsübergreifende Weiterleitung mit nur einer Load-Balancer-IPv6-Adresse. Wenn Back-Ends in einer Region keine Ressourcen mehr haben oder nicht intakt sind, leitet der globale Load-Balancer Nutzeranfragen automatisch an die nächstgelegene Region mit verfügbaren Ressourcen weiter. Sobald die nächstgelegene Region wieder über Ressourcen verfügt, verarbeitet das globale Load-Balancing wieder Anfragen über diese Region. Für globales Load-Balancing ist die Premium Stufe der Netzwerkdienststufen erforderlich.

Load-Balancer-Unterstützung

Bei proxybasierten Load Balancern wie Application Load Balancern und Proxy-Network Load Balancern können die Verbindung vom Client zum Load Balancer und die zweite Verbindung vom Load Balancer zum Backend unabhängig voneinander konfiguriert werden. Der Load Balancer kann beispielsweise IPv4- und IPv6-Traffic von einem Client akzeptieren, die Verbindung beenden und dann die Anfrage vom Load Balancer über eine neue IPv6-Verbindung an das Backend weiterleiten, sofern das Backend ein Dual-Stack-Backend ist, das IPv6-Verbindungen verarbeiten kann.

Damit ein Load Balancer IPv6-Verbindungen von Clients empfangen kann, müssen Sie eine IPv6-Adresse für die Weiterleitungsregel des Load Balancers verwenden. Die nachfolgende Verbindung vom Load Balancer zum Backend verwendet standardmäßig IPv4. Sie können jedoch bestimmte Load Balancer für die Verwendung von IPv6 aktivieren, indem Sie die Option für die Richtlinie zur IP-Adressauswahl für den Backend-Dienst konfigurieren.

In der folgenden Tabelle wird beschrieben, welche Verbindungstypen von allen proxybasierten Load Balancern unterstützt werden:

Load-Balancer Verbindung von Clients zum Load Balancer Verbindung vom Load Balancer zu Backends
Globaler externer Application Load Balancer
Globaler externer Proxy-Network Load Balancer
Sowohl IPv4- als auch IPv6-Verbindungen können beendet werden. Eine der folgenden Möglichkeiten:
  • IPv4-Verbindung: wird mit reinen IPv4- oder Dual-Stack-Backends unterstützt
  • IPv6-Verbindung: wird nur mit Dual-Stack-Backends* unterstützt
Klassischer Application Load Balancer
Klassischer Proxy-Network Load Balancer
Sowohl IPv4- als auch IPv6-Verbindungen können beendet werden. Nur IPv4-Verbindung
Regionaler externer Application Load Balancer
Regionaler externer Proxy-Network Load Balancer
Regionaler interner Application Load Balancer
Regionaler interner Proxy-Network Load Balancer
Regionsübergreifender interner Application Load Balancer
Regionsübergreifender interner Proxy-Network Load Balancer
Sowohl IPv4- als auch IPv6-Verbindungen (Vorschau) können beendet werden. Eine der folgenden Möglichkeiten:
  • IPv4-Verbindung: wird mit reinen IPv4- oder Dual-Stack-Backends unterstützt
  • IPv6-Verbindung: wird nur mit Dual-Stack-Backends* unterstützt
* Nur Instanzgruppen und zonale NEGs (mit GCE_VM_IP_PORT Endpunkten) können als Dual-Stack konfiguriert werden.

Funktionsweise der IPv6-Beendigung

Die IPv6-Beendigung wird von Application Load Balancern und Proxy-Network Load Balancern unterstützt. Wenn Sie die IPv6-Beendigung für diese Load Balancer konfigurieren, werden die Backends in Ihren IPv6-Clients als IPv6-Anwendungen angezeigt, wie in der folgenden Abbildung dargestellt:

IPv6-Beendigung zum Load Balancing.
IPv6-Beendigung zum Load-Balancing (zum Vergrößern anklicken).

Wenn sich Nutzer über IPv6 mit dem Load-Balancer verbinden, ist der Ablauf so:

  1. Der Load-Balancer mit seiner IPv6-Adresse und Weiterleitungsregel wartet auf Nutzerverbindungen.
  2. Ein IPv6-Client verbindet sich über IPv6 mit dem Load Balancer.
  3. Der Load-Balancer fungiert als Reverseproxy und beendet die IPv6-Clientverbindung. Basierend auf der Richtlinie zur IP-Adressauswahl des Backend-Dienstes platziert er die Anfrage in einer IPv4- oder IPv6-Verbindung zu einem Backend.
  4. Aus der anderen Richtung erhält das Lastenausgleichsmodul die Antwort des Backends und leitet diese über die IPv6-Verbindung zurück an den ursprünglichen Client.

IPv6-Adresszuweisung für Weiterleitungsregeln des Load Balancers

Wenn Sie einen externen oder internen Load Balancer konfigurieren, stellen Sie eine oder mehrere Weiterleitungsregeln bereit, die jeweils eine IPv4- oder IPv6-Adresse haben (oder beides). Externe Load Balancer verwenden externe, öffentlich weitergeleitete IP-Adressen, während interne Load Balancer interne, private IP-Adressen verwenden, auf die nicht über das Internet zugegriffen werden kann. Sie können diese IP-Adresse in den DNS-Einträgen für Ihre Website verwenden.

Wenn Sie eine Weiterleitungsregel erstellen, können Sie entweder eine für Ihr Projekt reservierte statische IP-Adresse verwenden oder festlegen, dass die Weiterleitungsregel bei ihrer Erstellung automatisch eine sitzungsspezifische IP-Adresse erwirbt. Eine statische IP-Adresse ist für Ihr Projekt reserviert. Sie können sie behalten, bis Sie diese gezielt wieder freigeben. Eine sitzungsspezifische Adresse gehört zur Weiterleitungsregel, solange sie besteht. Wenn Sie die Weiterleitungsregel löschen, wird die sitzungsspezifische Adresse wieder in den Google Cloud Pool freigegeben.

Wenn Sie für den Load-Balancer sowohl eine IPv6- als auch eine IPv4-Adresse benötigen, können Sie zwei Weiterleitungsregeln erstellen. Eine davon wird mit einer IPv4-Adresse und die andere mit einer IPv6-Adresse verknüpft. Sie können dann beide Regeln mit demselben Load-Balancer verknüpfen.

IPv6-Adressformat

Wenn Sie eine Weiterleitungsregel erstellen, hängt das Verhalten bei der IPv6-Adresszuweisung vom Typ des Load Balancers ab:

  • Für globale externe Application Load Balancer und globale externe Proxy-Network Load Balancer, Google Cloud wird ein /64 IPv6-Adressbereich für IPv6 Weiterleitungsregeln zugewiesen. Das Google Cloud CLI listet IPv6-Adressen auf, bei denen die niedrigstwertigen 64 Bit auf 0 gesetzt sind, der Load Balancer akzeptiert aber Traffic aus dem gesamten Bereich. Bei globalen externen Application Load Balancern können in X-Forwarded-For-Headern andere IPv6-Adressen des Load Balancers aus dem zugewiesenen Bereich angezeigt werden, je nachdem, mit welcher IPv6-Server-IP-Adresse der Client verbunden ist.

  • Für interne Application Load Balancer und interne Proxy-Network Load Balancer wird mit dem --ip-version auf IPV6, Google Cloud ein zufälliger /96 Präfix-IPv6-Adressbereich für die Weiterleitungsregel erstellt. Diese Adresse der Weiterleitungsregel wird aus dem /64-Subnetz eines benutzerdefinierten Dual-Stack- oder reinen IPv6-Subnetzes zugewiesen, das mit --ipv6-access-type auf INTERNAL und --stack-type auf IPV4_IPV6 oder IPV6_ONLY konfiguriert sein muss.

  • Für regionale externe Application Load Balancer und regionale externe Proxy-Network Load Balancer wird mit dem --ip-version auf IPV6, Google Cloud ein zufälliger /96 Präfix-IPv6-Adressbereich für die Weiterleitungsregel erstellt. Diese Adresse der Weiterleitungsregel wird aus dem /64-Subnetz eines benutzerdefinierten Dual-Stack- oder reinen IPv6-Subnetzes zugewiesen, das mit ipv6-access-type auf EXTERNAL und stack-type auf IPV4_IPV6 oder IPV6_ONLY konfiguriert sein muss. Externe IPv6-Adressen können nur in der Premium-Netzwerkstufe reserviert werden. Das Flag --endpoint-type muss auf NETLB gesetzt sein, damit es für die Weiterleitungsregel verwendet werden kann.

Bei der Formatierung einer IPv6-Adresse Google Cloud werden die Empfehlungen in RFC 5952, Abschnitt 4 befolgt.

Client-IP-Header mit IPv6-Beendigung für Application Load Balancer

Wenn der Load Balancer die IPv6-Verbindung vom Client in eine IPv4-Verbindung zum Backend überführt, wird die ursprüngliche Quell-IP-Adresse durch die IP-Adresse des Load Balancers ersetzt. Allerdings benötigen die Backends häufig die ursprüngliche Quell-IP-Adresse für Logging, Entscheidungsfindung oder andere Zwecke. Google Cloud stellt einen HTTP-Header bereit, der an die Backends weitergegeben wird und die ursprüngliche IPv6-Client-IP-Adresse enthält.

HTTP-Header für IPv6 ähneln denen für IPv4. Das Format für Anfragen sieht so aus:

  • X-Forwarded-For: CLIENT_IP_ADDRESS, GLOBAL_FORWARDING_RULE_EXTERNAL_IP_ADDRESSES

Das letzte Element enthält die IP-Adresse des Load-Balancers Das vorletzte Element enthält die Client-IP-Adresse, wie sie vom Load-Balancer empfangen wird. Es können andere Elemente im X-Forwarded-For-Header vorhanden sein, wenn der Client oder die dazwischenliegenden Proxys weitere X-Forwarded-For-Header hinzufügen, bevor die Anfrage an den Load-Balancer gesendet wird.

Ein X-Forwarded-For-Header kann beispielsweise so aussehen:

X-Forwarded-For: 2001:db8:abcd:1::1234, 2607:f8b0:4005:801::200e

2001:db8:abcd:1::1234 ist die IPv6-Adresse des Clients. 2607:f8b0:4005:801::200e ist die IPv6-Adresse des externen Application Load Balancers.

Von reiner IPv4- zu Dual-Stack-Konfiguration konvertieren

Sie können Load-Balancer-Ressourcen, die nur IPv4 (Single-Stack) verwenden, in IPv4 und IPv6 (Dual-Stack) konvertieren. Wenn Sie Load-Balancer-Ressourcen aktualisieren, können Sie IPv6-Traffic automatisch an Ihre Backends weiterleiten.

Eine Anleitung zum Konvertieren Ihrer Load-Balancer-Ressourcen und Backends in Dual-Stack finden Sie in der folgenden Dokumentation:

Load-Balancer Dokumentation
Globaler externer Application Load Balancer
Regionsübergreifender interner Application Load Balancer
Regionaler externer Application Load Balancer
Regionaler interner Application Load Balancer
Application Load Balancer in IPv6 konvertieren
Globaler externer Proxy-Network Load Balancer
Regionsübergreifender interner Proxy-Network Load Balancer
Regionaler externer Proxy-Network Load Balancer
Regionaler interner Proxy-Network Load Balancer
Proxy-Network Load Balancer in IPv6 konvertieren

Preise

Informationen zu den Preisen für IP-Adressen finden Sie unter Netzwerkpreise: Virtual Private Cloud.

Weitere Informationen zu den Preisen für Load-Balancing finden Sie unter Netzwerkpreise: Cloud Load Balancing.

Beschränkungen

  • Klassische Proxy-Network Load Balancer und klassische Application Load Balancer unterstützen keine Dual-Stack-Backends. Der IPv6-Traffic wird vom Load Balancer beendet und dann über eine IPv4-Verbindung an die Backends weitergeleitet.
  • Wenn eine IPv6-Weiterleitungsregel erstellt wird, wird automatisch ein /96-IPv6-Adressbereich aus dem Subnetz zugewiesen. Allerdings ist nur die erste Adresse in diesem /96-Bereich (z. B. mit der Endung :0:0) für Clients erreichbar. Achten Sie darauf, dass Ihre Clients und DNS-Einträge so konfiguriert sind, dass diese bestimmte erste Adresse verwendet wird. Dies gilt für regionale externe Application Load Balancer, regionale interne Application Load Balancer, regionale interne Proxy-Network Load Balancer, regionenübergreifende interne Proxy-Network Load Balancer, regionenübergreifende interne Application Load Balancer, und regionale externe Proxy-Network Load Balancer (Vorschau).

  • Nur VM-Instanzgruppen-Backends und zonale Netzwerk-Endpunktgruppen (NEGs) mit GCE_VM_IP_PORT-Endpunkten unterstützen Dual-Stack-Backends (IPv4 und IPv6).

Nächste Schritte