Protokollweiterleitung einrichten

Dieses Dokument enthält eine Anleitung zum Konfigurieren der Protokollweiterleitung für die interne und externe Protokollweiterleitung. Bevor Sie die Protokollweiterleitung konfigurieren, lesen Sie die Übersicht über die Protokollweiterleitung.

Externe Protokollweiterleitung einrichten

In diesem Abschnitt erfahren Sie, wie Sie die externe Protokollweiterleitung mit einer Weiterleitungsregel einrichten, um TCP-Traffic an eine einzelne Zielinstanz weiterzuleiten. Für IPv4- und IPv6-Traffic gibt es eine separate Anleitung.

Zum Einrichten der externen Protokollweiterleitung erstellen Sie eine Zielinstanz, die eine einzelne VM-Instanz enthält. Anschließend erstellen Sie eine externe regionale Weiterleitungsregel, die Traffic an die Zielinstanz weiterleitet.

IPv4

Zur Vereinfachung werden in diesem Beispiel das Standardnetzwerk und die Subnetze verwendet.

  1. Erstellen Sie eine Firewallregel, die externen Traffic zur Zielinstanz zulässt.

    gcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \
     --target-tags=allow-ipv4-ext \
     --allow=tcp:80 \
     --source-ranges=0.0.0.0/0
    
  2. Erstellen Sie eine VM. In diesem Beispiel richten wir einen Apache-Server auf der VM ein.

    gcloud compute instances create VM_INSTANCE_NAME \
     --zone=ZONE \
     --image-family=debian-10 \
     --image-project=debian-cloud \
     --tags=allow-ipv4-ext \
     --metadata=startup-script='#! /bin/bash
     sudo apt-get update
     sudo apt-get install apache2 -y
     sudo a2ensite default-ssl
     sudo a2enmod ssl
     vm_hostname="$(curl -H "Metadata-Flavor:Google" \
     http://169.254.169.254/computeMetadata/v1/instance/name)"
     echo "Page served from: $vm_hostname" | \
     tee /var/www/html/index.html
     sudo systemctl restart apache2'
    
  3. Erstellen Sie eine Zielinstanz, die die im vorherigen Schritt erstellte VM enthält. Sie müssen eine Zielinstanz erstellen, bevor Sie ein Weiterleitungsregelobjekt erstellen können, weil die Weiterleitungsregel auf eine vorhandene Zielressource verweisen muss.

    gcloud compute target-instances create TARGET_INSTANCE_NAME \
       --instance=VM_INSTANCE_NAME \
       --zone=ZONE
    
  4. Reservieren Sie eine statische externe IPv4-Adresse.

    gcloud compute addresses create IPV4_ADDRESS \
      --region=REGION
    
  5. Erstellen Sie die Weiterleitungsregel, die TCP-Traffic an die Zielinstanz weiterleitet. Die Weiterleitungsregel muss in derselben Region erstellt werden, in der die Zielinstanz erstellt wurde.

    gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL \
      --region=REGION \
      --ip-protocol=TCP \
      --address=IPV4_ADDRESS \
      --ports=80 \
      --target-instance=TARGET_INSTANCE_NAME \
      --target-instance-zone=ZONE
    
  6. Einrichtung testen

    1. Rufen Sie die IP-Adresse Ihrer Weiterleitungsregel ab.

      gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \
        --region=REGION
      
    2. Stellen Sie mit curl Webanfragen an den Load-Balancer, um dessen IP-Adresse zu kontaktieren. Ersetzen Sie dabei IP_ADDRESS durch die IP-Adresse aus dem vorherigen Schritt.

      $ while true; do curl -m1 IP_ADDRESS; done
      

      Die Ausgabe sieht in etwa so aus, wobei der Name der Backend-VM, die die Antwort generiert, angezeigt wird:

      Page served from: VM_INSTANCE_NAME.
      

IPv6

Die Verarbeitung von IPv6-Traffic erfordert ein Dual-Stack-Subnetz mit einer Dual-Stack-VM-Instanz für das Zielinstanz-Backend.

  1. Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus.

    gcloud compute networks create VPC_NAME \
      --subnet-mode=custom
    
  2. Erstellen Sie im VPC-Netzwerk ein Dual-Stack-Subnetz.

    gcloud compute networks subnets create SUBNET_NAME \
      --network=VPC_NAME \
      --range=192.168.11.0/24 \
      --stack-type=IPV4_IPV6 \
      --ipv6-access-type=EXTERNAL \
      --region=REGION
    

    Der Bereich 192.168.11.0/24 ist nur ein Beispiel für einen IPv4-Bereich. Sie können einen beliebigen primären IPv4-Bereich für das neue Subnetz in CIDR-Notation eingeben. Weitere Informationen finden Sie unter IPv4-Subnetzbereiche.

  3. Erstellen Sie eine Firewallregel, die externen Traffic zur Zielinstanz zulässt.

    gcloud compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \
      --network=VPC_NAME \
      --target-tags=allow-ipv6-ext \
      --allow=tcp:80 \
      --source-ranges=::/0
    
  4. Dual-Stack-VM erstellen.

    gcloud compute instances create VM_INSTANCE_NAME \
      --subnet=SUBNET_NAME \
      --stack-type=IPV4_IPV6 \
      --zone=ZONE \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=allow-ipv6-ext \
      --metadata=startup-script='#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo a2ensite default-ssl
      sudo 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
      sudo systemctl restart apache2'
    
  5. Erstellen Sie eine Zielinstanz, die die im vorherigen Schritt erstellte VM enthält.

    gcloud compute target-instances create TARGET_INSTANCE_NAME \
      --instance=VM_INSTANCE_NAME \
      --network=VPC_NAME \
      --zone=ZONE
    
  6. Reservieren Sie einen statischen externen IPv6-Adressbereich.

    gcloud compute addresses create IPV6_ADDRESS \
      --region=REGION \
      --subnet=SUBNET_NAME \
      --ip-version=IPV6 \
      --endpoint-type=NETLB
    
  7. Erstellen Sie eine IPv6-Weiterleitungsregel, die TCP-Traffic an die Zielinstanz weiterleitet. Die Weiterleitungsregel muss in derselben Region erstellt werden, in der die Zielinstanz erstellt wurde.

    gcloud compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \
      --load-balancing-scheme=EXTERNAL \
      --subnet=SUBNET_NAME \
      --ip-version=IPV6 \
      --region=REGION \
      --address=IPV6_ADDRESS \
      --network-tier=PREMIUM \
      --target-instance=TARGET_INSTANCE_NAME \
      --target-instance-zone=ZONE \
      --ip-protocol=TCP \
      --ports=80
    
  8. Einrichtung testen

    1. Ermitteln Sie die IP-Adresse der Weiterleitungsregel.

      gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \
       --region=REGION
      
    2. Stellen Sie mit curl Webanfragen an den Load-Balancer, um dessen IP-Adresse zu kontaktieren. Ersetzen Sie dabei IPV6_ADDRESS durch die IP-Adresse aus dem vorherigen Schritt.

      curl -6 'http://[IPV6_ADDRESS]:80'
      

      Die Ausgabe sieht in etwa so aus, wobei der Name der Backend-VM, die die Antwort generiert, angezeigt wird:

      Page served from: VM_INSTANCE_NAME.
      

Interne Protokollweiterleitung einrichten

In diesem Abschnitt erfahren Sie, wie Sie die interne Protokollweiterleitung mit einer Weiterleitungsregel einrichten, um TCP-Traffic an eine einzelne Zielinstanz weiterzuleiten. Für IPv4- und IPv6-Traffic gibt es eine separate Anleitung.

In diesem Beispiel erstellen Sie eine Zielinstanz, die eine einzelne VM-Instanz mit einem installierten Apache-Server enthält. Anschließend erstellen Sie eine interne regionale Weiterleitungsregel, die den Traffic an die Zielinstanz weiterleitet.

IPv4

Zur Vereinfachung werden in diesem Beispiel das Standardnetzwerk und die Subnetze verwendet.

  1. Erstellen Sie eine Firewallregel, die internen Traffic zur Zielinstanz zulässt.

    gcloud compute firewall-rules create ALLOW_IPV4_FIREWALL_RULE_NAME \
      --target-tags=allow-ipv4-int \
      --allow=tcp \
      --source-ranges=0.0.0.0/0
    
  2. Erstellen Sie die Firewallregel, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tag allow-ssh zu ermöglichen. Damit wird eine SSH-Verbindung zur Client-VM hergestellt.

    gcloud compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \
      --target-tags=allow-ssh \
      --allow=tcp:22 \
      --source-ranges=0.0.0.0/0
    
  3. Erstellen Sie eine VM.

    gcloud compute instances create VM_INSTANCE_NAME \
      --zone=ZONE \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=allow-ipv4-int \
      --metadata=startup-script='#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo a2ensite default-ssl
      sudo a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://169.254.169.254/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      sudo systemctl restart apache2'
    
  4. Erstellen Sie eine Zielinstanz, die die im vorherigen Schritt erstellte VM enthält. Sie müssen eine Zielinstanz erstellen, bevor Sie ein Weiterleitungsregelobjekt erstellen können, weil die Weiterleitungsregel auf eine vorhandene Zielressource verweisen muss.

    gcloud compute target-instances create TARGET_INSTANCE_NAME \
      --instance=VM_INSTANCE_NAME \
      --zone=ZONE
    
  5. Erstellen Sie die Weiterleitungsregel, die TCP-Traffic an die Zielinstanz weiterleitet. Die Weiterleitungsregel muss in derselben Region erstellt werden, in der die Zielinstanz erstellt wurde.

    gcloud compute forwarding-rules create IPV4_FORWARDING_RULE_NAME \
      --load-balancing-scheme=INTERNAL \
      --network-tier=PREMIUM \
      --region=REGION \
      --ip-protocol=TCP \
      --ports=80 \
      --target-instance=TARGET_INSTANCE_NAME \
      --target-instance-zone=ZONE
    
  6. Eine Testclient-VM erstellen

    gcloud compute instances create CLIENT_VM_NAME \
      --zone=ZONE \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=allow-ssh
    

    Sie können jetzt die Konfiguration Ihrer Protokollweiterleitung testen, indem Sie Traffic von dieser Client-VM an die IP-Adresse der Weiterleitungsregel senden.

  7. Einrichtung testen

    1. Rufen Sie die IP-Adresse Ihrer Weiterleitungsregel ab.

      gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \
       --region=REGION
      
    2. Stellen Sie eine SSH-Verbindung zur Client-VM her.

      gcloud compute ssh CLIENT_VM_NAME \
      --zone=ZONE
      
    3. Stellen Sie mit curl Anfragen an den Load-Balancer, um dessen IP-Adresse zu kontaktieren.

      $ while true; do curl -m1 IP_ADDRESS; done
      

      Die Ausgabe sieht in etwa so aus, wobei der Name der Backend-VM, die die Antwort generiert, angezeigt wird:

      Page served from: VM_INSTANCE_NAME.
      

IPv6

Die Verarbeitung von IPv6-Traffic erfordert ein Dual-Stack-Subnetz mit einer Dual-Stack-VM-Instanz für das Zielinstanz-Backend.

  1. Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Flag --enable-ula-internal-ipv6, um interne IPv6-Bereiche in allen Subnetzen in diesem Netzwerk zu konfigurieren.

    gcloud compute networks create VPC_NAME \
      --subnet-mode=custom \
      --enable-ula-internal-ipv6
    
  2. Erstellen Sie im VPC-Netzwerk ein Dual-Stack-Subnetz.

    gcloud compute networks subnets create SUBNET_NAME \
      --network=VPC_NAME \
      --range=192.168.11.0/24 \
      --region=REGION \
      --stack-type=IPV4_IPV6 \
      --ipv6-access-type=INTERNAL
    

    Der Bereich 192.168.11.0/24 ist nur ein Beispiel für einen IPv4-Bereich. Sie können einen beliebigen primären IPv4-Bereich für das neue Subnetz in CIDR-Notation eingeben. Weitere Informationen finden Sie unter IPv4-Subnetzbereiche.

  3. Erstellen Sie eine Firewallregel, die internen Traffic zur Zielinstanz zulässt.

    gcloud compute firewall-rules create ALLOW_IPV6_FIREWALL_RULE_NAME \
      --network=VPC_NAME \
      --target-tags=allow-ipv6-int \
      --allow=tcp \
      --source-ranges=::/0
    
  4. Erstellen Sie mithilfe des Netzwerk-Tags allow-ssh eine Firewallregel, um SSH-Verbindungen zu VMs zuzulassen.

    gcloud compute firewall-rules create ALLOW_SSH_FIREWALL_RULE_NAME \
      --network=VPC_NAME \
      --target-tags=allow-ssh \
      --allow=tcp:22 \
      --source-ranges=0.0.0.0/0
    

    Diese Firewallregel wird auf eine Client-VM angewendet, die in einem der folgenden Schritte erstellt wird und zu der Sie mit SSH eine Verbindung herstellen, um HTTP-Traffic an die IP-Adresse der Weiterleitungsregel zu senden.

  5. Dual-Stack-VM erstellen.

    gcloud compute instances create VM_INSTANCE_NAME \
      --subnet=SUBNET_NAME \
      --stack-type=IPV4_IPV6 \
      --zone=ZONE \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=allow-ipv6-int \
      --metadata=startup-script='#! /bin/bash
      sudo apt-get update
      sudo apt-get install apache2 -y
      sudo a2ensite default-ssl
      sudo 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
      sudo systemctl restart apache2'
    
  6. Erstellen Sie eine Zielinstanz, die die im vorherigen Schritt erstellte VM enthält.

    gcloud compute target-instances create TARGET_INSTANCE_NAME \
      --instance=VM_INSTANCE_NAME \
      --network=VPC_NAME \
      --zone=ZONE
    
  7. Erstellen Sie eine IPv6-Weiterleitungsregel, die TCP-Traffic an die Zielinstanz weiterleitet. Die Weiterleitungsregel muss in derselben Region erstellt werden, in der die Zielinstanz erstellt wurde.

    gcloud compute forwarding-rules create IPV6_FORWARDING_RULE_NAME \
      --load-balancing-scheme=INTERNAL \
      --network-tier=PREMIUM \
      --network=VPC_NAME \
      --subnet=SUBNET_NAME \
      --region=REGION \
      --ip-protocol=TCP \
      --ports=80 \
      --target-instance=TARGET_INSTANCE_NAME \
      --target-instance-zone=ZONE \
      --ip-version=IPV6
    
  8. Erstellen Sie eine Client-VM.

    gcloud compute instances create CLIENT_VM_NAME \
      --subnet=SUBNET_NAME \
      --stack-type=IPV4_IPV6 \
      --zone=ZONE \
      --image-family=debian-10 \
      --image-project=debian-cloud \
      --tags=allow-ssh
    
  9. Einrichtung testen

    1. Ermitteln Sie die IP-Adresse der Weiterleitungsregel.

      gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \
       --region=REGION
      
    2. Stellen Sie eine SSH-Verbindung zur Client-VM her.

      gcloud compute ssh CLIENT_VM_NAME \
       --zone=ZONE
      
    3. Stellen Sie mit curl eine HTTP-Anfrage an die IP-Adresse der Weiterleitungsregel.

      curl -6 'http://[FORWARDING_RULE_IP_ADDRESS]:80'
      

      Die Ausgabe sieht in etwa so aus, wobei der Name der Backend-VM, die die Antwort generiert, in dem Text angezeigt wird.

      Page served from: VM_INSTANCE_NAME.
      

Nächste Schritte