Auf dieser Seite finden Sie eine Anleitung zum Erstellen interner Netzwerk-Load-Balancer für das Load-Balancing von Traffic für mehrere Protokolle.
Um einen Load-Balancer für mehrere Protokolle zu konfigurieren, einschließlich TCP und UDP, erstellen Sie eine Weiterleitungsregel mit dem auf L3_DEFAULT gesetzten Protokoll. Diese Weiterleitungsregel verweist auf einen Backend-Dienst, für den das Protokoll auf UNSPECIFIED gesetzt ist.
In diesem Beispiel verwenden wir einen internen Passthrough-Netzwerk-Load-Balancer, um den Traffic auf eine Backend-VM in der Region us-west1 zu verteilen. Der Load-Balancer hat eine Weiterleitungsregel mit dem Protokoll L3_DEFAULT, um TCP, UDP, ICMP, ICMPv6, SCTP, ESP, AH und GRE zu verarbeiten.
Hinweise
- Installieren Sie die Google Cloud CLI. Eine vollständige Übersicht über das Tool finden Sie im Leitfaden zur gcloud CLI. Befehle für das Load-Balancing finden Sie in den Referenzen zur API und zur gcloud CLI.
Wenn Sie die gcloud CLI noch nicht ausgeführt haben, führen Sie zuerst den Befehl gcloud initzur Authentifizierung aus.
- Mehr über Bash erfahren
Berechtigungen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Anleitung benötigen:
- 
             So erstellen Sie Load-Balancer-Ressourcen:
              
  
  
    
      Administrator für Compute-Load-Balancer  (roles/compute.loadBalancerAdmin)
- 
             So erstellen Sie Compute Engine-Instanzen und Instanzgruppen:
              
  
  
    
      Compute-Instanzadministrator  (roles/compute.instanceAdmin.v1)
- 
             So erstellen Sie Netzwerkkomponenten:
              
  
  
    
      Compute-Netzwerkadministrator    (roles/compute.networkAdmin)
Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.
Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.
Load-Balancer für L3_DEFAULT-Traffic einrichten
Die Schritte in diesem Abschnitt beschreiben die folgenden Konfigurationen:
- Ein Beispiel, das ein VPC-Netzwerk im benutzerdefinierten Modus namens lb-networkverwendet. Sie können ein Netzwerk im automatischen Modus verwenden, wenn Sie nur IPv4-Traffic verarbeiten möchten. Für IPv6-Traffic ist jedoch ein Subnetz im benutzerdefinierten Modus erforderlich.
- Ein Single-Stack-Subnetz (stack-typeist aufIPv4gesetzt), das für IPv4-Traffic erforderlich ist. Beim Erstellen eines Single-Stack-Subnetzes in einem VPC-Netzwerk im benutzerdefinierten Modus wählen Sie einen IPv4-Subnetzbereich für das Subnetz aus. Für IPv6-Traffic benötigen wir außerdem ein Dual-Stack-Subnetz (stack-typeist aufIPV4_IPV6gesetzt). Wenn Sie ein Dual-Stack-Subnetz in einem VPC-Netzwerk im benutzerdefinierten Modus erstellen, wählen Sie einen IPv6-Zugriffstyp für das Subnetz aus. In diesem Beispiel setzen wir den Parameteripv6-access-typedes Subnetzes aufINTERNAL. Dies bedeutet, dass neuen VMs in diesem Subnetz sowohl interne IPv4- als auch interne IPv6-Adressen zugewiesen werden können.
- Firewall-Regeln, die eingehende Verbindung zu Backend-VMs ermöglichen
- The backend instance group and the load balancer components used for this
example are located in this region and subnet:
- Region: us-west1
- Subnetz: lb-subnet, mit primärem IPv4-Adressbereich10.1.2.0/24. Obwohl Sie auswählen, welcher IPv4-Adressbereich im Subnetz konfiguriert wurde, wird der IPv6-Adressbereich automatisch zugewiesen. Google bietet einen (/64) IPv6-CIDR-Block mit fester Größe.
 
- Region: 
- Eine Backend-VM in einer verwalteten Instanzgruppe in Zone us-west1-a.
- Eine Client-VM zum Testen von Verbindungen zu den Back-Ends.
- Einen internen Passthrough-Netzwerk-Load-Balancer mit den folgenden Komponenten:
- Eine Systemdiagnose für den Backend-Dienst.
- Ein Backend-Dienst in der Region us-west1, bei dem das Protokoll aufUNSPECIFIEDgesetzt ist, um die Verbindungsverteilung zur zonalen Instanzgruppe zu verwalten.
- Für eine Weiterleitungsregel mit dem Protokoll L3_DEFAULTund dem PortALL.
 
Netzwerk, Region und Subnetz konfigurieren
Aktivieren Sie einen internen IPv6-Bereich des VPC-Netzwerks (Virtual Private Cloud), um Subnetze mit internen IPv6-Bereichen zu konfigurieren. Interne IPv6-Subnetzbereiche werden aus diesem Bereich zugewiesen. So erstellen Sie das Beispielnetzwerk und das Subnetz:
Console
Führen Sie die folgenden Schritte aus, um IPv4- und IPv6-Traffic zu unterstützen:
- Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf. 
- Klicken Sie auf VPC-Netzwerk erstellen. 
- Geben Sie für Name - lb-networkein.
- Führen Sie die folgenden Schritte aus, um interne IPv6-Adressbereiche in Subnetzen in diesem Netzwerk zu konfigurieren: - Wählen Sie für Interner VPC-Netzwerk-IPv6-ULA-Bereich den Wert Aktiviert aus.
- Wählen Sie unter Internen IPv6-Bereich zuweisen die Option Automatisch oder Manuell aus.
 
- 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: - Geben Sie für Name lb-subnetein.
- Wählen Sie bei Region die Option us-west1aus.
- Wählen Sie zum Erstellen eines Dual-Stack-Subnetzes für IP-Stack-Typ IPv4 und IPv6 (Dual-Stack) aus.
- Geben Sie unter IPv4-Bereich 10.1.2.0/24ein.
- Wählen Sie für Zugriffstyp IPv6 die Option Intern aus.
 
- Geben Sie für Name 
- Klicken Sie auf Fertig. 
- Klicken Sie auf Erstellen. 
Führen Sie die folgenden Schritte aus, um IPv4-Traffic zu unterstützen:
- Rufen Sie in der Google Cloud -Console die Seite VPC-Netzwerke auf. 
- Klicken Sie auf VPC-Netzwerk erstellen. 
- Geben Sie für Name - lb-networkein.
- Im Bereich Subnetze: - Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
- Geben Sie im Bereich Neues Subnetz folgende Informationen ein:- Name: lb-subnet
- Region: us-west1
- IP-Stack-Typ: IPv4 (Einzel-Stack)
- IP-Adressbereich: 10.1.2.0/24
 
- Name: 
- Klicken Sie auf Fertig.
 
- Klicken Sie auf Erstellen. 
gcloud
Verwenden Sie für IPv4- und IPv6-Traffic den folgenden Befehl:
- Führen Sie den - gcloud compute networks create-Befehl aus, um ein neues VPC-Netzwerk im benutzerdefinierten Modus zu erstellen.- Verwenden Sie das - --enable-ula-internal-ipv6-Flag, um interne IPv6-Bereiche in allen Subnetzen dieses Netzwerks zu konfigurieren. Mit dieser Option wird ein ULA-Präfix- /48aus dem Bereich- fd20::/20zugewiesen, der von Google Cloud für interne IPv6-Subnetzbereiche verwendet wird.- gcloud compute networks create lb-network \ --subnet-mode=custom \ --enable-ula-internal-ipv6 
- Erstellen Sie in - lb-networkein Subnetz für Back-Ends in der Region- us-west1.- Führen Sie den - gcloud compute networks subnets create-Befehl aus, um die Subnetze zu erstellen.- gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1 \ --stack-type=IPV4_IPV6 --ipv6-access-type=INTERNAL 
Verwenden Sie für nur IPv4-Traffic die folgenden Befehle:
- Verwenden Sie zum Erstellen des benutzerdefinierten VPC-Netzwerks den - gcloud compute networks create-Befehl:- gcloud compute networks create lb-network --subnet-mode=custom 
- Verwenden Sie den Befehl - gcloud compute networks subnets create, um das Subnetz für Back-Ends in der Region- us-west1im Netzwerk- lb-networkzu erstellen.- gcloud compute networks subnets create lb-subnet \ --network=lb-network \ --range=10.1.2.0/24 \ --region=us-west1
API
Verwenden Sie für IPv4- und IPv6-Traffic den folgenden Befehl:
- Erstellen Sie ein neues VPC-Netzwerk im benutzerdefinierten Modus: Stellen Sie eine - POST-Anfrage an die Methode- networks.insert.- Zum Konfigurieren interner IPv6-Bereiche in allen Subnetzen dieses Netzwerks legen Sie - enableUlaInternalIpv6auf- truefest. Mit dieser Option wird der Bereich- /48aus dem Bereich- fd20::/20zugewiesen, der von Google für interne IPv6-Subnetzbereiche verwendet wird.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "autoCreateSubnetworks": false, "name": "lb-network", "mtu": MTU, "enableUlaInternalIpv6": true, }- Ersetzen Sie Folgendes: - PROJECT_ID: die ID des Projekts, in dem das VPC-Netzwerk erstellt wird.
- MTUist die maximale Übertragungseinheit des Netzwerks MTU kann entweder- 1460(Standardeinstellung) oder- 1500sein. Lesen Sie die maximale Übertragungseinheit, bevor Sie die MTU auf- 1500setzen.
 
- Stellen Sie eine - POST-Anfrage an die Methode- subnetworks.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/subnetworks { "ipCidrRange": "10.1.2.0/24", "network": "lb-network", "name": "lb-subnet" "stackType": IPV4_IPV6, "ipv6AccessType": Internal }
Verwenden Sie für nur IPv4-Traffic die folgenden Schritte:
- Stellen Sie eine - POST-Anfrage an die Methode- networks.insert. Ersetzen Sie- PROJECT_IDdurch die ID IhresGoogle Cloud -Projekts.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks { "name": "lb-network", "autoCreateSubnetworks": false }
- Stellen Sie zwei - POST-Anfragen an die Methode- subnetworks.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks { "name": "lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "ipCidrRange": "10.1.2.0/24", "privateIpGoogleAccess": false }
Firewallregeln konfigurieren
In diesem Beispiel werden die folgenden Firewallregeln verwendet:
- fw-allow-lb-access: Eine Eingangsregel, die für alle Ziele im VPC-Netzwerk gilt und Traffic von Quellen in den Bereichen- 10.1.2.0/24zulässt. Durch diese Regel wird eingehender Traffic von jedem Client im Subnetz zugelassen.
- fw-allow-lb-access-ipv6: Eine Regel für eingehenden Traffic, die für alle Ziele im VPC-Netzwerk gilt und Traffic von Quellen im IPv6-Bereich im Subnetz zulässt. Durch diese Regel wird eingehender IPv6-Traffic von jedem Client im Subnetz zugelassen.
- fw-allow-ssh: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und eingehende SSH-Verbindungen an TCP-Port 22 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-Tag- allow-sshverwendet, um die VMs zu identifizieren, auf die sie angewendet werden soll.
- fw-allow-health-check: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und Traffic von den Systemdiagnosen von Google Cloud zulässt (- 130.211.0.0/22und- 35.191.0.0/16). In diesem Beispiel wird das Ziel-Tag- allow-health-checkverwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden soll.
- fw-allow-health-check-ipv6: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und Traffic von den Systemdiagnosen von Google Cloud zulässt (- 2600:2d00:1:b029::/64). In diesem Beispiel wird das Ziel-Tag- allow-health-check-ipv6verwendet, um die Instanzen zu identifizieren, auf die sie angewendet werden soll.
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. 
- So lassen Sie zu, dass IPv4-TCP-, UDP- und ICMP-Traffic die Backend-Instanzgruppe - ig-aerreicht:- Klicken Sie auf Firewallregel erstellen.
- Name: fw-allow-lb-access
- Netzwerk: lb-network
- Priorität: 1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Alle Instanzen im Netzwerk
- Quellfilter: IPv4-Bereiche.
- IPv4-Quellbereiche: 10.1.2.0/24
- Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
- Wählen Sie TCP aus und geben Sie ALLein.
- Wählen Sie UDP aus.
- Wählen Sie Andere aus und geben Sie ICMPein.
 
- Wählen Sie TCP aus und geben Sie 
 
- Klicken Sie auf Erstellen. 
- So lassen Sie eingehende SSH-Verbindungen zu: - Klicken Sie auf Firewallregel erstellen.
- Name: fw-allow-ssh
- Netzwerk: lb-network
- Priorität: 1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Zieltags
- Zieltags: allow-ssh
- Quellfilter: IPv4-Bereiche.
- IPv4-Quellbereiche: 0.0.0.0/0
- Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus und geben Sie tcp:22ein.
 
- Klicken Sie auf Erstellen. 
- So lassen Sie zu, dass IPv6-TCP-, UDP- und ICMP-Traffic die Backend-Instanzgruppe - ig-aerreicht:- Klicken Sie auf Firewallregel erstellen.
- Name: fw-allow-lb-access-ipv6
- Netzwerk: lb-network
- Priorität: 1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Alle Instanzen im Netzwerk
- Quellfilter: IPv6-Bereiche
- IPv6-Quellbereiche: IPV6_ADDRESS zugewiesen in lb-subnet
- Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
- Wählen Sie TCP aus und geben Sie 0-65535ein.
- Wählen Sie UDP aus.
- Wählen Sie Sonstige aus und geben Sie für das ICMPv6-Protokoll 58ein.
 
- Wählen Sie TCP aus und geben Sie 
 
- Klicken Sie auf Erstellen. 
- So lassen Sie Google Cloud IPv6-Systemdiagnosen zu: - Klicken Sie auf Firewallregel erstellen.
- Name: fw-allow-health-check-ipv6
- Netzwerk: lb-network
- Priorität: 1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Zieltags
- Zieltags: allow-health-check-ipv6
- Quellfilter: IPv6-Bereiche
- Quell-IPv6-Bereiche: 2600:2d00:1:b029::/64
- Protokolle und Ports: Alle zulassen
 
- Klicken Sie auf Erstellen. 
- So lassen Sie Google Cloud IPv4-Systemdiagnosen zu: - Klicken Sie auf Firewallregel erstellen.
- Name: fw-allow-health-check
- Netzwerk: lb-network
- Priorität: 1000
- Trafficrichtung: Eingehend
- Aktion bei Übereinstimmung: Zulassen
- Ziele: Angegebene Zieltags
- Zieltags: allow-health-check
- Quellfilter: IPv4-Bereiche.
- IPv4-Quellbereiche: 130.211.0.0/22und35.191.0.0/16
- Protokolle und Ports: Alle zulassen
 
- Klicken Sie auf Erstellen. 
gcloud
- Damit der IPv4-TCP-Traffic die Backend-Instanzgruppe - ig-aerreichen kann, erstellen Sie die folgende Regel:- gcloud compute firewall-rules create fw-allow-lb-access \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=10.1.2.0/24 \ --rules=tcp,udp,icmp
- Erstellen Sie mithilfe des Netzwerk-Tags - allow-ssheine- fw-allow-ssh-Firewallregel, um SSH-Verbindungen zu VMs zuzulassen. Wenn Sie- source-rangesweglassen,Google Cloud bezieht die Regel auf jede Quelle.- gcloud compute firewall-rules create fw-allow-ssh \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
- Damit der IPv6-Traffic die Backend-Instanzgruppe - ig-aerreichen kann, erstellen Sie die folgende Regel:- gcloud compute firewall-rules create fw-allow-lb-access-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --source-ranges=IPV6_ADDRESS \ --rules=all- Ersetzen Sie - IPV6_ADDRESSdurch die in- lb-subnetzugewiesene IPv6-Adresse.
- Erstellen Sie die Firewallregel - fw-allow-health-check, um Google Cloud-Systemdiagnosen zuzulassen.- gcloud compute firewall-rules create fw-allow-health-check \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp,udp,icmp
- Erstellen Sie die Regel - fw-allow-health-check-ipv6, um Google CloudIPv6-Systemdiagnosen zuzulassen.- gcloud compute firewall-rules create fw-allow-health-check-ipv6 \ --network=lb-network \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check-ipv6 \ --source-ranges=2600:2d00:1:b029::/64 \ --rules=tcp,udp,icmp 
API
- Zum Erstellen der Firewallregel - fw-allow-lb-accesssenden Sie eine- POST-Anfrage an die Methode- firewalls.insert. Ersetzen Sie- PROJECT_IDdurch die ID IhresGoogle Cloud -Projekts.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "10.1.2.0/24" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
- Erstellen Sie die Firewallregel - fw-allow-lb-access-ipv6. Stellen Sie dazu eine- POST-Anfrage an die Methode- firewalls.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-lb-access-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "IPV6_ADDRESS" ], "allPorts": true, "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "58" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }- Ersetzen Sie IPV6_ADDRESS durch die in - lb-subnetzugewiesene IPv6-Adresse.
- Senden Sie zum Erstellen der Firewallregel - fw-allow-ssheine- POST-Anfrage an die Methode- firewalls.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-ssh", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "0.0.0.0/0" ], "targetTags": [ "allow-ssh" ], "allowed": [ { "IPProtocol": "tcp", "ports": [ "22" ] } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
- Senden Sie zum Erstellen der Firewallregel - fw-allow-health-checkeine- POST-Anfrage an die Methode- firewalls.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "130.211.0.0/22", "35.191.0.0/16" ], "targetTags": [ "allow-health-check" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" }, { "IPProtocol": "icmp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
- Erstellen Sie die Firewallregel - fw-allow-health-check-ipv6. Stellen Sie dazu eine- POST-Anfrage an die Methode- firewalls.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls { "name": "fw-allow-health-check-ipv6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "priority": 1000, "sourceRanges": [ "2600:2d00:1:b029::/64" ], "targetTags": [ "allow-health-check-ipv6" ], "allowed": [ { "IPProtocol": "tcp" }, { "IPProtocol": "udp" } ], "direction": "INGRESS", "logConfig": { "enable": false }, "disabled": false }
Backend-VMs und Instanzgruppen erstellen
Für dieses Load-Balancing-Szenario erstellen Sie eine zonal verwaltete Compute Engine-Instanzgruppe und installieren einen Apache-Webserver.
Konfigurieren Sie die Backend-VMs als Dual-Stack, um sowohl IPv4- als auch IPv6-Traffic zu verarbeiten. Setzen Sie den stack-type der VM auf IPV4_IPV6. Die VMs übernehmen außerdem die Einstellung ipv6-access-type (im Beispiel INTERNAL) aus dem Subnetz. Weitere Informationen zu IPv6-Anforderungen finden Sie in der Übersicht über internen Passthrough-Network-Load-Balancer: Weiterleitungsregeln.
Wenn Sie vorhandene VMs als Back-Ends verwenden möchten, aktualisieren Sie die VMs mit dem Befehl gcloud compute instances network-interfaces update auf Dual-Stack.
Instanzen, die als Backend-VMs für interne Passthrough-Network-Load-Balancer verwendet werden, müssen die entsprechende Linux-Gastumgebung, Windows-Gastumgebung oder andere Prozesse ausführen, die gleichwertige Funktionen bereitstellen.
Zur Vereinfachung der Anleitung führen die Backend-VMs Debian GNU/Linux 12 aus.
Instanzgruppe erstellen
Console
Führen Sie die folgenden Schritte aus, um IPv4- und IPv6-Traffic zu unterstützen:
- Erstellen Sie eine Instanzvorlage. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf. - Klicken Sie auf Instanzvorlage erstellen.
- Geben Sie im Feld Name vm-a1ein.
- Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 12 (bookworm) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
- Maximieren Sie den Bereich Erweiterte Optionen.
- Maximieren Sie den Bereich Verwaltung und kopieren Sie das folgende Script in das Feld Startscript. Mit dem Startskript wird der Apache-Server auch so konfiguriert, dass Port - 8080anstelle von Port- 80überwacht wird.- #! /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 
- Maximieren Sie den Abschnitt Netzwerk und geben Sie Folgendes an: - Fügen Sie unter Netzwerk-Tags allow-sshundallow-health-check-ipv6hinzu.
- Klicken Sie unter Netzwerkschnittstellen auf die Schnittstelle Standard und konfigurieren Sie die folgenden Felder:- Netzwerk: lb-network
- Subnetzwerk: lb-subnet
- IP-Stack-Typ: IPv4 und IPv6 (Dual-Stack)
 
- Netzwerk: 
 
- Fügen Sie unter Netzwerk-Tags 
- Klicken Sie auf Erstellen. 
 
Führen Sie die folgenden Schritte aus, um IPv4-Traffic zu unterstützen:
- Erstellen Sie eine Instanzvorlage. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf. 
- Klicken Sie auf Instanzvorlage erstellen. - Geben Sie im Feld Name vm-a1ein.
- Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 12 (bookworm) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
- Maximieren Sie den Bereich Erweiterte Optionen.
- Maximieren Sie den Bereich Verwaltung und kopieren Sie das folgende Script in das Feld Startscript. Mit dem Startskript wird der Apache-Server auch so konfiguriert, dass Port - 8080anstelle von Port- 80überwacht wird.- #! /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 
- Maximieren Sie den Abschnitt Netzwerk und geben Sie Folgendes an: - Fügen Sie unter Netzwerk-Tags allow-sshundallow-health-checkhinzu.
- Klicken Sie unter Netzwerkschnittstellen auf die Schnittstelle Standard und konfigurieren Sie die folgenden Felder:- Netzwerk: lb-network
- Subnetzwerk: lb-subnet
- IP-Stack-Typ: IPv4 (Einzel-Stack)
 
- Netzwerk: 
 
- Fügen Sie unter Netzwerk-Tags 
- Klicken Sie auf Erstellen. 
 
- Geben Sie im Feld Name 
- Erstellen Sie eine verwaltete Instanzgruppe. Öffnen Sie in der Google Cloud Console die Seite Instanzgruppen. - Klicken Sie auf Instanzgruppe erstellen.
- Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
- Geben Sie im Feld Name ig-aein.
- Wählen Sie für Standort die Option Einzelne Zone aus.
- Wählen Sie us-west1als Region aus.
- Wählen Sie us-west1-aals Zone aus.
- Wählen Sie bei Instanzvorlage die Option vm-a1aus.
- Geben Sie an, wie viele Instanzen die Gruppe umfassen soll. - Geben Sie für dieses Beispiel unter Autoscaling die folgenden Optionen an: - Wählen Sie für Autoscaling-Modus Off:do not autoscaleaus.
- Geben Sie für Maximale Anzahl von Instanzen den Wert 2ein.
 
- Wählen Sie für Autoscaling-Modus 
- Klicken Sie auf Erstellen. 
 
gcloud
Bei den gcloud-Anleitungen in diesem Handbuch wird davon ausgegangen, dass Sie Cloud Shell oder eine andere Umgebung verwenden, in der Bash installiert ist.
- Erstellen Sie mit dem Befehl - gcloud compute instance-templates createeine VM-Instanzvorlage mit HTTP-Server.- Mit dem Startskript wird der Apache-Server auch so konfiguriert, dass Port - 8080anstelle von Port- 80überwacht wird.- Verwenden Sie den folgenden Befehl, um IPv4- und IPv6-Traffic zu verarbeiten. - gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --ipv6-network-tier=PREMIUM \ --stack-type=IPV4_IPV6 \ --tags=allow-ssh \ --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'- Wenn Sie nur IPv4-Traffic verarbeiten möchten, verwenden Sie den folgenden Befehl. - gcloud compute instance-templates create vm-a1 \ --region=us-west1 \ --network=lb-network \ --subnet=lb-subnet \ --tags=allow-ssh \ --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'
- Erstellen Sie mit dem Befehl - gcloud compute instance-groups managed createeine verwaltete Instanzgruppe in der Zone.- gcloud compute instance-groups managed create ig-a \ --zone us-west1-a \ --size 2 \ --template vm-a1
API
Führen Sie die folgenden Schritte aus, um IPv4- und IPv6-Traffic zu verarbeiten:
- Erstellen Sie eine VM, indem Sie - POST-Anfragen an die Methode- instances.insertstellen:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check-ipv6", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4_IPV6", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
Führen Sie die folgenden Schritte aus, um IPv4-Traffic zu verarbeiten.
- Erstellen Sie eine VM, indem Sie - POST-Anfragen an die Methode- instances.insertstellen:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "vm-a1", "tags": { "items": [ "allow-health-check", "allow-ssh" ] }, "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/machineTypes/e2-standard-2", "canIpForward": false, "networkInterfaces": [ { "stackType": "IPV4", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "accessConfigs": [ { "type": "ONE_TO_ONE_NAT", "name": "external-nat", "networkTier": "PREMIUM" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "autoDelete": true, "deviceName": "vm-a1", "initializeParams": { "sourceImage": "projects/debian-cloud/global/images/DEBIAN_IMAGE_NAME", "diskType": "projects/PROJECT_ID/zones/ZONE/diskTypes/pd-standard", "diskSizeGb": "10" } } ], "metadata": { "items": [ { "key": "startup-script", "value": "#! /bin/bash\napt-get update\napt-get install apache2 -y\na2ensite default-ssl\na2enmod ssl\nvm_hostname="$(curl -H "Metadata-Flavor:Google" \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)"\necho "Page served from: $vm_hostname" | \\\ntee /var/www/html/index.html\nsed -ire "s/^Listen 80$/Listen 8080/g" /etc/\\napache2/ports.conf\nsystemctl restart apache2" } ] }, "scheduling": { "preemptible": false }, "deletionProtection": false }
- Erstellen Sie eine Instanzgruppe. Stellen Sie dazu eine - POST-Anfrage an die Methode- instanceGroups.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups { "name": "ig-a", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet" }
- Fügen Sie jeder Instanzgruppe Instanzen hinzu. Stellen Sie dazu eine - POST-Anfrage an die Methode- instanceGroups.addInstances.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a/addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances/vm-a1" } ] }
Client-VM erstellen
In diesem Beispiel wird eine Client-VM erstellt, die sich in derselben Region wie die Backend-VMs (Server) befindet. Der Client validiert die Konfiguration des Load-Balancers und demonstriert das erwartete Verhalten, wie im Abschnitt "Test" beschrieben.
Für IPv4- und IPv6-Traffic:
Console
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf: 
- Klicken Sie auf Instanz erstellen. 
- Legen Sie als Name - vm-client-ipv6fest.
- Setzen Sie Zone auf - us-west1-a.
- Maximieren Sie den Abschnitt Erweiterte Optionen und nehmen Sie die folgenden Änderungen vor: - Maximieren Sie Netzwerk und fügen Sie dann allow-sshzu den Netzwerk-Tags hinzu.
- Klicken Sie unter Netzwerkschnittstellen auf Bearbeiten, nehmen Sie die folgenden Änderungen vor und klicken Sie dann auf Fertig:- Netzwerk: lb-network
- Subnetz: lb-subnet
- IP-Stack-Typ: IPv4 und IPv6 (Dual-Stack)
- Primäre interne IP: sitzungsspezifisch (automatisch)
- Externe IP: sitzungsspezifisch
 
- Netzwerk: 
 
- Maximieren Sie Netzwerk und fügen Sie dann 
- Klicken Sie auf Erstellen. 
gcloud
Die Client-VM kann sich in einer beliebigen Zone in derselben Region wie der Load-Balancer befinden. Außerdem kann sie jedes Subnetz in dieser Region verwenden. 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-ipv6 \
    --zone=us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --stack-type=IPV4_IPV6 \
    --tags=allow-ssh \
    --subnet=lb-subnet
API
Stellen Sie eine POST-Anfrage an die Methode instances.insert.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances
{
 "name": "vm-client-ipv6",
 "tags": {
   "items": [
     "allow-ssh"
   ]
 },
 "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2",
 "canIpForward": false,
 "networkInterfaces": [
   {
     "stackType": "IPV4_IPV6",
     "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
     "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet",
     "accessConfigs": [
       {
         "type": "ONE_TO_ONE_NAT",
         "name": "external-nat",
         "networkTier": "PREMIUM"
       }
     ]
   }
 ],
 "disks": [
   {
     "type": "PERSISTENT",
     "boot": true,
     "mode": "READ_WRITE",
     "autoDelete": true,
     "deviceName": "vm-client",
     "initializeParams": {
       "sourceImage": "projects/debian-cloud/global/images/debian-image-name",
       "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard",
       "diskSizeGb": "10"
     }
   }
 ],
 "scheduling": {
   "preemptible": false
 },
 "deletionProtection": false
}
Für IPv4-Traffic.
Console
- Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf: 
- Klicken Sie auf Instanz erstellen. 
- Geben Sie für Name - vm-clientein.
- Geben Sie für Zone den Wert - us-west1-aein.
- Maximieren Sie den Bereich Erweiterte Optionen. 
- Klicken Sie auf Netzwerk und konfigurieren Sie dann die folgenden Felder: - Geben Sie bei Netzwerk-Tags den Wert allow-sshein.
- Wählen Sie für Netzwerkschnittstellen Folgendes aus:
- Netzwerk: lb-network
- Subnetz: lb-subnet
 
- Netzwerk: 
 
- 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. Außerdem kann sie jedes Subnetz in dieser Region verwenden. 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 \
    --tags=allow-ssh \
    --subnet=lb-subnet
API
Stellen Sie eine POST-Anfrage an die Methode instances.insert.
 Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud -Projekts.
 POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instances
 {
    "name": "vm-client",
    "tags": {
      "items": [
        "allow-ssh"
      ]
  },
    "machineType": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/machineTypes/e2-standard-2",
    "canIpForward": false,
    "networkInterfaces": [
      {
        "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
        "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet",
        "accessConfigs": [
          {
            "type": "ONE_TO_ONE_NAT",
            "name": "external-nat",
            "networkTier": "PREMIUM"
          }
        ]
      }
    ],
    "disks": [
      {
        "type": "PERSISTENT",
        "boot": true,
        "mode": "READ_WRITE",
        "autoDelete": true,
        "deviceName": "vm-client",
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/debian-image-name",
          "diskType": "projects/PROJECT_ID/zones/us-west1-a/diskTypes/pd-standard",
          "diskSizeGb": "10"
        }
      }
    ],
    "scheduling": {
      "preemptible": false
     },
    "deletionProtection": false
  }
  Load-Balancer-Komponenten konfigurieren
Load-Balancer für mehrere Protokolle erstellen
gcloud
- Erstellen Sie eine HTTP-Systemdiagnose für Port 80. Diese Systemdiagnose wird verwendet, um den Status von Back-Ends in der - ig-a-Instanzgruppe zu prüfen.- gcloud compute health-checks create http hc-http-80 \ --region=us-west1 \ --port=80
- Erstellen Sie einen Backend-Dienst, dessen Protokoll auf - UNSPECIFIEDgesetzt ist.- gcloud compute backend-services create be-ilb-l3-default \ --load-balancing-scheme=internal \ --protocol=UNSPECIFIED \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
- Fügen Sie die Instanzgruppe dem Backend-Dienst hinzu: - gcloud compute backend-services add-backend be-ilb-l3-default \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
- Für IPv6-Traffic: Erstellen Sie eine Weiterleitungsregel mit dem Protokoll - L3_DEFAULT, um den gesamten unterstützten IPv6-Protokolltraffic zu verarbeiten. Alle Ports müssen mit- L3_DEFAULT-Weiterleitungsregeln konfiguriert werden.- gcloud compute forwarding-rules create fr-ilb-ipv6 \ --region=us-west1 \ --load-balancing-scheme=internal \ --subnet=lb-subnet \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1 \ --ip-version=IPV6 
- Für IPv4-Traffic: Erstellen Sie eine Weiterleitungsregel mit dem Protokoll - L3_DEFAULT, um den gesamten unterstützten IPv4-Protokoll-Traffic zu verarbeiten. Alle Ports müssen mit- L3_DEFAULT-Weiterleitungsregeln konfiguriert werden. Verwenden Sie- 10.1.2.99als interne IP-Adresse.- gcloud compute forwarding-rules create fr-ilb-l3-default \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=10.1.2.99 \ --ip-protocol=L3_DEFAULT \ --ports=ALL \ --backend-service=be-ilb-l3-default \ --backend-service-region=us-west1 
API
- Erstellen Sie die Systemdiagnose. Stellen Sie dazu eine - POST-Anfrage an die Methode- regionHealthChecks.insert. Ersetzen Sie- PROJECT_IDdurch die ID IhresGoogle Cloud -Projekts.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/regionHealthChecks { "name": "hc-http-80", "type": "HTTP", "httpHealthCheck": { "port": 80 } }
- Erstellen Sie den regionalen Backend-Dienst. Stellen Sie dazu eine - POST-Anfrage an die Methode- regionBackendServices.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-l3-default", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UNSPECIFIED", "connectionDraining": { "drainingTimeoutSec": 0 } }
- Für IPv6-Traffic: Erstellen Sie die Weiterleitungsregel. Stellen Sie dazu eine - POST-Anfrage an die Methode- forwardingRules.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-ipv6", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "ipVersion": "IPV6", "networkTier": "PREMIUM" }
- Für IPv4-Traffic: Erstellen Sie die Weiterleitungsregel. Stellen Sie dazu eine - POST-Anfrage an die Methode- forwardingRules.insert:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-l3-default", "IPAddress": "10.1.2.99", "IPProtocol": "L3_DEFAULT", "allPorts": true, "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default", "networkTier": "PREMIUM" }
Load-Balancer testen
Die folgenden Tests zeigen Ihnen, wie Sie die Konfiguration des Load-Balancers validieren und das erwartete Verhalten ermitteln können.
Verbindung von Client-VM testen
Dieser Test nimmt von einer separaten Client-VM Verbindung mit dem Load-Balancer auf, also nicht von einer Backend-VM des Load-Balancers.
gcloud: IPv6
- Stellen Sie eine Verbindung zur Client-VM-Instanz her. - gcloud compute ssh vm-client-ipv6 --zone=us-west1-a 
- Beschreiben Sie die IPv6-Weiterleitungsregel - fr-ilb-ipv6. Beachten Sie- IPV6_ADDRESSin der Beschreibung.- gcloud compute forwarding-rules describe fr-ilb-ipv6 --region=us-west1 
- Führen Sie von Clients mit IPv6-Verbindung den folgenden Befehl aus: Ersetzen Sie - IPV6_ADDRESSdurch die sitzungsspezifische IPv6-Adresse in der Weiterleitungsregel- fr-ilb-ipv6.- curl -m 10 -s http://IPV6_ADDRESS:80 - Wenn die zugewiesene IPv6-Adresse beispielsweise - [fd20:1db0:b882:802:0:46:0:0/96]:80lautet, sollte der Befehl so aussehen:- curl -m 10 -s http://[fd20:1db0:b882:802:0:46:0:0]:80 
gcloud: IPv4
- Stellen Sie eine Verbindung zur Client-VM-Instanz her. - gcloud compute ssh vm-client --zone=us-west1-a 
- Beschreiben Sie die IPv4-Weiterleitungsregel - fr-ilb.- gcloud compute forwarding-rules describe fr-ilb --region=us-west1 
- Stellen Sie mit - curleine Webanfrage an den Load-Balancer, um dessen IP-Adresse zu kontaktieren. Wiederholen Sie die Anfrage. So können Sie sehen, dass Antworten von verschiedenen Backend-VMs stammen. Der Name der VM, die die Antwort generiert, wird aufgrund des Inhalts von- /var/www/html/index.htmlauf jeder Backend-VM im Text der HTML-Antwort angezeigt. Die erwarteten Antworten sehen so aus:- Page served from: vm-a1.- curl http://10.1.2.99 - Die Weiterleitungsregel ist für die Bereitstellung der Ports - 80und- 53konfiguriert. Um Traffic an diese Ports zu senden, hängen Sie nach der IP-Adresse einen Doppelpunkt (- :) und die Portnummer an:- curl http://10.1.2.99:80 
IP-Adresse des Load-Balancers pingen
Dieser Test zeigt ein erwartetes Verhalten: Sie können die IP-Adresse des Load-Balancers per Ping kontaktieren.
gcloud: IPv6
- Stellen Sie eine Verbindung zur Client-VM-Instanz her. - gcloud compute ssh vm-client-ipv6 --zone=us-west1-a 
- Versuchen Sie, die IPv6-Adresse des Load-Balancers per Ping zu kontaktieren. Ersetzen Sie - IPV6_ADDRESSdurch die sitzungsspezifische IPv6-Adresse in der Weiterleitungsregel- fr-ilb-ipv6.- Sie erhalten eine Antwort und der - ping-Befehl funktioniert in diesem Beispiel.- ping6 IPV6_ADDRESS - Wenn die zugewiesene IPv6-Adresse beispielsweise - [2001:db8:1:1:1:1:1:1/96]lautet, lautet der Befehl so:- ping6 2001:db8:1:1:1:1:1:1 - Die Ausgabe sieht in etwa so aus: - @vm-client: ping - IPV6_ADDRESSPING- IPV6_ADDRESS(- IPV6_ADDRESS) 56(84) bytes of data. 64 bytes from- IPV6_ADDRESS: icmp_seq=1 ttl=64 time=1.58 ms
gcloud: IPv4
- Stellen Sie eine Verbindung zur Client-VM-Instanz her. - gcloud compute ssh vm-client --zone=us-west1-a 
- Versuchen Sie, die IPv4-Adresse des Load-Balancers per Ping zu kontaktieren. Sie erhalten eine Antwort und der - ping-Befehl funktioniert in diesem Beispiel.- ping 10.1.2.99 - Die Ausgabe sieht so aus: - @vm-client: ping 10.1.2.99 PING 10.1.2.99 (10.1.2.99) 56(84) bytes of data. 64 bytes from 10.1.2.99: icmp_seq=1 ttl=64 time=1.58 ms 64 bytes from 10.1.2.99: icmp_seq=2 ttl=64 time=0.242 ms 64 bytes from 10.1.2.99: icmp_seq=3 ttl=64 time=0.295 ms 
Zusätzliche Konfigurationsoptionen
In diesem Abschnitt wird die Konfiguration des Beispiels um alternative und zusätzliche Optionen erweitert. Alle Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge ausführen.
Sie können eine statische interne IP-Adresse für Ihr Beispiel reservieren. Mit dieser Konfiguration können mehrere interne Weiterleitungsregeln dieselbe IP-Adresse mit unterschiedlichen Protokollen und unterschiedlichen Ports verwenden.
Die Back-Ends Ihres Beispiel-Load-Balancers müssen sich weiterhin in der Region us-west1 befinden.
Im folgenden Diagramm wird die Architektur für dieses Beispiel dargestellt:
Sie können auch die folgenden Konfigurationen für Weiterleitungsregeln verwenden:
- Weiterleitungsregeln mit mehreren Ports: - Protokoll TCPmit Ports80,8080
- Protokoll L3_DEFAULTmit PortsALL
 
- Protokoll 
- Weiterleitungsregeln mit allen Ports: - Protokoll TCPmit PortsALL
- Protokoll L3_DEFAULTmit PortsALL
 
- Protokoll 
Statische interne IPv4-Adresse reservieren
Reservieren Sie eine statische interne IP-Adresse für 10.1.2.99 und setzen Sie das Flag --purpose auf SHARED_LOADBALANCER_VIP. Das Flag --purpose ist erforderlich, damit viele Weiterleitungsregeln dieselbe interne IP-Adresse verwenden können.
gcloud
Führen Sie den Befehl gcloud compute addresses create aus:
gcloud compute addresses create internal-lb-ipv4 \
    --region us-west1 \
    --subnet lb-subnet \
    --purpose SHARED_LOADBALANCER_VIP \
    --addresses 10.1.2.99
API
Rufen Sie die Methode addresses.insert auf.
Ersetzen Sie PROJECT_ID durch die ID IhresGoogle Cloud -Projekts.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/addresses
Der Anfragetext muss den addressType (der INTERNAL lauten sollte), den name der Adresse und den subnetwork enthalten, zu dem die IP-Adresse gehört. Sie müssen address als 10.1.2.99 angeben.
{
  "addressType": "INTERNAL",
  "name": "internal-lb-ipv4",
  "subnetwork": "regions/us-west1/subnetworks/lb-subnet",
  "purpose": "SHARED_LOADBALANCER_VIP",
  "address": "10.1.2.99"
}
Load-Balancer-Komponenten konfigurieren
Konfigurieren Sie drei Load-Balancer mit den folgenden Komponenten:
- Der erste Load-Balancer hat eine Weiterleitungsregel mit dem Protokoll TCPund dem Port80. TCP-Traffic, der bei der internen IP-Adresse an Port80ankommt, wird von der WeiterleitungsregelTCPverarbeitet.
- Der zweite Load-Balancer hat eine Weiterleitungsregel mit dem Protokoll UDPund dem Port53. UDP-Traffic, der bei der internen IP-Adresse an Port53ankommt, wird von der WeiterleitungsregelUDPverarbeitet.
- Der dritte Load-Balancer hat eine Weiterleitungsregel mit dem Protokoll L3_DEFAULTund dem PortALL. Anderer Traffic, der nicht von den WeiterleitungsregelnTCPoderUDPübereinstimmt, wird von der WeiterleitungsregelL3_DEFAULTverarbeitet.
- Alle drei Load-Balancer haben in ihren Weiterleitungsregeln dieselbe statische interne IP-Adresse (internal-lb-ipv4).
Ersten Load-Balancer erstellen
Erstellen Sie den ersten Load-Balancer für TCP-Traffic an Port 80.
gcloud
- Erstellen Sie den Backend-Dienst für TCP-Traffic: - gcloud compute backend-services create be-ilb \ --load-balancing-scheme=internal \ --protocol=tcp \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
- Fügen Sie die Instanzgruppe dem Backend-Dienst hinzu: - gcloud compute backend-services add-backend be-ilb \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
- Erstellen Sie eine Weiterleitungsregel für den Backend-Dienst. Verwenden Sie die statische reservierte interne IP-Adresse ( - internal-lb-ipv4) als interne IP-Adresse.- gcloud compute forwarding-rules create fr-ilb \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=TCP \ --ports=80 \ --backend-service=be-ilb \ --backend-service-region=us-west1
API
- Erstellen Sie den regionalen Backend-Dienst. Stellen Sie dazu eine - POST-Anfrage an die Methode- regionBackendServices.insert. Ersetzen Sie- PROJECT_IDdurch die ID IhresGoogle Cloud -Projekts.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "TCP", "connectionDraining": { "drainingTimeoutSec": 0 } }
- Create the forwarding rule by making a - POSTrequest to the- forwardingRules.insertmethod:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb", "IPAddress": "internal-lb-ipv4", "IPProtocol": "TCP", "ports": [ "80" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb", "networkTier": "PREMIUM" }
Zweiten Load-Balancer erstellen
Erstellen Sie den zweiten Load-Balancer für UDP-Traffic an Port 53.
gcloud
- Erstellen Sie einen Backend-Dienst, dessen Protokoll auf - UDPgesetzt ist.- gcloud compute backend-services create be-ilb-udp \ --load-balancing-scheme=internal \ --protocol=UDP \ --region=us-west1 \ --health-checks=hc-http-80 \ --health-checks-region=us-west1
- Fügen Sie die Instanzgruppe dem Backend-Dienst hinzu: - gcloud compute backend-services add-backend be-ilb-udp \ --region=us-west1 \ --instance-group=ig-a \ --instance-group-zone=us-west1-a
- Erstellen Sie eine Weiterleitungsregel für den Backend-Dienst. Verwenden Sie die statische reservierte interne IP-Adresse ( - internal-lb-ipv4) als interne IP-Adresse.- gcloud compute forwarding-rules create fr-ilb-udp \ --region=us-west1 \ --load-balancing-scheme=internal \ --network=lb-network \ --subnet=lb-subnet \ --address=internal-lb-ipv4 \ --ip-protocol=UDP \ --ports=53 \ --backend-service=be-ilb-udp \ --backend-service-region=us-west1
API
- Erstellen Sie den regionalen Backend-Dienst. Stellen Sie dazu eine - POST-Anfrage an die Methode- regionBackendServices.insert. Ersetzen Sie- PROJECT_IDdurch die ID IhresGoogle Cloud -Projekts.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices { "name": "be-ilb-udp", "backends": [ { "group": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/us-west1-a/instanceGroups/ig-a", "balancingMode": "CONNECTION" } ], "healthChecks": [ "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/healthChecks/hc-http-80" ], "loadBalancingScheme": "INTERNAL", "protocol": "UDP", "connectionDraining": { "drainingTimeoutSec": 0 } }
- Erstellen Sie die Weiterleitungsregel. Stellen Sie dazu eine - POST-Anfrage an die Methode- forwardingRules.insert.- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules { "name": "fr-ilb-udp", "IPAddress": "internal-lb-ipv4", "IPProtocol": "UDP", "ports": [ "53" ], "loadBalancingScheme": "INTERNAL", "subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet", "network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network", "backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-udp", "networkTier": "PREMIUM" }
Dritten Load-Balancer erstellen
Erstellen Sie die Weiterleitungsregel des dritten Load-Balancers, um die statische reservierte interne IP-Adresse zu verwenden.
gcloud
Erstellen Sie die Weiterleitungsregel mit dem Protokoll L3_DEFAULT, um den gesamten anderen unterstützten IPv4-Protokoll-Traffic zu verarbeiten. Verwenden Sie die statische reservierte interne IP-Adresse (internal-lb-ipv4) als interne IP-Adresse.
gcloud compute forwarding-rules create fr-ilb-l3-default \
    --region=us-west1 \
    --load-balancing-scheme=internal \
    --network=lb-network \
    --subnet=lb-subnet \
    --address=internal-lb-ipv4 \
    --ip-protocol=L3_DEFAULT \
    --ports=ALL \
    --backend-service=be-ilb-l3-default \
    --backend-service-region=us-west1
API
Erstellen Sie die Weiterleitungsregel. Stellen Sie dazu eine POST-Anfrage an die Methode forwardingRules.insert.
Ersetzen Sie PROJECT_ID durch die ID IhresGoogle Cloud -Projekts.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules
{
"name": "fr-ilb-l3-default",
"IPAddress": "internal-lb-ipv4",
"IPProtocol": "L3_DEFAULT",
"ports": [
  "ALL"
],
"loadBalancingScheme": "INTERNAL",
"subnetwork": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks/lb-subnet",
"network": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks/lb-network",
"backendService": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices/be-ilb-l3-default",
"networkTier": "PREMIUM"
}
Load-Balancer testen
Führen Sie zum Testen des Load-Balancers die Schritte im vorherigen Abschnitt aus.
Nächste Schritte
- Wichtige Konzepte finden Sie unter Übersicht über den internen Netzwerk-Load-Balancer.
- Informationen zum Konfigurieren des Failovers finden Sie unter Failover für den internen Passthrough-Netzwerk-Load-Balancer konfigurieren.
- Informationen zum Konfigurieren von Logging und Monitoring für interne Passthrough-Netzwerk-Load-Balancer finden Sie unter Logging und Monitoring für Netzwerk-Load-Balancer.
- Weitere Informationen zur Fehlerbehebung finden Sie unter Fehlerbehebung bei internen Passthrough-Netzwerk-Load-Balancern.
- Load-Balancing-Einrichtung bereinigen