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.
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
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-12 \ --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'
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
Reservieren Sie eine statische externe IPv4-Adresse.
gcloud compute addresses create IPV4_ADDRESS \ --region=REGION
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
Einrichtung testen
Rufen Sie die IP-Adresse Ihrer Weiterleitungsregel ab.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
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.
Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus.
gcloud compute networks create VPC_NAME \ --subnet-mode=custom
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.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
Dual-Stack-VM erstellen.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --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'
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
Reservieren Sie einen statischen externen IPv6-Adressbereich.
gcloud compute addresses create IPV6_ADDRESS \ --region=REGION \ --subnet=SUBNET_NAME \ --ip-version=IPV6 \ --endpoint-type=NETLB
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
Einrichtung testen
Ermitteln Sie die IP-Adresse der Weiterleitungsregel.
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
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.
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
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
Erstellen Sie eine VM.
gcloud compute instances create VM_INSTANCE_NAME \ --zone=ZONE \ --image-family=debian-12 \ --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'
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
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
Eine Testclient-VM erstellen
gcloud compute instances create CLIENT_VM_NAME \ --zone=ZONE \ --image-family=debian-12 \ --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.
Einrichtung testen
Rufen Sie die IP-Adresse Ihrer Weiterleitungsregel ab.
gcloud compute forwarding-rules describe IPV4_FORWARDING_RULE_NAME \ --region=REGION
Stellen Sie eine SSH-Verbindung zur Client-VM her.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
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.
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
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.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
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.
Dual-Stack-VM erstellen.
gcloud compute instances create VM_INSTANCE_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --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'
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
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
Erstellen Sie eine Client-VM.
gcloud compute instances create CLIENT_VM_NAME \ --subnet=SUBNET_NAME \ --stack-type=IPV4_IPV6 \ --zone=ZONE \ --image-family=debian-12 \ --image-project=debian-cloud \ --tags=allow-ssh
Einrichtung testen
Ermitteln Sie die IP-Adresse der Weiterleitungsregel.
gcloud compute forwarding-rules describe IPV6_FORWARDING_RULE_NAME \ --region=REGION
Stellen Sie eine SSH-Verbindung zur Client-VM her.
gcloud compute ssh CLIENT_VM_NAME \ --zone=ZONE
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.