In diesem Dokument erfahren Sie, wie Sie einen internen Passthrough-Network Load Balancer konfigurieren und testen, der nur internen IPv6-Traffic unterstützt. In dieser Beispielkonfiguration installieren Sie einen Apache-Webserver auf den internen reinen IPv6-Backend-VM-Instanzen, um Inhalte als Reaktion auf Traffic bereitzustellen, der über die virtuelle IP-Adresse (VIP) des Load Balancers empfangen wird.
Wie im folgenden Architekturdiagramm dargestellt, sind die Backend-VMs des Load Balancers mit internen IPv6-Adressen konfiguriert. Für diese Beispielkonfiguration müssen diese Back-End-VMs Apache herunterladen, um einen Webserver zu installieren. Dazu ist Zugriff auf das öffentliche Internet erforderlich. Da diese Back-End-VMs jedoch keine externen IP-Adressen haben, können sie nicht direkt auf das Internet zugreifen.
Für den Internetzugriff wird in diesem Beispiel eine separate VM-Instanz verwendet, die mit einer externen IPv6-Adresse konfiguriert ist und als NAT-Gateway dient. Auf dieser VM wird die Adressübersetzung auf Linux-Kernel-Ebene durchgeführt. Insbesondere wird die Kette POSTROUTING
in der NAT-Tabelle verwendet, um die Quelladresse ausgehender Pakete zu maskieren. Dabei wird die interne IPv6-Adresse jeder Backend-VM durch die externe IPv6-Adresse der NAT-Gateway-VM auf der angegebenen Netzwerkschnittstelle ersetzt.
Im Folgenden wird die Konfiguration der verschiedenen Komponenten beschrieben, die zum Einrichten eines internen Passthrough-Network Load Balancers mit reinen internen IPv6-Backends verwendet werden.
Berechtigungen
Damit Sie dieser Anleitung folgen können, müssen Sie Instanzen erstellen und ein Netzwerk in einem Projekt ändern. Sie müssen entweder Inhaber oder Bearbeiter des Projekts sein oder alle folgenden IAM-Rollen in Compute Engine haben:
Aufgabe | Erforderliche Rolle |
---|---|
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen | Compute-Netzwerkadministrator ( roles/compute.networkAdmin )
|
Firewallregeln setzen und löschen | Compute-Sicherheitsadministrator ( roles/compute.securityAdmin )
|
Instanzen erstellen | Compute-Instanzadministrator ( roles/compute.instanceAdmin )
|
Weitere Informationen finden Sie in folgenden Leitfäden:
Netzwerk und reines IPv6-Subnetz mit internen IPv6-Adressen konfigurieren
Der auf dieser Seite beschriebene interne Passthrough-Network Load Balancer wird in einem VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network-ipv6-only
erstellt.
Aktivieren Sie einen internen IPv6-Bereich des VPC-Netzwerks, wenn Sie Subnetze mit internen IPv6-Bereichen konfigurieren möchten. Interne IPv6-Subnetzbereiche werden aus diesem Bereich zugewiesen.
Console
Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
lb-network-ipv6-only
ein.Führen Sie die folgenden Schritte aus, um interne IPv6-Adressbereiche in Subnetzen in diesem Netzwerk zu konfigurieren:
- Wählen Sie unter Einstellungen für private IPv6-Adressen die Option Internen ULA-IPv6-Bereich für dieses VPC-Netzwerk konfigurieren aus.
- Wählen Sie unter Internen IPv6-Bereich zuweisen die Option Automatisch oder Manuell aus.
Geben Sie einen
/48
-Bereich aus dem Bereichfd20::/20
ein, wenn Sie Manuell auswählen. Wenn der Bereich bereits verwendet wird, werden Sie aufgefordert, einen anderen Bereich anzugeben.
Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.
Legen Sie im Abschnitt Neues Subnetz folgende Konfigurationsparameter für das Subnetz fest:
- Name:
lb-subnet-ipv6-only
- Region:
us-west1
- IP-Stack-Typ: IPv6 (Einzel-Stack)
- IPv6-Zugriffstyp: Intern
- Name:
Klicken Sie auf Fertig.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den
gcloud compute networks create
-Befehl aus, um ein neues VPC-Netzwerk im benutzerdefinierten Modus zu erstellen.Verwenden Sie das Flag
--enable-ula-internal-ipv6
, um interne IPv6-Bereiche in allen Subnetzen dieses Netzwerks zu konfigurieren.gcloud compute networks create lb-network-ipv6-only \ --subnet-mode=custom \ --enable-ula-internal-ipv6 \ --bgp-routing-mode=regional
Konfigurieren Sie ein Subnetz, in dem
ipv6-access-type
aufINTERNAL
gesetzt ist. Dies bedeutet, dass die VMs in diesem Subnetz nur interne IPv6-Adressen haben können. In diesem Beispiel hat das Subnetz den Namenlb-subnet-ipv6-only-internal
.Führen Sie den
gcloud compute networks subnets create
-Befehl aus, um das Subnetz zu erstellen.gcloud compute networks subnets create lb-subnet-ipv6-only-internal \ --network=lb-network-ipv6-only \ --region=us-west1 \ --stack-type=IPV6_ONLY \ --ipv6-access-type=INTERNAL
Nur-IPv6-Subnetz mit externen IPv6-Adressen konfigurieren
Ein reines IPv6-Subnetz mit externen IPv6-Adressen wird verwendet, um eine VM-Instanz zu erstellen, die als NAT-Gateway dient.
Console
Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf.
Klicken Sie auf den Namen des VPC-Netzwerk, das Sie erstellt haben, um die Seite VPC-Netzwerkdetails aufzurufen.
Klicken Sie auf dem Tab Subnetze auf
Subnetz hinzufügen. Geben Sie im angezeigten Bereich die folgenden Konfigurationsparameter für das Subnetz an:- Name:
lb-subnet-ipv6-only-external
- Region:
us-west1
- IP-Stack-Typ: IPv6 (Einzel-Stack)
- IPv6-Zugriffstyp: Extern
- Name:
Klicken Sie auf Hinzufügen.
gcloud
Konfigurieren Sie ein Subnetz, in dem ipv6-access-type
auf EXTERNAL
gesetzt ist.
Dies bedeutet, dass die VMs in diesem Subnetz externe IPv6-Adressen haben können. In diesem Beispiel heißt das Subnetz lb-subnet-ipv6-only-external
.
Führen Sie den gcloud compute networks subnets create
-Befehl aus, um das Subnetz zu erstellen.
gcloud compute networks subnets create lb-subnet-ipv6-only-external \ --network=lb-network-ipv6-only \ --region=us-west1 \ --stack-type=IPV6_ONLY \ --ipv6-access-type=EXTERNAL
Firewallregeln im VPC-Netzwerk konfigurieren
In diesem Beispiel werden die folgenden Firewallregeln verwendet:
fw-allow-lb-access-ipv6-only
: Eine Regel für eingehenden Traffic, die für alle Ziele im VPC-Netzwerk gilt und Traffic von allen IPv6-Quellen zulässt.fw-allow-ssh
: Eine Regel für eingehenden Traffic, die eingehende SSH-Verbindungen über TCP-Port22
von jeder Adresse aus ermöglicht. Sie können einen restriktiveren IP-Quellbereich für diese Regel auswählen. Geben Sie dazu beispielsweise nur die IP-Bereiche des Systems an, von dem aus Sie SSH-Sitzungen initiieren. In diesem Beispiel wird das Ziel-Tagallow-ssh
verwendet, um die VMs zu identifizieren, auf die es angewendet werden muss.fw-allow-health-check-ipv6-only
: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und Traffic von den Google Cloud -Systemdiagnosesystemen (2600:2d00:1:b029::/64
) zulässt. In diesem Beispiel wird das Ziel-Tagallow-health-check-ipv6
verwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden muss.
Ohne diese Firewallregeln blockiert die Standardregel zum Ablehnen von eingehendem Traffic den eingehenden Traffic zu den Back-End-Instanzen.
Console
Rufen Sie in der Google Cloud Console die Seite Firewall-Richtlinien auf.
Klicken Sie noch einmal auf Firewallregel erstellen und geben Sie die folgenden Informationen ein, um IPv6-Subnetz-Traffic zuzulassen:
- Name:
fw-allow-lb-access-ipv6-only
- Netzwerk:
lb-network-ipv6-only
- Priorität:
1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: All instances in the network.
- Quellfilter: IPv6-Bereiche
- Quell-IPv6-Bereiche:
::/0
- Protokolle und Ports: Alle zulassen
- Name:
Klicken Sie auf Erstellen.
Klicken Sie noch einmal auf Firewallregel erstellen und geben Sie die folgenden Informationen ein, um eingehende SSH-Verbindungen zuzulassen:
- Name:
fw-allow-ssh
- Netzwerk:
lb-network-ipv6-only
- Priorität:
1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Ziel-Tags
- Zieltags:
allow-ssh
- Quellfilter: IPv6-Bereiche
- Quell-IPv6-Bereiche:
::/0
- Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus, klicken Sie das Kästchen TCP an und geben Sie
22
in Ports ein:
- Name:
Klicken Sie auf Erstellen.
Klicken Sie noch einmal auf Firewallregel erstellen und geben Sie die folgenden Informationen ein, um Google Cloud IPv6-Systemdiagnosen zuzulassen:
- Name:
fw-allow-health-check-ipv6-only
- Netzwerk:
lb-network-ipv6-only
- Priorität:
1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Ziel-Tags
- Zieltags:
allow-health-check-ipv6
- Quellfilter: IPv6-Bereiche
- Quell-IPv6-Bereiche:
2600:2d00:1:b029::/64
- Protokolle und Ports: Alle zulassen
- Name:
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Firewallregel
fw-allow-lb-access-ipv6-only
, um eingehenden IPv6-Traffic zu allen VM-Instanzen im VPC-Netzwerk zuzulassen:gcloud compute firewall-rules create fw-allow-lb-access-ipv6-only \ --network=lb-network-ipv6-only \ --action=allow \ --direction=ingress \ --source-ranges=::/0 \ --rules=all
Erstellen Sie die Firewallregel
fw-allow-ssh
, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tagallow-ssh
zu ermöglichen. Wenn Siesource-ranges
weglassen,Google Cloud bezieht die Regel auf jede Quelle.gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network-ipv6-only \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --source-ranges=::/0 \ --rules=tcp:22
Erstellen Sie die Regel
fw-allow-health-check-ipv6
, umGoogle Cloud IPv6-Systemdiagnosen zuzulassen.gcloud compute firewall-rules create fw-allow-health-check-ipv6-only \ --network=lb-network-ipv6-only \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp
VM-Instanz erstellen, die als NAT-Gateway dient
In diesem Beispiel wird ein Bash-Script verwendet, um ein NAT-Gateway zu erstellen, mit dem IPv6-Pakete auf Linux-Kernel-Ebene geändert werden.
Das Bash-Script ändert die Quelladresse aller ausgehenden IPv6-Pakete in der Kette POSTROUTING
und ersetzt sie durch die externe IPv6-Adresse der VM-Schnittstelle.
Das Bash-Script ändert die Kette POSTROUTING
in iptables
, um die Quell-IPv6-Adresse aller ausgehenden Pakete zu maskieren. Dabei wird sie durch die externe IPv6-Adresse der Netzwerkschnittstelle der VM ersetzt.
Außerdem müssen Sie für diese Instanz die IP-Weiterleitung aktivieren.
So erstellen Sie eine VM-Instanz, die als NAT-Gateway dient:
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Klicken Sie auf Instanz erstellen.
Geben Sie für Name
nat-gateway-instance
ein.Wählen Sie als Region
us-west1
und als Zoneus-west1-a
aus.Achten Sie darauf, dass im Abschnitt Bootlaufwerk Debian GNU/Linux 12 (bookworm) als Bootlaufwerk-Optionen ausgewählt ist. Klicken Sie bei Bedarf auf Ändern, um das Image zu ändern.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags den Wert
allow-ssh
ein. - Klicken Sie für die IP-Weiterleitung das Kästchen Aktivieren an.
- Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk:
lb-network-ipv6-only
- Subnetz:
lb-subnet-ipv6-only-external
- IP-Stack-Typ: IPv6 (Einzel-Stack)
- Externe IPv6-Adresse: Automatisch zuweisen
- Netzwerk:
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Erweitert und geben Sie im Feld Startskript das folgende Skript ein:
#!/bin/bash set -e echo "Starting GCE startup script..." # --- IPv6 NAT table configuration --- echo "Modifying the source IPv6 address using the NAT table" # Enable IPv6 forwarding sysctl -w net.ipv6.conf.all.forwarding=1 # Determine the primary network interface (assuming it's the last one listed) IFACE=$(ip -brief link | tail -1 | awk '{print $1}') echo "Using interface: $IFACE for IPv6 NAT" # Flush existing IPv6 NAT rules ip6tables -F -t nat ip6tables -X -t nat # Masquerade all outgoing IPv6 traffic on the determined interface ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE echo "IPv6 masquerading configured successfully." echo "GCE startup script finished."
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie ein Startskript.
nano startup.sh
Fügen Sie das folgende Skript hinzu und speichern Sie die Datei.
#!/bin/bash set -e echo "Starting GCE startup script..." # --- IPv6 NAT table configuration --- echo "Modifying the source IPv6 address using the NAT table" # Enable IPv6 forwarding sysctl -w net.ipv6.conf.all.forwarding=1 # Determine the primary network interface (assuming it's the last one listed) IFACE=$(ip -brief link | tail -1 | awk '{print $1}') echo "Using interface: $IFACE for IPv6 NAT" # Flush existing IPv6 NAT rules ip6tables -F -t nat ip6tables -X -t nat # Masquerade all outgoing IPv6 traffic on the determined interface ip6tables -t nat -A POSTROUTING -o "$IFACE" -j MASQUERADE echo "IPv6 masquerading configured successfully." echo "GCE startup script finished."
Erstellen Sie eine VM-Instanz und fügen Sie die Metadatendatei der VM-Instanz hinzu. Wenn Sie diese VM als nächsten Hop für eine Route verwenden möchten, verwenden Sie das Flag
--can-ip-forward
, um die IP-Weiterleitung für diese Instanz zu aktivieren.gcloud compute instances create nat-gateway-instance \ --zone=us-west1-a \ --tags=allow-ssh \ --image-family=debian-12 \ --image-project=debian-cloud \ --subnet=lb-subnet-ipv6-only-external \ --stack-type=IPV6_ONLY \ --can-ip-forward \ --metadata-from-file=startup-script=startup.sh
Neue statische Route im VPC-Netzwerk erstellen
In diesem Beispiel wird eine benutzerdefinierte Route erstellt, die den gesamten IPv6-Traffic zum Internet (::/0
) von VMs mit dem Tag nat-gw-tag
zur VM-Instanz nat-gateway-instance
leitet, die als NAT-Gateway dient.
So erstellen Sie eine Route:
Console
Rufen Sie in der Google Cloud Console die Seite „Routen“ auf.
Klicken Sie auf den Tab Routenverwaltung.
Klicken Sie auf Route erstellen.
Geben Sie einen Namen und eine Beschreibung für die Route an.
Wählen Sie in der Liste Netzwerk das VPC-Netzwerk
lb-network-ipv6-only
aus.Wählen Sie in der Liste IP-Version die Option IPv6 aus.
Geben Sie einen Ziel-IPv6-Bereich an. Das breitestmögliche Ziel ist
::/0
für IPv6.Damit die Route nur auf ausgewählte Instanzen mit übereinstimmenden Netzwerktags angewendet werden kann, geben Sie diese Tags im Feld Instanztags an. Lassen Sie das Feld leer, damit die Route für alle Instanzen im Netzwerk gilt. Geben Sie für dieses Beispiel
nat-gw-tag
ein.Wählen Sie für den nächsten Hop die Option Instanz angeben aus.
Wählen Sie den Namen der Instanz aus, die Sie als NAT-Gateway erstellt haben. Wählen Sie für dieses Beispiel
nat-gateway-instance
aus.Klicken Sie auf Erstellen.
gcloud
Verwenden Sie den gcloud compute routes create
-Befehl, um eine neue Route zu erstellen.
Das Paket wird an die VM-Instanz nat-gateway-instance
weitergeleitet, wie in --next-hop-instance
der Route angegeben.
gcloud compute routes create route-1 \ --network=lb-network-ipv6-only \ --priority=1000 \ --tags=nat-gw-tag \ --destination-range=::/0 \ --next-hop-instance=nat-gateway-instance \ --next-hop-instance-zone=us-west1-a
Backend-VMs und Instanzgruppen erstellen
In diesem Beispiel werden zwei nicht verwaltete Instanzgruppen mit jeweils zwei Backend-VMs verwendet. Die beiden Instanzgruppen befinden sich dabei in den separaten Zonen us-west1-a
und us-west1-c
, um den regionalen Charakter von internen Passthrough-Netzwerk-Load-Balancern zu veranschaulichen.
- Die Instanzgruppe
ig-a
enthält diese beiden VMs:vm-a1
vm-a2
- Die Instanzgruppe
ig-c
enthält diese beiden VMs:vm-c1
vm-c2
Auf den Traffic zu allen vier Back-End-VMs wird Load-Balancing angewendet.
In diesem Beispiel wird die statische Route, die in einem früheren Schritt erstellt wurde, mithilfe des Netzwerktags nat-gw-tag
auf bestimmte VM-Instanzen beschränkt.
Console
Backend-VMs erstellen
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Wiederholen Sie diese Schritte für jede VM mit den folgenden Kombinationen aus Name und Zone.
- Name:
vm-a1
, Zone:us-west1-a
- Name:
vm-a2
, Zone:us-west1-a
- Name:
vm-c1
, Zone:us-west1-c
- Name:
vm-c2
, Zone:us-west1-c
- Name:
Klicken Sie auf Instanz erstellen.
Legen Sie den Namen wie in Schritt 2 angegeben fest.
Wählen Sie für Region die Option
us-west1
und dann eine Zone aus, wie in Schritt 2 angegeben.Achten Sie darauf, dass im Abschnitt Bootlaufwerk Debian GNU/Linux 12 (bookworm) als Bootlaufwerk-Optionen ausgewählt ist. Klicken Sie bei Bedarf auf Ändern, um das Image zu ändern.
Klicken Sie auf Erweiterte Optionen.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie für Netzwerk-Tags
allow-ssh
,allow-health-check-ipv6
undnat-gw-tag
ein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk:
lb-network-ipv6-only
- Subnetz:
lb-subnet-ipv6-only-internal
- IP-Stack-Typ: IPv6 (Einzel-Stack)
- Primäre interne IPv6-Adresse: sitzungsspezifisch (automatisch)
- Netzwerk:
- Geben Sie für Netzwerk-Tags
Klicken Sie auf Erweitert und geben Sie im Feld Startskript das folgende Skript ein. Der Skriptinhalt ist für alle vier VMs identisch.
#! /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
Klicken Sie auf Erstellen.
Instanzgruppen erstellen
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wiederholen Sie die folgenden Schritte, um mit diesen Kombinationen zwei nicht verwaltete Instanzgruppen mit jeweils zwei VMs zu erstellen.
- Instanzgruppenname:
ig-a
, Zone:us-west1-a
, VMs:vm-a1
undvm-a2
- Instanzgruppenname:
ig-c
, Zone:us-west1-c
, VMs:vm-c1
undvm-c2
- Instanzgruppenname:
Klicken Sie auf Instanzgruppe erstellen.
Klicken Sie auf Neue nicht verwaltete Instanzgruppe.
Legen Sie Name wie in Schritt 2 angegeben fest.
Wählen Sie im Bereich Standort als Region
us-west1
aus und legen Sie dann wie in Schritt 2 angegeben eine Zone fest.Wählen Sie für Netzwerk die Option
lb-network-ipv6-only
aus.Wählen Sie für Subnetzwerk die Option
lb-subnet-ipv6-only-internal
aus.Fügen Sie im Bereich VM-Instanzen die in Schritt 2 angegebenen VMs hinzu.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den
gcloud compute instances create
-Befehl viermal aus, um die vier VMs zu erstellen. Verwenden Sie dazu die folgenden vier Kombinationen für[VM-NAME]
und[ZONE]
.VM-NAME
:vm-a1
,ZONE
:us-west1-a
VM-NAME
:vm-a2
,ZONE
:us-west1-a
VM-NAME
:vm-c1
,ZONE
:us-west1-c
VM-NAME
:vm-c2
,ZONE
:us-west1-c
gcloud compute instances create VM-NAME \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check-ipv6,nat-gw-tag \ --subnet=lb-subnet-ipv6-only-internal \ --stack-type=IPV6_ONLY \ --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'
Erstellen Sie die zwei nicht verwalteten Instanzgruppen in jeder Zone:
gcloud compute instance-groups unmanaged create ig-a \ --zone=us-west1-a gcloud compute instance-groups unmanaged create ig-c \ --zone=us-west1-c
Fügen Sie den entsprechenden Instanzgruppen die VMs hinzu:
gcloud compute instance-groups unmanaged add-instances ig-a \ --zone=us-west1-a \ --instances=vm-a1,vm-a2 gcloud compute instance-groups unmanaged add-instances ig-c \ --zone=us-west1-c \ --instances=vm-c1,vm-c2
Load-Balancer-Komponenten konfigurieren
In den folgenden Schritten werden die verschiedenen Komponenten eines internen Passthrough-Network Load Balancers konfiguriert, beginnend mit der Systemdiagnose und dem Backend-Dienst und dann dem Frontend.
Console
Konfiguration starten
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
- Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
Geben Sie auf der Seite Internen Passthrough-Network Load Balancer erstellen die folgenden Informationen ein:
- Name des Load-Balancers:
ilb-ipv6-only
- Region:
us-west1
- Netz:
lb-network-ipv6-only
Backend-Konfiguration
- Klicken Sie auf Backend-Konfiguration.
- Wählen Sie im Bereich Neues Backend von Backends den IP-Stack-Typ als IPv6 (Single-Stack) aus.
- Wählen Sie unter Instanzgruppe die Instanzgruppe
ig-a
aus und klicken Sie auf Fertig. - Klicken Sie auf Backend hinzufügen und wiederholen Sie diesen Schritt, um
ig-c
hinzuzufügen. - Wählen Sie aus der Liste Systemdiagnose die Option Systemdiagnose erstellen aus, geben Sie die folgenden Informationen ein und klicken Sie auf Speichern:
- Name:
hc-http-80
. - Umfang: Regional.
- Protokoll:
HTTP
. - Port:
80
. - Proxyprotokoll:
NONE
. - Anfragepfad:
/
.
- Name:
- Prüfen Sie, ob neben der Backend-Konfiguration ein blaues Häkchen angezeigt wird.
Frontend-Konfiguration
- Klicken Sie auf Frontend-Konfiguration. Führen Sie im Abschnitt Neue Frontend-IP-Adresse und neuer Frontend-Port folgende Schritte aus:
- Geben Sie für Name
fr-ilb-ipv6-only
ein. - So verarbeiten Sie IPv6-Traffic:
- Setzen Sie die IP-Version auf IPv6. Der IPv6-TCP-Server, den Sie im nächsten Abschnitt erstellen, wird an die VIP der Weiterleitungsregel gebunden.
- Wählen Sie für Subnetzwerk die Option
lb-subnet-ipv6-only-internal
aus. Der IPv6-Adressbereich in der Weiterleitungsregel ist immer sitzungsspezifisch. - Wählen Sie für Ports die Option Mehrere aus und geben Sie im Feld Portnummer den Wert
80
ein. - Klicken Sie auf Fertig.
- Überprüfen Sie, bevor Sie fortfahren, ob sich neben der Frontend-Konfiguration ein blaues Häkchen befindet.
- Geben Sie für Name
Konfiguration prüfen
- Klicken Sie auf Prüfen und abschließen. Prüfen Sie alle Ihre Einstellungen.
- Klicken Sie, wenn die Einstellungen korrekt sind, auf Erstellen. Es dauert einige Minuten, bis der interne Passthrough-Netzwerk-Load-Balancer erstellt ist.
gcloud
Erstellen Sie eine neue regionale HTTP-Systemdiagnose, um die HTTP-Verbindung zu den VMs auf Port 80 zu testen.
gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
Erstellen Sie den Back-End-Dienst:
gcloud compute backend-services create ilb-ipv6-only \ --load-balancing-scheme=INTERNAL \ --protocol=tcp \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
Fügen Sie dem Backend-Dienst die beiden Instanzgruppen hinzu:
gcloud compute backend-services add-backend ilb-ipv6-only \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
gcloud compute backend-services add-backend ilb-ipv6-only \ --region=us-west1 \ --instance-group=ig-c \ --instance-group-zone=us-west1-c
Erstellen Sie die IPv6-Weiterleitungsregel mit einer sitzungsspezifischen IPv6-Adresse.
gcloud compute forwarding-rules create fr-ilb-ipv6-only \ --region=us-west1 \ --load-balancing-scheme=INTERNAL \ --subnet=lb-subnet-ipv6-only-internal \ --ip-protocol=TCP \ --ports=80 \ --backend-service=ilb-ipv6-only \ --backend-service-region=us-west1 \ --ip-version=IPV6
Load-Balancer testen
Erstellen Sie zum Testen des Load-Balancers eine Client-VM in derselben Region wie der Load-Balancer und senden Sie dann Traffic vom Client an den Load-Balancer.
Client-VM erstellen
In diesem Beispiel wird eine Client-VM (vm-client
) erstellt, die sich in derselben Region wie die Backend-VMs (Server) befindet.
Console
Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf:
Klicken Sie auf Instanz erstellen.
Geben Sie für Name
vm-client
ein.Wählen Sie für Region die Option
us-west1
aus.Wählen Sie für Zone die Option
us-west1-a
aus.Klicken Sie auf Erweiterte Optionen.
Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
- Geben Sie bei Netzwerk-Tags den Wert
allow-ssh
ein. - Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netz:
lb-network-ipv6-only
- Subnetz:
lb-subnet-ipv6-only-internal
- IP-Stack-Typ: IPv6 (Einzel-Stack)
- Netz:
- Klicken Sie auf Fertig.
- Geben Sie bei Netzwerk-Tags den Wert
Klicken Sie auf Erstellen.
gcloud
Die Client-VM kann sich in einer beliebigen Zone in derselben Region wie der Load-Balancer befinden. In diesem Beispiel befindet sich der Client in der Zone us-west1-a
und verwendet dasselbe Subnetz wie die Backend-VMs.
gcloud compute instances create vm-client \ --zone=us-west1-a \ --image-family=debian-12 \ --image-project=debian-cloud \ --stack-type=IPV6_ONLY \ --tags=allow-ssh \ --subnet=lb-subnet-ipv6-only-internal
Verbindung testen
Dieser Test nimmt von einer separaten Client-VM Verbindung mit dem Load-Balancer auf, also nicht von einer Backend-VM des Load-Balancers. Dabei wird folgendes Verhalten erwartet: Der Traffic wird auf die vier Backend-VMs verteilt.
Stellen Sie mit SSH eine Verbindung zur Client-VM-Instanz her.
gcloud compute ssh vm-client --zone=us-west1-a
Beschreiben Sie die IPv6-Weiterleitungsregel
fr-ilb-ipv6-only
. Beachten SieIPV6_ADDRESS
in der Beschreibung.gcloud compute forwarding-rules describe fr-ilb-ipv6-only \ --region=us-west1
Führen Sie von Clients mit IPv6-Verbindung den folgenden Befehl aus:
curl http://IPV6_ADDRESS:80
Wenn die zugewiesene IPv6-Adresse beispielsweise
[fd20:307:120c:2000:0:1:0:0/96]:80
lautet, sollte der Befehl so aussehen:curl http://[fd20:307:120c:2000:0:1:0:0]:80
Die Antwort kann so aussehen:
Page returned from: vm-a2