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 Load Balancer-Typ können Sie IPv6 für eine oder beide dieser Verbindungen aktivieren.
Die Aktivierung von IPv6 für Ihren Load Balancer bietet folgende Vorteile:
- Eine einzelne Anycast-IPv6-Adresse für multiregionale Bereitstellungen verwenden Für Anwendungsinstanzen, die in mehreren Regionen 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 Back-End mit verfügbarer Kapazität geleitet.
Dual-Stack-Bereitstellungen ausführen Damit sowohl IPv6- als auch IPv4-Clients bedient werden, müssen Sie zwei IP-Adressen für den Load Balancer erstellen – eine für IPv6 und eine für IPv4. IPv4-Clients stellen eine Verbindung zur IPv4-Adresse her, IPv6-Clients eine Verbindung zur IPv6-Adresse. 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-Client-Traffic Die Protokollunterstützung hängt vom Typ des verwendeten Load Balancers und vom Protokoll der Weiterleitungsregel ab.
- Überlauf über Regionen hinweg mit einer einzigen IPv6-Load-Balancer-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. Für die nachfolgende Verbindung vom Load Balancer zum Backend wird standardmäßig IPv4 verwendet. Sie können jedoch bestimmte Load Balancer für die Verwendung von IPv6 aktivieren, indem Sie die Option Richtlinie zur IP-Adressauswahl im 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 Back-Ends |
|---|---|---|
| Globaler externer Application Load Balancer Globaler externer Proxy-Network Load Balancer |
Sowohl IPv4- als auch IPv6-Verbindungen können beendet werden. | Eine der folgenden:
|
| 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 Regionenübergreifender interner Application Load Balancer Regionenübergreifender interner Proxy-Network Load Balancer |
Sowohl IPv4- als auch IPv6-Verbindungen können beendet werden. | Eine der folgenden:
|
GCE_VM_IP_PORT-Endpunkten) können für Dual-Stack konfiguriert werden.
So funktioniert die 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:
Wenn sich Nutzer über IPv6 mit dem Load-Balancer verbinden, ist der Ablauf so:
- Der Load-Balancer mit seiner IPv6-Adresse und Weiterleitungsregel wartet auf Nutzerverbindungen.
- Ein IPv6-Client verbindet sich über IPv6 mit dem Load Balancer.
- Der Load Balancer fungiert als Reverse-Proxy und beendet die IPv6-Clientverbindung. Basierend auf der Richtlinie zur IP-Adressauswahl des Backend-Dienstes wird die Anfrage in eine IPv4- oder IPv6-Verbindung zu einem Backend eingefügt.
- 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 ihm eine oder mehrere Weiterleitungsregeln bereit, die jeweils eine IPv4- oder IPv6-Adresse (oder beides) enthalten. Externe Load Balancer verwenden externe, öffentlich geroutete IP-Adressen, während interne Load Balancer interne, private IP-Adressen verwenden, die nicht über das Internet zugänglich sind. Sie können diese IP-Adresse in den DNS-Eintragen 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 Pool von Google Cloud 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, ist das Verhalten bei der IPv6-Adresszuweisung je nach Typ des Load Balancers so:
Für globale externe Application Load Balancer und globale externe Proxy-Network Load Balancer weistGoogle Cloud IPv6-Weiterleitungsregeln einen
/64-IPv6-Adressbereich zu. Die 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 inX-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 weist Google Cloudeinen IPv6-Adressbereich mit dem Präfix
/96für die Weiterleitungsregel aus dem/64-Bereich eines Dual-Stack- oder Nur-IPv6-Subnetzes im benutzerdefinierten Modus zu. Das Subnetz muss mit einem--ipv6-access-typevonINTERNALund einem--stack-typevonIPV4_IPV6oderIPV6_ONLYkonfiguriert sein. Die Weiterleitungsregel kann einen automatisch zugewiesenen sitzungsspezifischen/96-Bereich, einen benutzerdefinierten sitzungsspezifischen/96-Bereich oder eine reservierte statische interne IPv6-Adresse verwenden. Der Load Balancer akzeptiert Traffic im gesamten/96-Bereich.Für regionale externe Application Load Balancer und regionale externe Proxy-Network Load Balancer weistGoogle Cloud einen IPv6-Adressbereich mit dem Präfix
/96für die Weiterleitungsregel aus dem/64-Bereich eines Dual-Stack- oder Nur-IPv6-Subnetzes im benutzerdefinierten Modus zu. Das Subnetz muss mit einem--ipv6-access-typevonEXTERNALund einem--stack-typevonIPV4_IPV6oderIPV6_ONLYkonfiguriert sein. Die Weiterleitungsregel kann einen automatisch zugewiesenen sitzungsspezifischen/96-Bereich, einen benutzerdefinierten sitzungsspezifischen/96-Bereich oder eine reservierte statische externe IPv6-Adresse verwenden. Wenn Sie eine statische regionale externe IPv6-Adresse für die Weiterleitungsregel reservieren, legen Sie--endpoint-type=NETLBaufgcloud compute addresses createfest. Der Load Balancer akzeptiert Traffic im gesamten/96-Bereich.
Google Cloud folgt bei der Formatierung von IPv6-Adressen den Empfehlungen unter RFC 5952, Abschnitt 4.
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. Backends müssen jedoch häufig die ursprüngliche Quell-IP-Adresse für das Logging, für die Entscheidungsfindung oder für andere Zwecke kennen.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 IPv4-only zu Dual-Stack konvertieren
Sie können Load Balancer-Ressourcen, die nur IPv4 (Single-Stack) verwenden, in IPv4 und IPv6 (Dual-Stack) konvertieren. Durch das Aktualisieren von Load-Balancer-Ressourcen 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 Regionenü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 Regionenü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.
Preisdetails zum Load Balancing finden Sie unter Netzwerkpreise: Cloud Load Balancing.
Beschränkungen
- Klassische Proxy-Network Load Balancer und klassische Application Load Balancer unterstützen Dual-Stack-Backends nicht. Der IPv6-Traffic wird vom Load Balancer beendet und dann über eine IPv4-Verbindung an die Backends weitergeleitet.
- Nur VM-Instanzgruppen-Backends und zonale Netzwerk-Endpunktgruppen (NEG) mit
GCE_VM_IP_PORT-Endpunkten unterstützen Dual-Stack-Backends (IPv4 und IPv6).