Externen Passthrough-Network-Load-Balancer für mehrere IP-Protokolle einrichten

In dieser Anleitung wird erläutert, wie Sie Backend-Dienst-basierte externe Passthrough Network-Load-Balancer erstellen, die TCP-, UDP-, ESP-, GRE-, ICMP- und ICMPv6-Traffic verteilen. Sie können eine solche Konfiguration verwenden, wenn Sie Traffic mithilfe von anderen IP-Protokollen als TCP oder UDP ausgleichen möchten. Zielpoolbasierte externe Passthrough-Network-Load-Balancer unterstützen diese Funktion nicht.

Wenn Sie einen externen Passthrough-Network-Load-Balancer für andere IP-Protokolle als TCP oder UDP konfigurieren möchten, erstellen Sie eine Weiterleitungsregel mit einem 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 zwei externe Passthrough-Network-Load-Balancer, um den Traffic auf Backend-VMs in zwei zonal verwaltete Instanzgruppen in der Region us-central1 zu verteilen. Beide Load-Balancer empfangen Traffic über dieselbe externe IP-Adresse.

Ein Load-Balancer hat eine Weiterleitungsregel mit dem Protokoll TCP und Port 80 und der andere Load-Balancer eine Weiterleitungsregel mit dem Protokoll L3_DEFAULT. TCP-Traffic, der an der IP-Adresse an Port 80 ankommt, wird von der Weiterleitungsregel TCP verarbeitet. Anderer Traffic, der nicht mit der TCP-spezifischen Weiterleitungsregel übereinstimmt, wird von der Weiterleitungsregel L3_DEFAULT verarbeitet.

Externer Passthrough-Network-Load-Balancer mit zonal verwalteten Instanzgruppen
Externer Passthrough-Network-Load-Balancer mit zonal verwalteten Instanzgruppen

In diesem Szenario wird der Traffic auf fehlerfreie Instanzen verteilt. Dafür erstellen Sie TCP-Systemdiagnosen, damit der Traffic nur an fehlerfreie Instanzen gesendet wird.

Der externe Passthrough-Network-Load-Balancer ist ein regionaler Load-Balancer. Alle Load-Balancer-Komponenten müssen sich in derselben Region befinden.

Hinweis

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 im Referenzhandbuch für die API und gcloud.

Wenn Sie die gcloud CLI noch nicht ausgeführt haben, führen Sie zuerst den Befehl gcloud init zur Authentifizierung aus.

In dieser Anleitung wird davon ausgegangen, dass Sie mit Bash vertraut sind.

Netzwerk und Subnetze einrichten

In dem Beispiel auf dieser Seite wird ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network verwendet. Sie können ein VPC-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.

Für IPv6-Traffic ist außerdem ein Dual-Stack-Subnetz erforderlich (stack-type ist auf IPv4_IPv6 gesetzt). 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 Parameter ipv6-access-type des Subnetzes auf EXTERNAL. Dies bedeutet, dass neuen VMs in diesem Subnetz sowohl externe IPv4-Adressen als auch externe IPv6-Adressen zugewiesen werden können. Den Weiterleitungsregeln können auch externe IPv4-Adressen und externe IPv6-Adressen zugewiesen werden.

Die Back-Ends und die für dieses Beispiel verwendeten Load-Balancer-Komponenten befinden sich in dieser Region und in diesem Subnetz:

  • Region: us-central1
  • Subnetz: lb-subnet, mit primärem IPv4-Adressbereich 10.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.

Gehen Sie so vor, um das Netzwerk und das Subnetz zu erstellen:

Console

Führen Sie die folgenden Schritte aus, um IPv4- und IPv6-Traffic zu unterstützen:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie als Namen lb-network ein.

  4. Im Bereich Subnetze:

    • Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    • Konfigurieren Sie im Abschnitt Neues Subnetz die folgenden Felder und klicken Sie auf Fertig:
      • Name: lb-subnet
      • Region: us-central1
      • IP-Stack-Typ: IPv4 und IPv6 (Dual-Stack)
      • IPv4-Bereich: 10.1.2.0/24
        Sie können zwar einen IPv4-Adressbereich für das Subnetz konfigurieren, Sie können aber nicht den Bereich der IPv6-Adressen für das Subnetz auswählen. Google bietet einen (/64) IPv6-CIDR-Block mit fester Größe.
      • IPv6-Zugriffstyp: Extern
  5. Klicken Sie auf Erstellen.

Führen Sie die folgenden Schritte aus, um nur IPv4-Traffic zu unterstützen:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie als Namen lb-network ein.

  4. Im Bereich Subnetze:

    • Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    • Konfigurieren Sie im Abschnitt Neues Subnetz die folgenden Felder und klicken Sie auf Fertig:
      • Name: lb-subnet
      • Region: us-central1
      • IP-Stack-Typ: IPv4 (Einzel-Stack)
      • IPv4-Bereich: 10.1.2.0/24
  5. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie das VPC-Netzwerk im benutzerdefinierten Modus:

    gcloud compute networks create lb-network \
        --subnet-mode=custom
    
  2. Erstellen Sie im Netzwerk lb-network ein Subnetz für Back-Ends in der Region us-central1.

    Verwenden Sie für IPv4- und IPv6-Traffic den folgenden Befehl, um ein Dual-Stack-Subnetz zu erstellen:

    gcloud compute networks subnets create lb-subnet \
      --stack-type=IPV4_IPv6 \
      --ipv6-access-type=EXTERNAL \
      --network=lb-network \
      --range=10.1.2.0/24 \
      --region=us-central1
    

    Verwenden Sie für nur IPv4-Traffic den folgenden Befehl:

    gcloud compute networks subnets create lb-subnet \
      --network=lb-network \
      --range=10.1.2.0/24 \
      --region=us-central1
    

Zonale verwaltete Instanzgruppen erstellen

Für dieses Load-Balancing-Szenario erstellen Sie zwei zonal verwaltete Compute Engine-Instanzgruppen und installieren auf jeder Instanz 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 EXTERNAL) aus dem Subnetz. Weitere Informationen zu IPv6-Anforderungen finden Sie in der Übersicht über externen 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 externe Passthrough-Network-Load-Balancer verwendet werden, müssen die entsprechende Linux-Gastumgebung, Windows-Gastumgebung oder andere Prozesse ausführen, die gleichwertige Funktionen bereitstellen.

Instanzgruppe für TCP-Traffic an Port 80 erstellen

Console

  1. Erstellen Sie eine Instanzvorlage. Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

    1. Klicken Sie auf Instanzvorlage erstellen.
    2. Geben Sie für Name ig-us-template-tcp-80 ein.
    3. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
    4. Maximieren Sie den Bereich Erweiterte Optionen.
    5. Maximieren Sie den Bereich Verwaltung und kopieren Sie das folgende Script in das Feld Startscript.

      #! /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
      
    6. Maximieren Sie den Bereich Netzwerk und geben Sie Folgendes an:

      1. Fügen Sie unter Netzwerktags network-lb-tcp-80 hinzu.
      2. Klicken Sie unter Netzwerkschnittstellen auf die Schnittstelle Standard und konfigurieren Sie die folgenden Felder:
        1. Netzwerk: lb-network
        2. Subnetzwerk: lb-subnet
    7. Klicken Sie auf Erstellen.

  2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

    1. Klicken Sie auf Instanzgruppe erstellen.
    2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
    3. Geben Sie im Feld Name ig-us-tcp-80 ein.
    4. Wählen Sie unter Ort die Option Einzelne Zone aus.
    5. Wählen Sie us-central1 als Region aus.
    6. Wählen Sie us-central1-a als Zone aus.
    7. Wählen Sie unter Instanzvorlage ig-us-template-tcp-80 aus.
    8. 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 autoscale aus.
      • Geben Sie für Maximale Anzahl von Instanzen den Wert 2 ein.
    9. 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.

  1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine VM-Instanzvorlage mit HTTP-Server.

    Verwenden Sie den folgenden Befehl, um IPv4- und IPv6-Traffic zu verarbeiten.

    gcloud compute instance-templates create ig-us-template-tcp-80 \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --ipv6-network-tier=PREMIUM \
    --stack-type=IPv4_IPv6 \
    --tags=network-lb-tcp-80 \
    --image-family=debian-10 \
    --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
    systemctl restart apache2'
    

    Wenn Sie nur IPv4-Traffic verarbeiten möchten, verwenden Sie den folgenden Befehl.

    gcloud compute instance-templates create ig-us-template-tcp-80 \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --tags=network-lb-tcp-80 \
    --image-family=debian-10 \
    --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
    systemctl restart apache2'
    
  2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine verwaltete Instanzgruppe in der Zone.

    gcloud compute instance-groups managed create ig-us-tcp-80 \
        --zone us-central1-a \
        --size 2 \
        --template ig-us-template-tcp-80
    

Instanzgruppe für TCP-Port 8080, UDP-, ESP- und ICMP-Traffic erstellen

Console

  1. eine Instanzvorlage erstellen Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

    1. Klicken Sie auf Instanzvorlage erstellen.
    2. Geben Sie im Feld Name ig-us-template-l3-default ein.
    3. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 10 (Buster) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
    4. Maximieren Sie den Bereich Erweiterte Optionen.
    5. Maximieren Sie den Bereich Verwaltung und kopieren Sie das folgende Script in das Feld Startscript. Mit dem Startscript wird der Apache-Server auch so konfiguriert, dass Port 8080 anstelle 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
      
    6. Maximieren Sie den Bereich Netzwerk und geben Sie Folgendes an:

      1. Fügen Sie unter Netzwerktags network-lb-l3-default hinzu.
      2. Klicken Sie unter Netzwerkschnittstellen auf die Schnittstelle Standard und konfigurieren Sie die folgenden Felder:
        1. Netzwerk: lb-network
        2. Subnetzwerk: lb-subnet
    7. Klicken Sie auf Erstellen.

  2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

    1. Klicken Sie auf Instanzgruppe erstellen.
    2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
    3. Geben Sie im Feld Name ig-us-l3-default ein.
    4. Wählen Sie unter Ort die Option Einzelne Zone aus.
    5. Wählen Sie us-central1 als Region aus.
    6. Wählen Sie us-central1-c als Zone aus.
    7. Wählen Sie unter Instanzvorlage ig-us-template-l3-default aus.
    8. 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 autoscale aus.
      • Geben Sie für Maximale Anzahl von Instanzen den Wert 2 ein.
    9. 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.

  1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine VM-Instanzvorlage mit HTTP-Server.

    Mit dem Startskript wird der Apache-Server auch so konfiguriert, dass Port 8080 anstelle von Port 80 überwacht wird.

    Verwenden Sie den folgenden Befehl, um IPv4- und IPv6-Traffic zu verarbeiten.

    gcloud compute instance-templates create ig-us-template-l3-default \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --ipv6-network-tier=PREMIUM \
    --stack-type=IPv4_IPv6 \
    --tags=network-lb-l3-default \
    --image-family=debian-10 \
    --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 ig-us-template-l3-default \
    --region=us-central1 \
    --network=lb-network \
    --subnet=lb-subnet \
    --tags=network-lb-l3-default \
    --image-family=debian-10 \
    --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'
    
  2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine verwaltete Instanzgruppe in der Zone.

    gcloud compute instance-groups managed create ig-us-l3-default \
        --zone us-central1-c \
        --size 2 \
        --template ig-us-template-l3-default
    

Firewallregeln konfigurieren

Erstellen Sie die folgenden Firewallregeln:

  • Firewallregeln, die externen TCP-Traffic zulassen, um Backend-Instanzen in der Instanzgruppe ig-us-tcp-80 an Port 80 (mit dem Zieltag network-lb-tcp-80) zu erreichen. Erstellen Sie separate Firewallregeln, um IPv4- und IPv6-Traffic zuzulassen.
  • Firewallregeln, die anderen externen Traffic (TCP an Port 8080, UDP, ESP und ICMP) erreichen können, um Backend-Instanzen in der Instanzgruppe ig-us-l3-default (mit Zieltag network-lb-l3-default) zu erreichen. Erstellen Sie separate Firewallregeln, um IPv4- und IPv6-Traffic zuzulassen.

In diesem Beispiel werden Firewallregeln erstellt, die Traffic von allen Quellbereichen zulassen, um Ihre Backend-Instanzen an den konfigurierten Ports zu erreichen. Wenn Sie separate Firewallregeln speziell für die Systemdiagnosetests erstellen möchten, verwenden Sie die Quell-IP-Adressbereiche, die unter Übersicht über Systemdiagnosen: Prüfungs-IP-Bereiche und Firewallregeln dokumentiert sind.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Firewall auf.
    Zu den Firewall-Richtlinien
  2. Damit der IPv4-TCP-Traffic Back-Ends in der Instanzgruppe ig-us-tcp-80 erreichen kann, erstellen Sie die folgende Firewallregel.
    1. Klicken Sie auf Firewallregel erstellen.
    2. Geben Sie für allow-network-lb-tcp-80-ipv4 einen Namen ein.
    3. Wählen Sie unter Netzwerk das Netzwerk aus, für das die Firewallregel gelten soll (Standard).
    4. Wählen Sie unter Ziele Angegebene Zieltags aus.
    5. Geben Sie im Feld Zieltags network-lb-tcp-80 ein.
    6. Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
    7. Legen Sie für Quell-IP-Bereiche den Wert 0.0.0.0/0 fest, damit Traffic von allen Quellen zulässig ist. Dadurch können sowohl der externe Traffic als auch die Systemdiagnose die Backend-Instanzen erreichen.
    8. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus. Klicken Sie anschließend das Kästchen TCP an und geben Sie 80 ein.
    9. Klicken Sie auf Erstellen. Es kann einen Moment dauern, bis die neue Firewallregel in der Console angezeigt wird. Klicken Sie gegebenenfalls auf Aktualisieren, damit die Regel aufgeführt wird.
  3. Damit IPv4 UDP-, ESP- und ICMP-Traffic Back-Ends in der Instanzgruppe ig-us-l3-default erreichen kann, erstellen Sie die folgende Firewallregel.
    1. Klicken Sie auf Firewallregel erstellen.
    2. Geben Sie für allow-network-lb-l3-default-ipv4 einen Namen ein.
    3. Wählen Sie unter Netzwerk das Netzwerk aus, für das die Firewallregel gelten soll (Standard).
    4. Wählen Sie unter Ziele Angegebene Zieltags aus.
    5. Geben Sie im Feld Zieltags network-lb-l3-default ein.
    6. Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
    7. Legen Sie für Quell-IP-Bereiche den Wert 0.0.0.0/0 fest, damit Traffic von allen Quellen zulässig ist. Dadurch können sowohl der externe Traffic als auch die Systemdiagnose die Backend-Instanzen erreichen.
    8. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
      1. Klicken Sie das Kästchen TCP an und geben Sie 8080 ein.
      2. Klicken Sie das Kästchen UDP an.
      3. Klicken Sie das Kästchen Andere Protokolle an und geben Sie esp, icmp ein.
    9. Klicken Sie auf Erstellen. Es kann einen Moment dauern, bis die neue Firewallregel in der Console angezeigt wird. Klicken Sie gegebenenfalls auf Aktualisieren, damit die Regel aufgeführt wird.
  4. Damit der IPv6-TCP-Traffic der Instanzgruppe ig-us-tcp-80 erreichen kann, erstellen Sie die folgende Firewallregel.
    1. Klicken Sie auf Firewallregel erstellen.
    2. Geben Sie für allow-network-lb-tcp-80-ipv6 einen Namen ein.
    3. Wählen Sie unter Netzwerk das Netzwerk aus, für das die Firewallregel gelten soll (Standard).
    4. Wählen Sie unter Ziele Angegebene Zieltags aus.
    5. Geben Sie im Feld Zieltags network-lb-tcp-80 ein.
    6. Legen Sie unter Quellfilter die Option IPv6-Bereiche fest.
    7. Legen Sie unter Quell-IPv6-Bereiche den Wert ::/0 fest, damit Traffic von allen Quellen zulässig ist. Dadurch können sowohl der externe Traffic als auch die Systemdiagnose die Backend-Instanzen erreichen.
    8. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus. Klicken Sie das Kästchen neben TCP an und geben Sie 80 ein.
    9. Klicken Sie auf Erstellen. Es kann einen Moment dauern, bis die neue Firewallregel in der Console angezeigt wird. Klicken Sie gegebenenfalls auf Aktualisieren, damit die Regel aufgeführt wird.
  5. Erstellen Sie die folgende Firewallregel, damit IPv6 UDP-, ESP- und ICMPv6-Traffic Back-Ends in der Instanzgruppe ig-us-l3-default erreicht. Durch diese Firewallregel können auch TCP-Systemdiagnoseprüfungen die Instanzen auf Port 8080 erreichen.
    1. Klicken Sie auf Firewallregel erstellen.
    2. Geben Sie für allow-network-lb-l3-default-ipv6 einen Namen ein.
    3. Wählen Sie unter Netzwerk das Netzwerk aus, für das die Firewallregel gelten soll (Standard).
    4. Wählen Sie unter Ziele Angegebene Zieltags aus.
    5. Geben Sie im Feld Zieltags network-lb-l3-default ein.
    6. Legen Sie unter Quellfilter die Option IPv6-Bereiche fest.
    7. Legen Sie unter Quell-IPv6-Bereiche den Wert ::/0 fest, damit Traffic von allen Quellen zulässig ist. Dadurch können sowohl der externe Traffic als auch die Systemdiagnose die Backend-Instanzen erreichen.
    8. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
      1. Klicken Sie das Kästchen neben TCP an und geben Sie 8080 ein.
      2. Klicken Sie das Kästchen neben UDP an.
      3. Klicken Sie das Kästchen neben Sonstige Protokolle an und geben Sie esp, 58 ein.
    9. Klicken Sie auf Erstellen. Es kann einen Moment dauern, bis die neue Firewallregel in der Console angezeigt wird. Klicken Sie gegebenenfalls auf Aktualisieren, damit die Regel aufgeführt wird.

gcloud

  1. Damit der IPv4-TCP-Traffic Back-Ends in der Instanzgruppe ig-us-tcp-80 erreichen kann, erstellen Sie die folgende Firewallregel.

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv4 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=0.0.0.0/0
    
  2. Damit IPv4 UDP-, ESP- und ICMP-Traffic Back-Ends in der Instanzgruppe ig-us-l3-default erreichen kann, erstellen Sie die folgende Firewallregel. Durch diese Firewallregel können auch TCP-Systemdiagnoseprüfungen die Instanzen auf Port 8080 erreichen.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv4 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,icmp \
        --source-ranges=0.0.0.0/0
    
  3. Damit der IPv6-TCP-Traffic der Instanzgruppe ig-us-tcp-80 erreichen kann, erstellen Sie die folgende Firewallregel.

    gcloud compute firewall-rules create allow-network-lb-tcp-80-ipv6 \
        --network=lb-network \
        --target-tags network-lb-tcp-80 \
        --allow tcp:80 \
        --source-ranges=::/0
    
  4. Erstellen Sie die folgende Firewallregel, damit IPv6 UDP-, ESP- und ICMPv6-Traffic Back-Ends in der Instanzgruppe ig-us-l3-default erreicht. Durch diese Firewallregel können auch TCP-Systemdiagnoseprüfungen die Instanzen auf Port 8080 erreichen.

    gcloud compute firewall-rules create allow-network-lb-l3-default-ipv6 \
        --network=lb-network \
        --target-tags network-lb-l3-default \
        --allow tcp:8080,udp,esp,58 \
        --source-ranges=::/0
    

Load-Balancer konfigurieren

Als Nächstes richten Sie zwei Load-Balancer ein. Konfigurieren Sie beide Load-Balancer so, dass sie für die Weiterleitungsregeln dieselbe externe IP-Adresse verwenden, wobei ein Load-Balancer den TCP-Traffic auf Port 80 und der andere den TCP-, UDP-, ESP- und ICMP-Traffic auf Port 8080 verarbeitet.

Durch entsprechende Konfiguration eines Load-Balancers erhalten die Back-End-VM-Instanzen Pakete für die von Ihnen konfigurierte statische externe IP-Adresse. Wenn Sie ein von Compute Engine bereitgestelltes Image verwenden, werden die Instanzen automatisch für diese IP-Adresse konfiguriert. Wenn Sie ein anderes Image verwenden, müssen Sie diese Adresse als Alias auf eth0 oder als Loopback auf den einzelnen Instanzen konfigurieren.

Folgen Sie der nachstehenden Anleitung, um zwei Load-Balancer einzurichten.

Console

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
  5. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  6. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie im Feld Name den Namen backend-service-tcp-80 für den neuen Load-Balancer ein.
  2. Wählen Sie in der Liste Region us-central1 aus.

Back-end-Konfiguration

  1. Klicken Sie auf Backend-Konfiguration.
  2. On the Backend configuration page, make the following changes:
    1. Wählen Sie im Bereich Neues Backend den IP-Stacktyp aus. Wenn Sie Dual-Stack-Back-Ends für die Verarbeitung von IPv4- und IPv6-Traffic erstellt haben, wählen Sie IPv4 und IPv6 (Dual-Stack) aus. Wählen Sie IPv4 (Single-Stack) aus, um nur IPv4-Traffic zu verarbeiten.
    2. Wählen Sie in der Liste Instanzgruppe ig-us-tcp-80 aus und klicken Sie dann auf Fertig.
    3. Klicken Sie in der Liste Systemdiagnose auf Systemdiagnose erstellen und geben Sie die folgenden Informationen ein:
      • Name: tcp-health-check-80
      • Protokoll: TCP
      • Port: 80
    4. Klicken Sie auf Speichern.
  3. Überprüfen Sie, bevor Sie fortfahren, ob sich neben Backend-Konfiguration ein blaues Häkchen befindet.

Frontend-Konfiguration

  1. Klicken Sie auf Front-End-Konfiguration.
  2. Geben Sie im Feld Name forwarding-rule-tcp-80 ein.
  3. Führen Sie die folgenden Schritte aus, um IPv4-Traffic zu verarbeiten:
    1. Setzen Sie die IP-Version auf IPv4.
    2. Wählen Sie im Abschnitt Interner IP-Zweck in der Liste IP-Adresse die Option IP-Adresse erstellen aus.
      1. Geben Sie im Feld Name network-lb-ipv4 ein.
      2. Klicken Sie auf Reservieren.
    3. Wählen Sie für Ports die Option Einzeln aus. Geben Sie im Feld Portnummer den Wert 80 ein.
    4. Klicken Sie auf Fertig.
  4. Führen Sie die folgenden Schritte aus, um IPv6-Traffic zu verarbeiten:

    1. Setzen Sie die IP-Version auf IPv4.
    2. Wählen Sie für Subnetzwerk die Option lb-subnet aus.
    3. Wählen Sie in der Liste IPv6-Bereich die Option IP-Adresse erstellen aus.
      1. Geben Sie im Feld Name network-lb-ipv6 ein.
      2. Klicken Sie auf Reservieren.
    4. Wählen Sie für Ports die Option Einzeln aus. Geben Sie im Feld Portnummer den Wert 80 ein.
    5. Klicken Sie auf Fertig.

    Bei erfolgreicher Einrichtung wird links neben Frontend-Konfiguration ein blauer Kreis mit einem Häkchen angezeigt.

Konfiguration prüfen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
  3. Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
  4. Klicken Sie auf Erstellen.

    Auf der Load-Balancing-Seite sollte in der Spalte „Backend“ ein grünes Häkchen für den neuen Load-Balancer angezeigt werden. Dies weist darauf hin, dass der neue Load-Balancer fehlerfrei ist.

Zweiten Load-Balancer erstellen

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Network Load Balancer (TCP/UDP/SSL) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Proxy oder Passthrough die Option Passthrough-Load Balancer aus und klicken Sie auf Weiter.
  5. Wählen Sie für Öffentlich oder intern die Option Öffentlich (extern) aus und klicken Sie auf Weiter.
  6. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie im Feld Name den Namen backend-service-l3-default für den neuen Load-Balancer ein.
  2. Wählen Sie in der Liste Region us-central1 aus.

Back-end-Konfiguration

  1. Klicken Sie auf Backend-Konfiguration.
  2. On the Backend configuration page, make the following changes:
    1. Wählen Sie im Bereich Neues Backend den IP-Stacktyp aus. Wenn Sie Dual-Stack-Back-Ends für die Verarbeitung von IPv4- und IPv6-Traffic erstellt haben, wählen Sie IPv4 und IPv6 (Dual-Stack) aus. Wählen Sie IPv4 (Single-Stack) aus, um nur IPv4-Traffic zu verarbeiten.
    2. Wählen Sie in der Liste Instanzgruppe ig-us-l3-default aus und klicken Sie dann auf Fertig.
    3. Wählen Sie in der Liste Protokolle die Option L3 (Mehrere Protokolle) aus.
    4. Klicken Sie in der Liste Systemdiagnose auf Systemdiagnose erstellen und geben Sie die folgenden Informationen ein:
      • Name: tcp-health-check-8080
      • Protokoll: TCP
      • Port: 8080
    5. Klicken Sie auf Speichern.
  3. Überprüfen Sie, bevor Sie fortfahren, ob sich neben Backend-Konfiguration ein blaues Häkchen befindet.

Frontend-Konfiguration

  1. Klicken Sie auf Front-End-Konfiguration.
  2. Geben Sie im Feld Name forwarding-rule-l3-default ein.
  3. Führen Sie die folgenden Schritte aus, um IPv4-Traffic zu verarbeiten:
    1. Setzen Sie die IP-Version auf IPv4.
    2. Wählen Sie im Abschnitt Interner IP-Zweck in der Liste IP-Adresse die Option IP-Adresse erstellen aus.
      1. Geben Sie im Feld Name network-lb-ipv4 ein.
      2. Klicken Sie auf Reservieren.
    3. Wählen Sie in der Liste Protokoll die Option L3 (Mehrere Protokolle) aus.
    4. Wählen Sie für Ports die Option Alle aus.
    5. Klicken Sie auf Fertig.
  4. Führen Sie die folgenden Schritte aus, um IPv6-Traffic zu verarbeiten:

    1. Setzen Sie die IP-Version auf IPv4.
    2. Wählen Sie für Subnetzwerk die Option lb-subnet aus.
    3. Wählen Sie in der Liste IPv6-Bereich die Option IP-Adresse erstellen aus.
      1. Geben Sie im Feld Name network-lb-ipv6 ein.
      2. Klicken Sie auf Reservieren.
    4. Wählen Sie im Feld Protokoll die Option L3 (Mehrere Protokolle) aus.
    5. Wählen Sie für Ports die Option Alle aus.
    6. Klicken Sie auf Fertig.

    Bei erfolgreicher Einrichtung wird links neben Frontend-Konfiguration ein blauer Kreis mit einem Häkchen angezeigt.

Konfiguration prüfen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
  3. Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
  4. Klicken Sie auf Erstellen.

    Auf der Load-Balancing-Seite sollte in der Spalte „Backend“ ein grünes Häkchen für den neuen Load-Balancer angezeigt werden. Dies weist darauf hin, dass der neue Load-Balancer fehlerfrei ist.

gcloud

  1. Reservieren einer statischen externen IP-Adresse.

    Für IPv4-Traffic: Erstellen Sie eine statische externe IP-Adresse für die Load-Balancer.

    gcloud compute addresses create network-lb-ipv4 \
        --region us-central1
    

    Für IPv6-Traffic: Erstellen Sie einen statischen externen IPv6-Adressbereich für Ihre Load-Balancer. Das verwendete Subnetz muss ein Dual-Stack-Subnetz mit einem externen IPv6-Subnetzbereich sein.

    gcloud compute addresses create network-lb-ipv6 \
        --region us-central1 \
        --subnet lb-subnet \
        --ip-version IPV6 \
        --endpoint-type NETLB
    
  2. Erstellen Sie eine TCP-Systemdiagnose für Port 80. Diese Systemdiagnose wird verwendet, um den Status von Back-Ends in der ig-us-tcp-80-Instanzgruppe zu prüfen.

    gcloud compute health-checks create tcp tcp-health-check-80 \
        --region us-central1 \
        --port 80
    
  3. Erstellen Sie eine TCP-Systemdiagnose für Port 8080. Diese Systemdiagnose wird verwendet, um den Status von Back-Ends in der ig-us-l3-default-Instanzgruppe zu prüfen.

    gcloud compute health-checks create tcp tcp-health-check-8080 \
        --region us-central1 \
        --port 8080
    
  4. Erstellen Sie den ersten Load-Balancer für TCP-Traffic an Port 80.

    1. Erstellen Sie einen Backend-Dienst, dessen Protokoll auf TCP gesetzt ist.

      gcloud compute backend-services create backend-service-tcp-80 \
          --protocol TCP \
          --health-checks tcp-health-check-80 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. Fügen Sie die Backend-Instanzgruppe dem Backend-Dienst hinzu:

      gcloud compute backend-services add-backend backend-service-tcp-80 \
          --instance-group ig-us-tcp-80 \
          --instance-group-zone us-central1-a \
          --region us-central1
      
    3. Für IPv4-Traffic: Erstellen Sie eine Weiterleitungsregel, um eingehenden TCP-Traffic an Port 80 an den Backend-Dienst weiterzuleiten. TCP ist das Standardprotokoll der Weiterleitungsregel und muss nicht explizit festgelegt werden.

      Verwenden Sie die in Schritt 1 reservierte IP-Adresse als statische externe IP-Adresse des Load-Balancers.

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports 80 \
          --address network-lb-ipv4 \
          --backend-service backend-service-tcp-80
      
    4. Für IPv6-Traffic: Erstellen Sie eine Weiterleitungsregel, um eingehenden TCP-Traffic an Port 80 an den Backend-Dienst weiterzuleiten. TCP ist das Standardprotokoll der Weiterleitungsregel und muss nicht explizit festgelegt werden.

      Verwenden Sie den in Schritt 1 reservierten IPv6-Adressbereich als statische externe IP-Adresse des Load-Balancers. Das verwendete Subnetz muss ein Dual-Stack-Subnetz mit einem externen IPv6-Subnetzbereich sein.

      gcloud compute forwarding-rules create forwarding-rule-tcp-80 \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports 80 \
          --backend-service backend-service-tcp-80
      
  5. Erstellen Sie den zweiten Load-Balancer für TCP an Port 8080, UDP-, ESP- und ICMP-Traffic.

    1. Erstellen Sie einen Backend-Dienst, dessen Protokoll auf UNSPECIFIED gesetzt ist.

      gcloud compute backend-services create backend-service-l3-default \
          --protocol UNSPECIFIED \
          --health-checks tcp-health-check-8080 \
          --health-checks-region us-central1 \
          --region us-central1
      
    2. Fügen Sie die Backend-Instanzgruppe dem Backend-Dienst hinzu:

      gcloud compute backend-services add-backend backend-service-l3-default \
          --instance-group ig-us-l3-default \
          --instance-group-zone us-central1-c \
          --region us-central1
      
    3. Für IPv4-Traffic: Erstellen Sie eine Weiterleitungsregel, dessen Protokoll L3_DEFAULT gesetzt ist, um den gesamten verbleibenden unterstützten IP-Protokoll-Traffic zu verarbeiten (TCP an Port 8080, UDP, ESP und ICMP). Alle Ports müssen mit L3_DEFAULT-Weiterleitungsregeln konfiguriert werden.

      Verwenden Sie dieselbe externe IPv4-Adresse, die Sie für den vorherigen Load Balancer verwendet haben.

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --address network-lb-ipv4 \
          --backend-service backend-service-l3-default
      
    4. Für IPv6-Traffic: Erstellen Sie eine Weiterleitungsregel, dessen Protokoll auf L3_DEFAULT gesetzt ist, um den gesamten verbleibenden unterstützten IP-Protokoll-Traffic zu verarbeiten (TCP an Port 8080, UDP, ESP und ICMP). Alle Ports müssen mit L3_DEFAULT-Weiterleitungsregeln konfiguriert werden.

      Verwenden Sie den in Schritt 1 reservierten IPv6-Adressbereich als statische externe IP-Adresse des Load-Balancers. Das verwendete Subnetz muss ein Dual-Stack-Subnetz mit einem externen IPv6-Subnetzbereich sein.

      gcloud compute forwarding-rules create forwarding-rule-l3-default \
          --load-balancing-scheme external \
          --region us-central1 \
          --network-tier PREMIUM \
          --ip-version IPV6 \
          --subnet lb-subnet \
          --address network-lb-ipv6 \
          --ports all \
          --ip-protocol L3_DEFAULT \
          --backend-service backend-service-l3-default
      

Load-Balancer testen

Nachdem Sie den Load-Balancing-Dienst konfiguriert haben, können Sie Traffic an die externe IP-Adresse des Load-Balancers senden und den Traffic an die Backend-Instanzen verteilen.

Externe IP-Adresse des Load-Balancers ermitteln

Console

  1. Wechseln Sie auf der Load-Balancing-Seite Erweitert und gehen Sie zum Tab Weiterleitungsregeln.
    Zum Tab "Weiterleitungsregeln"
  2. Suchen Sie die vom Load-Balancer verwendete Weiterleitungsregel.
  3. Notieren Sie sich die in der Spalte IP-Adresse angegebene externe IP-Adresse für jede IPv4- und IPv6-Weiterleitungsregel.

gcloud: IPv4

Geben Sie den folgenden Befehl ein, um die externe IP-Adresse der vom Load-Balancer verwendeten Weiterleitungsregel aufzurufen.

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

In diesem Beispiel wird für beide Weiterleitungsregeln dieselbe IPv4-Adresse verwendet. Daher funktioniert auch die Verwendung von forwarding-rule-l3-default.

gcloud: IPv6

Geben Sie den folgenden Befehl ein, um die externe IPv6-Adresse der vom Load-Balancer verwendeten Weiterleitungsregel forwarding-rule-tcp-80 aufzurufen:

gcloud compute forwarding-rules describe forwarding-rule-tcp-80 \
    --region us-central1

In diesem Beispiel wird für beide Weiterleitungsregeln dieselbe IPv6-Adresse verwendet. Daher funktioniert auch die Verwendung von forwarding-rule-l3-default.

Traffic an den Load-Balancer senden

Dieses Verfahren sendet externen Traffic an den Load-Balancer. Führen Sie die folgenden Tests aus, um sicherzustellen, dass der TCP-Traffic an Port 80 das Load-Balancing über die Instanzgruppe ig-us-tcp-80 ausführt, während der gesamte Traffic (TCP an Port 8080, UDP, ESP und ICMP) von der ig-us-l3-default-Instanzgruppe verarbeitet wird.

Verhalten mit TCP-Anfragen an Port 80 prüfen

  1. Stellen Sie mit curl (über TCP an Port 80) Webanfragen an den Load-Balancer, um dessen IP-Adresse zu kontaktieren.

    • Führen Sie von Clients mit IPv4-Verbindung den folgenden Befehl aus:

      $ while true; do curl -m1 IP_ADDRESS; done
      
    • Führen Sie von Clients mit IPv6-Verbindung den folgenden Befehl aus:

      $ while true; do curl -m1 http://IPV6_ADDRESS; done
      

      Wenn die zugewiesene IPv6-Adresse beispielsweise [2001:db8:1:1:1:1:1:1/96] lautet, sollte der Befehl so aussehen:

      $ while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]; done
      
  2. Beachten Sie den vom Befehl curl zurückgegebenen Text. Der Name der Back-End-VM, die die Antwort generiert, wird in diesem Text angezeigt. Beispiel: Page served from: VM_NAME Antworten sollten nur von Instanzen in der Instanzgruppe ig-us-tcp-80 stammen.

    Wenn anfangs keine Antwort zurückgegeben wird, müssen Sie vor einem erneuten Versuch unter Umständen etwa 30 Sekunden warten, bis die Konfiguration vollständig geladen ist und die Instanzen als fehlerfrei markiert werden:

Verhalten mit TCP-Anfragen an Port 8080 prüfen

Stellen Sie mit curl (über TCP an Port 8080) Webanfragen an den Load-Balancer, um dessen IP-Adresse zu kontaktieren.

  • Führen Sie von Clients mit IPv4-Verbindung den folgenden Befehl aus:

    $ while true; do curl -m1 IPV4_ADDRESS:8080; done
    
  • Führen Sie von Clients mit IPv6-Verbindung den folgenden Befehl aus:

    $ while true; do curl -m1 http://IPV6_ADDRESS; done
    

    Wenn die zugewiesene IPv6-Adresse beispielsweise [2001:db8:1:1:1:1:1:1/96] lautet, sollte der Befehl so aussehen:

    $ while true; do curl -m1 http://[2001:db8:1:1:1:1:1:1]:8080; done
    

Beachten Sie den vom Befehl curl zurückgegebenen Text. Antworten sollten nur von Instanzen in der Instanzgruppe ig-us-l3-default stammen.

Dies zeigt, dass der gesamte Traffic, der an die IP-Adresse des Load-Balancers an Port 8080 gesendet wird, nur von Back-Ends in der Instanzgruppe ig-us-l3-default verarbeitet wird.

Verhalten mit ICMP-Anfragen prüfen

Um das Verhalten bei ICMP-Traffic zu prüfen, erfassen Sie die Ausgabe des Befehls tcpdump, um zu bestätigen, dass nur Back-End-VMs in der Instanzgruppe ig-us-l3-default ICMP-Anfragen verarbeiten, die an den Load-Balancer gesendet werden.

  1. Stellen Sie eine SSH-Verbindung zu den Backend-VMs her.

    1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
      Zur Seite "VM-Instanzen"

    2. Klicken Sie in der Liste der VM-Instanzen in der Zeile der Instanz, zu der Sie eine Verbindung herstellen möchten, auf SSH.

  2. Führen Sie den folgenden Befehl aus, um tcpdump zu verwenden und ICMP-Traffic zu überwachen.

    sudo tcpdump icmp -w ~/icmpcapture.pcap -s0 -c 10000
    tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
    

    Lassen Sie das SSH-Fenster geöffnet.

  3. Wiederholen Sie die Schritte 1 und 2 für alle vier Backend-VMs.

  4. Stellen Sie ICMP-Anfragen an den Load-Balancer,

    Zum Testen der IPv4-Antworten verwenden Sie ping, um die IPv4-Adresse des Load-Balancers zu kontaktieren.

    ping IPV4_ADDRESS
    

    Zum Testen der IPv6-Antworten verwenden Sie ping6, um die IPv6-Adresse des Load-Balancers zu kontaktieren.

    ping6 IPV6_ADDRESS
    

    Wenn die zugewiesene IPv6-Adresse beispielsweise [2001:db8:1:1:1:1:1:1/96] lautet, sollte der Befehl so aussehen:

    ping6 2001:db8:1:1:1:1:1:1
    
  5. Kehren Sie zum offenen SSH-Fenster der einzelnen VMs zurück und beenden Sie den Erfassungsbefehl tcpdump. Sie können dazu Strg + C verwenden.

  6. Prüfen Sie für jede VM die Ausgabe des Befehls tcpdump in der Datei icmpcapture.pcap.

    sudo tcpdump -r ~/icmpcapture.pcap -n
    

    Für Back-End-VMs in der Instanzgruppe ig-us-l3-default sollten Dateieinträge wie die folgenden angezeigt werden:

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    22:13:07.814486 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 1, length 64
    22:13:07.814513 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 1, length 64
    22:13:08.816150 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 2, length 64
    22:13:08.816175 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 2, length 64
    22:13:09.817536 IP 35.230.115.24 > 35.193.84.93: ICMP echo request, id 1995, seq 3, length 64
    22:13:09.817560 IP 35.193.84.93 > 35.230.115.24: ICMP echo reply, id 1995, seq 3, length 64
    ...
    

    Für Back-End-VMs in der Instanzgruppe ig-us-tcp-80 sollten Sie sehen, dass keine Pakete empfangen wurden, und die Datei sollte leer sein:

    reading from file /home/[user-directory]/icmpcapture.pcap, link-type EN10MB (Ethernet)
    

Zusätzliche Konfigurationsoptionen

IPv6-Weiterleitungsregel mit BYOIP erstellen

Der in den vorherigen Schritten erstellte Load-Balancer wurde mit Weiterleitungsregeln mit IP version als IPv4 oder IPv6 konfiguriert. In diesem Abschnitt wird beschrieben, wie Sie eine IPv6-Weiterleitungsregel mit BYOIP-Adressen (Bring your own IP addresses) erstellen.

Mit BYOIP können Sie Ihre eigenen öffentlichen IPv6-Adressen für Google Cloud-Ressourcen bereitstellen und verwenden. Weitere Informationen finden Sie unter Eigene IP-Adressen verwenden.

Bevor Sie mit der Konfiguration einer IPv6-Weiterleitungsregel mit BYOIP-Adressen beginnen, müssen Sie die folgenden Schritte ausführen:

  1. Öffentlich beworbenes IPv6-Präfix erstellen
  2. Öffentliche delegierte Präfixe erstellen
  3. IPv6-Unterpräfixe erstellen
  4. Präfix ankündigen

So erstellen Sie eine neue Weiterleitungsregel:

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen.

  2. Klicken Sie auf den Namen des Load-Balancers, den Sie ändern möchten.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie auf Frontend-Konfiguration.
  5. Klicken Sie auf Front-End-IP und Port hinzufügen.
  6. Geben Sie im Abschnitt Neue Frontend-IP-Adresse und neuer Frontend-Port Folgendes an:
    1. Das Protokoll ist TCP.
    2. Wählen Sie im Feld IP-Version die Option IPv6 aus.
    3. Wählen Sie im Feld Quelle des IPv6-Bereichs die Option BYOIP aus.
    4. Wählen Sie in der Liste IP-Sammlung ein Unterpräfix aus, das in den vorherigen Schritten mit aktivierter Option für die Weiterleitungsregel erstellt wurde.
    5. Geben Sie im Feld IPv6-Bereich den IPv6-Adressbereich ein. Der IPv6-Adressbereich muss den Spezifikationen für IPv6-Unterpräfixe entsprechen.
    6. Geben Sie in das Feld Ports eine Portnummer ein.
    7. Klicken Sie auf Fertig.
  7. Klicken Sie auf Front-End-IP und Port hinzufügen.
  8. Geben Sie im Abschnitt Neue Frontend-IP-Adresse und neuer Frontend-Port Folgendes an:
    1. Das Protokoll ist L3 (Mehrere Protokolle).
    2. Wählen Sie im Feld IP-Version die Option IPv6 aus.
    3. Wählen Sie im Feld Quelle des IPv6-Bereichs die Option BYOIP aus.
    4. Wählen Sie in der Liste IP-Sammlung ein Unterpräfix aus, das in den vorherigen Schritten mit aktivierter Option für die Weiterleitungsregel erstellt wurde.
    5. Geben Sie im Feld IPv6-Bereich den IPv6-Adressbereich ein. Der IPv6-Adressbereich muss den Spezifikationen für IPv6-Unterpräfixe entsprechen.
    6. Wählen Sie im Feld Ports die Option Alle aus.
    7. Klicken Sie auf Fertig.
  9. Klicken Sie auf Aktualisieren.

Google Cloud CLI

Erstellen Sie die Weiterleitungsregel mit dem Befehl gcloud compute forwarding-rules create:

gcloud compute forwarding-rules create FWD_RULE_NAME \
    --load-balancing-scheme EXTERNAL \
    --ip-protocol L3_DEFAULT \
    --ports ALL \
    --ip-version IPV6 \
    --region REGION_A \
    --address IPV6_CIDR_RANGE  \
    --backend-service BACKEND_SERVICE \
    --ip-collection PDP_NAME

Erstellen Sie die Weiterleitungsregel mit dem Befehl gcloud compute forwarding-rules create:

gcloud compute forwarding-rules create FWD_RULE_NAME \
    --load-balancing-scheme EXTERNAL \
    --ip-protocol PROTOCOL \
    --ports ALL \
    --ip-version IPV6 \
    --region REGION_A \
    --address IPV6_CIDR_RANGE  \
    --backend-service BACKEND_SERVICE \
    --ip-collection PDP_NAME

Ersetzen Sie Folgendes:

  • FWD_RULE_NAME: der Name der Weiterleitungsregel
  • REGION_A: Region für die Weiterleitungsregel
  • IPV6_CIDR_RANGE: der IPv6-Adressbereich, für den die Weiterleitungsregel gilt. Der IPv6-Adressbereich muss den Spezifikationen für IPv6-Unterpräfixe entsprechen.
  • BACKEND_SERVICE: der Name des Backend-Dienstes.
  • PDP_NAME: der Name des öffentlich delegierten Präfixes. Das PDP muss ein Unterpräfix im Modus EXTERNAL_IPV6_FORWARDING_RULE_CREATION sein

Nächste Schritte