Klassische VPN-Verbindung zu einem Remote-Standort erstellen

Sie können eine klassische VPN-Tunnelverbindung zwischen einem lokalen Standort und Google Cloud konfigurieren, sodass sowohl die Quell- als auch die Ziel-IP-Adressen externe IP-Adressen (nicht RFC 1918) sind. Sie können beispielsweise eine klassische VPN-Verbindung zu einem Remote-Standort so konfigurieren, dass die lokalen IP-Adressbereiche nicht mit der IP-Adresse der Google Cloud-VM in Konflikt stehen.

In dieser Anleitung verwenden Sie ein Google Cloud-Projekt, die Google Cloud Console, eine VM-Instanz, Classic VPN und einige Linux-Befehle. Erstellen Sie zum Testen der Verbindung eine neue VM-Instanz, um Traffic zwischen der VM und einem Remote-Peer zu senden und zu empfangen.

Hinweis

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Compute Engine API.

    Enable the API

  7. Installieren Sie das gcloud-Befehlszeilentool auf Ihrer Workstation.
  8. Konfigurieren Sie dann das gcloud-Befehlszeilentool für die Verwendung Ihres Projekts. Ersetzen Sie im folgenden Befehl PROJECT_ID durch Ihre Projekt-ID:
    gcloud config set project PROJECT_ID
  9. Die lokalen Subnetze müssen mit Ihrem lokalen VPN-Gateway verbunden sein.
  10. Folgen Sie der Anleitung unter Peer-VPN-Gateway konfigurieren, um das Peer-VPN-Gateway zwischen Google Cloud und Ihrem lokalen VPN-Gateway zu konfigurieren.

Neue statische externe IP-Adresse reservieren

In Compute Engine kann eine VM-Instanz jeweils mehrere Netzwerkschnittstellen haben. Die einzelnen Schnittstellen können sowohl interne als auch externe IP-Adressen haben. Weiterleitungsregeln können externe IP-Adressen für das externe Load-Balancing oder interne Adressen für das interne Load-Balancing nutzen. Weitere Informationen zu statischen IP-Adressen finden Sie unter Externe IP-Adressen.

Eine statische externe IP-Adresse ist die IP-Adresse, die so lange für Ihr Projekt reserviert ist, bis Sie diese freigeben. Wenn Sie eine IP-Adresse haben, über die Ihre Kunden oder Nutzer regelmäßig auf Ihren Dienst zugreifen, können Sie diese reservieren, damit nur Ihr Projekt sie nutzen kann. Sie können auch eine sitzungsspezifische externe IP-Adresse in eine statische externe IP-Adresse umwandeln.

Sie können zwei Arten externer IP-Adressen reservieren:

  • Regionale IP-Adressen, die von VM-Instanzen mit einer oder mehreren Netzwerkschnittstellen oder von regionalen Load-Balancern verwendet werden.
  • Globale IP-Adressen, die für globale Load-Balancer verwendet werden

Eine Liste der regionalen und globalen Load-Balancer finden Sie unter Zusammenfassung der Load-Balancer von Google Cloud.

Reservieren Sie eine statische externe IP-Adresse über das Google Cloud CLI oder über die API. Nachdem Sie die IP-Adresse reserviert haben, weisen Sie sie beim Erstellen der neuen Instanz einer neuen Instanz zu oder weisen Sie sie einer vorhandenen Instanz zu.

Console

  1. Gehen Sie zur Seite Statische Adresse reservieren.

    Zur Seite "Statische Adresse reservieren"

  2. Wählen Sie einen Namen für die neue Adresse.

  3. Geben Sie an, ob es sich um eine IPv4- oder IPv6-Adresse handelt. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.

  4. Legen Sie fest, ob diese IP-Adresse regional oder global ist. Wenn Sie eine statische IP-Adresse für eine Instanz oder für einen regionalen Load-Balancer reservieren, wählen Sie Regional aus. Wenn Sie eine statische IP-Adresse für einen globalen Load-Balancer reservieren, wählen Sie Global aus.

  5. Wählen Sie für eine regionale IP-Adresse die Region aus, in der die Adresse erstellt werden soll.

  6. Optional: Wählen Sie eine Ressource aus, die Sie an die IP-Adresse anhängen möchten.

  7. Klicken Sie auf Reservieren, um die IP-Adresse zu reservieren.

gcloud

Zum Reservieren einer statischen externen IP-Adresse mit gcloud compute verwenden Sie den Befehl compute addresses create.

Verwenden Sie zum Reservieren einer globalen IP-Adresse die Felder --global und --ip-version. Geben Sie für das Feld --ip-version entweder IPV4 oder IPV6 an. IPv6-Adressen sind immer global und können nur mit globalen Load-Balancern verwendet werden.

Ersetzen Sie ADDRESS_NAME durch den Namen für diese Adresse.

gcloud compute addresses create ADDRESS_NAME \
    --global \
    --ip-version [IPV4 | IPV6]

Verwenden Sie das Feld --region, um eine regionale IP-Adresse zu reservieren:

gcloud compute addresses create ADDRESS_NAME  \
    --region=REGION

Dabei gilt:

  • ADDRESS_NAME ist der Name für diese Adresse.
  • REGION ist die Region, in der diese Adresse reserviert werden soll. Diese Region sollte mit der Region der Ressource übereinstimmen, der die IP-Adresse zugewiesen ist. Alle regionalen IP-Adressen sind IPv4.

Verwenden Sie den Befehl compute addresses describe, um das Ergebnis anzeigen zu lassen:

gcloud compute addresses describe ADDRESS_NAME

API

Rufen Sie zum Erstellen einer regionalen IPv4-Adresse die regionale Methode addresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  "name": "ADDRESS_NAME"
}

Dabei gilt:

  • ADDRESS_NAME ist der Name der Adresse
  • REGION ist der Name der Region für diese Anfrage.
  • PROJECT_ID: Projekt-ID für diese Anfrage.

Rufen Sie für globale statische IPv4-Adressen die Methode globalAddresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  "name": "ADDRESS_NAME"
}

Rufen Sie für globale statische IPv6-Adressen die Methode globalAddresses.insert auf:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/addresses

Ihre Anfrage sollte folgenden Text enthalten:

{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6"
}

Sie können das Ergebnis über die Methode addresses.get aufrufen.

Terraform

Sie können ein Terraform-Modul verwenden, um eine interne IP-Adresse zu erstellen.

Im folgenden Beispiel haben die Terraform-Argumente Beispielwerte, die Sie ändern können. Im Beispiel werden drei regionale externe IPv4-Adressen erstellt.

module "address" {
  source       = "terraform-google-modules/address/google"
  version      = "~> 4.0"
  project_id   = var.project_id # Replace this with your service project ID in quotes
  region       = "europe-west1"
  address_type = "EXTERNAL"
  names = [
    "regional-external-ip-address-1",
    "regional-external-ip-address-2",
    "regional-external-ip-address-3"
  ]
}

Im folgenden Beispiel wird eine globale externe IPv6-Adresse erstellt:

resource "google_compute_global_address" "default" {
  project      = var.project_id # Replace this with your service project ID in quotes
  name         = "ipv6-address"
  address_type = "EXTERNAL"
  ip_version   = "IPV6"
}

Aktivieren Sie die IP-Weiterleitung.

Sie können die IP-Weiterleitung aktivieren, wenn Sie eine VM erstellen oder das Instanzattribut canIpForward auf einer vorhandenen VM aktualisieren. Die IP-Weiterleitung ist auf VM-Ebene aktiviert und gilt für alle mit der VM verbundenen Schnittstellen.

IP-Weiterleitung beim Erstellen einer VM aktivieren

In dieser Anleitung wird beschrieben, wie Sie die IP-Weiterleitung beim Erstellen einer VM aktivieren. Wenn Sie die IP-Weiterleitung auf einer vorhandenen VM aktivieren müssen, aktualisieren Sie das Instanzattribut canIpForward.

Console

  1. Rufen Sie die Seite VM-Instanzen auf.
    Zur Seite „VM-Instanzen“
  2. Klicken Sie auf Instanz erstellen.
  3. Prüfen Sie unter Bootlaufwerk, ob Sie ein Linux-Image ausgewählt haben, beispielsweise Debian GNU/Linux.
  4. Klicken Sie auf Netzwerk, Laufwerke, Sicherheit, Verwaltung, einzelne Mandanten.
  5. Klicken Sie auf Netzwerk.
  6. Wählen Sie für die IP-Weiterleitung die Option Aktivieren aus.
  7. Geben Sie etwaige andere Instanzparameter an.
  8. Klicken Sie auf Erstellen.

gcloud

Fügen Sie beim Erstellen einer Instanz mit gcloud das Flag --can-ip-forward an den Befehl an:

gcloud compute instances create ... --can-ip-forward

API

Verwenden Sie beim Erstellen einer Instanz das Feld canIpForward, um die IP-Weiterleitung zu aktivieren.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  "canIpForward": true,
  ...other fields
}

Dabei gilt:

  • PROJECT_ID: die ID des Projekts, in dem die Instanz erstellt wird.
  • ZONE: die Google Cloud-Zone, in der die Instanz erstellt wird.

Weitere Informationen finden Sie in der Methode instances.insert.

Terraform

Sie können die Terraform-Ressource verwenden, um eine VM-Instanz mit aktivierter IP-Weiterleitung zu erstellen.

In diesem Beispiel sind den Terraform-Argumenten Werte zugewiesen, die Sie ändern können.

resource "google_compute_instance" "default" {
  project      = var.project_id # Replace this with your project ID in quotes
  zone         = "southamerica-east1-b"
  name         = "instance-next-hop"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    network = "default"
  }
  can_ip_forward = true
}

Route für eingehenden Traffic erstellen

Führen Sie folgende Schritte aus, um eine neue statische Route zu erstellen. Machen Sie sich vorher mit folgenden Punkten vertraut:

  • Benutzerdefinierte statische Routen dürfen keine Zielbereiche haben, die mit den Zielbereichen beliebiger Subnetzrouten in Ihrem VPC-Netzwerk übereinstimmen oder spezifischer als diese sind.

    • Wenn Sie zwei VPC-Netzwerke mit VPC-Netzwerk-Peering verbinden, dürfen Ziele von benutzerdefinierten statischen Routen in einem Netzwerk nicht identisch mit Zielen von Subnetzrouten in beiden Netzwerken bzw. spezifischer als diese Ziele sein. Google Cloud lehnt benutzerdefinierte statische Routen ab, die so mit Subnetzrouten in Konflikt stehen.
  • Erstellen Sie bei Verwendung eines VPC-Netzwerks im automatischen Modus keine statischen Routen, deren Ziele in den Bereich 10.128.0.0/9 fallen, um Konflikte zu vermeiden. Ausführliche Informationen finden Sie unter Für Netzwerke im automatischen Modus reservierte IP-Bereiche.

  • Ziele für benutzerdefinierte statische Routen dürfen sich nicht mit einem internen zugewiesenen Bereich überschneiden.

  • Machen Sie sich mit Instanzen als nächste Hops vertraut, bevor Sie eine benutzerdefinierte statische Route erstellen, die eine VM als nächsten Hop verwendet. Wenn Sie eine nächste Hop-Instanz auswählen, prüft Google Cloud nur zum Zeitpunkt der Erstellung der Route, ob eine VM vorhanden ist.

  • Wenn Sie eine Route mit einem Netzwerk-Tag erstellen, kann sie nur von VMs mit diesem Tag empfangen werden. Die getaggte VMs empfangen jedoch weiterhin auch alle Routen ohne Netzwerk-Tag.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „Routen“ auf.
    Zur Seite „Routen“
  2. Klicken Sie auf Route erstellen.
  3. Geben Sie einen Namen und eine Beschreibung für die Route an.
  4. Wählen Sie ein vorhandenes Netzwerk aus, für das die Route gelten soll.
  5. Geben Sie einen Ziel-IP-Bereich an, um das Ziel der Route festzulegen.
  6. Geben Sie eine Priorität für die Route an. Die Priorität wird lediglich zum Ermitteln der Routingreihenfolge verwendet, wenn Routen dieselben Ziele haben. Weitere Informationen finden Sie unter Parameter für statische Routen.
  7. Damit die Route nur auf Instanzen mit übereinstimmenden Netzwerktags angewendet werden kann, geben Sie diese Tags im Feld Instanztags an. Lassen Sie das Feld leer, damit die Route für alle Instanzen im Netzwerk gilt oder wenn Sie einen internen TCP/UDP-Load-Balancer als nächsten Hop der Route auswählen. Netzwerk-Tags gelten nicht für Routen, die einen internen TCP/UDP-Load-Balancer als nächsten Hop haben.
  8. Wählen Sie einen nächsten Hop für die Route aus:

    • Instanz angeben ermöglicht Ihnen, eine Instanz anhand ihres Namens auszuwählen. Der Traffic wird an diese Instanz (oder eine Ersatzinstanz mit demselben Namen in derselben Zone) weitergeleitet, auch wenn sich ihre IP-Adresse ändert.
    • IP-Adresse angeben ermöglicht Ihnen, eine IP-Adresse einer vorhandenen Instanz im VPC-Netzwerk einzugeben. Wichtige Einschränkungen für gültige IP-Adressen für den nächsten Hop finden Sie unter Nächste Hops für statische Routen.

    Weitere Informationen zu den verschiedenen Typen von nächsten Hops finden Sie unter Nächste Hops für statische Routen.

  9. Klicken Sie auf Erstellen.

gcloud

Erstellen Sie eine neue benutzerdefinierte statische Route.

gcloud compute routes create ROUTE_NAME \
    --destination-range=DESTINATION_RANGE \
    --network=NETWORK \
    NEXT_HOP_SPECIFICATION

Ersetzen Sie die Platzhalter:

  • ROUTE_NAME ist der Name der Route.
  • DESTINATION_RANGE steht für die Ziel-IP-Adressen, für die diese Route gelten soll. Das breitestmögliche Ziel ist 0.0.0.0/0.
  • NETWORK ist der Name des VPC-Netzwerks, das die Route enthält.
  • NEXT_HOP_SPECIFICATION steht für den nächsten Hop der benutzerdefinierten statischen Route. Sie dürfen nur einen der folgenden Hops als nächsten Hop angeben. Weitere Informationen zu den verschiedenen Typen von nächsten Hops finden Sie unter Nächste Hops für statische Routen.
    • --next-hop-instance=INSTANCE_NAME und --next-hop-instance-zone=ZONE: Verwenden Sie diesen nächsten Hop, um Traffic anhand des Namens und der Zone an eine vorhandene VM-Instanz weiterzuleiten. Der Traffic wird an die primäre interne IP-Adresse für die Netzwerkschnittstelle der VM gesendet, die sich im selben Netzwerk wie die Route befindet.
    • --next-hop-address=ADDRESS: Verwenden Sie diesen nächsten Hop, um Traffic an die IP-Adresse einer vorhandenen VM-Instanz weiterzuleiten.

Wenn die benutzerdefinierte statische Route nur für VMs gelten soll, die nach Netzwerk-Tag ausgewählt werden, fügen Sie das Flag --tags hinzu und geben Sie ein oder mehrere Netzwerk-Tags an. Weitere Informationen zum Zusammenspiel von Netzwerktags und benutzerdefinierten statischen Routen finden Sie unter Anwendbare Routen. Sie können Tags bei jeder benutzerdefinierten statischen Route verwenden.

Weitere Informationen zur Syntax von gcloud finden Sie in der SDK-Dokumentation.

API

Erstellen Sie eine neue benutzerdefinierte statische Route.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/routes
{
  "destRange": "DESTINATION_RANGE",
  "name": "ROUTE_NAME",
  "network": "NETWORK_NAME",
  "priority": PRIORITY,
  "NEXT_HOP_SPECIFICATION": VALUE
}

Ersetzen Sie die Platzhalter:

  • PROJECT_ID ist die ID des Projekts, in dem Ihre Route erstellt wird.
  • DESTINATION_RANGE steht für die Ziel-IP-Adressen, für die diese Route gelten soll. Das breitestmögliche Ziel ist 0.0.0.0/0.
  • ROUTE_NAME: ein Name für die Route.
  • NETWORK_NAME ist der Name des VPC-Netzwerks, das die Route enthält.
  • VALUE von NEXT_HOP_SPECIFICATION steht für den nächsten Hop der benutzerdefinierten statischen Route. Für NEXT_HOP_SPECIFICATION dürfen Sie nur eines der folgenden Felder für den nächsten Hop angeben: nextHopIp, nextHopInstance. Weitere Informationen zu den verschiedenen Typen von nächsten Hops finden Sie unter Nächste Hops für statische Routen.

Weitere Informationen finden Sie in der Methode routes.insert.

Terraform

Sie können eine statische Route mit einem Terraform-Modul erstellen.

Mit dieser statischen Route wird eine Standardroute zum Internet erstellt.

module "google_compute_route" {
  source       = "terraform-google-modules/network/google//modules/routes"
  version      = "~> 9.0"
  project_id   = var.project_id # Replace this with your project ID in quotes
  network_name = "default"

  routes = [
    {
      name              = "egress-internet"
      description       = "route through IGW to access internet"
      destination_range = "0.0.0.0/0"
      tags              = "egress-inet"
      next_hop_internet = "true"
    }
  ]
}

Klassischen VPN-Tunnel mit statischem Routing erstellen

Der VPN-Einrichtungsassistent ist die einzige Google Cloud Console-Option zum Erstellen eines klassischen VPN-Gateways. Der Assistent umfasst alle erforderlichen Konfigurationsschritte, um ein klassisches VPN-Gateway, Tunnel, BGP-Sitzungen und eine externe VPN-Gateway-Ressource zu erstellen. Bestimmte Schritte können Sie aber auch später ausführen, z. B. die BGP-Sitzungen konfigurieren.

Console

Gateway konfigurieren

  1. Rufen Sie in der Google Cloud Console die Seite VPN auf.

    Zu VPN

  2. Wenn Sie zum ersten Mal ein Gateway erstellen, klicken Sie auf VPN-Verbindung erstellen.

  3. Wählen Sie den VPN-Einrichtungsassistenten aus.

  4. Wählen Sie die Optionsschaltfläche Klassisches VPN aus.

  5. Klicken Sie auf Weiter.

  6. Geben Sie auf der Seite VPN-Verbindung erstellen die folgenden Gateway-Einstellungen an:

    • Name: Der Name des VPN-Gateways. der Name kann später nicht mehr geändert werden.
    • Beschreibung: (Optional) Fügen Sie eine Beschreibung hinzu.
    • Netzwerk: Geben Sie ein vorhandenes VPC-Netzwerk an, in dem das VPN-Gateway und der Tunnel erstellt werden sollen.
    • Region: Cloud VPN-Gateways und Tunnel sind regionale Objekte. Wählen Sie eine Google Cloud-Region aus, in der sich das Gateway befinden soll. Instanzen und andere Ressourcen in unterschiedlichen Regionen können den Tunnel für ausgehenden Traffic entsprechend der Reihenfolge der Routen verwenden. Für eine optimale Leistung sollten sich das Gateway und der Tunnel in derselben Region wie relevante Google Cloud-Ressourcen befinden.
    • IP-Adresse: Erstellen Sie eine regionale externe IP-Adresse oder wählen Sie eine vorhandene Adresse aus.

Tunnel konfigurieren

  1. Geben Sie für den neuen Tunnel im Abschnitt Tunnel die folgenden Einstellungen an:

    • Name: Der Name des VPN-Tunnels. der Name kann später nicht mehr geändert werden.
    • Beschreibung: Geben Sie optional eine Beschreibung ein.
    • Remote-Peer-IP-Adresse: Geben Sie die externe IP-Adresse des Peer-VPN-Gateways an.
    • IKE-Version: Wählen Sie die geeignete IKE-Version aus, die vom Peer-VPN-Gateway unterstützt wird. IKEv2 wird bevorzugt, wenn es vom Peer-Gerät unterstützt wird.
    • Vorinstallierter IKE-Schlüssel: Geben Sie für die Authentifizierung einen vorinstallierten Schlüssel (gemeinsames Secret) an. Der vorinstallierte Schlüssel für den Cloud VPN-Tunnel muss mit dem Secret übereinstimmen, das Sie beim Konfigurieren des Tunnelgegenstücks auf dem Peer-VPN-Gateway angegeben haben. Folgen Sie dieser Anleitung, um einen kryptografisch starken vorinstallierten Schlüssel zu generieren.
    • Richtlinienbasierte Tunnel auswählen
    • Wählen Sie unter Weiterleitungsoptionen die Option Richtlinienbasiert aus.
    • Erstellen Sie unter IP-Bereiche des Remote-Netzwerks eine durch Leerzeichen getrennte Liste der IP-Adressbereiche, die vom lokalen Traffic bei der Einrichtung des lokalen VPN verwendet werden.
    • Geben Sie im Feld Lokale IP-Bereiche den externen IP-Adressbereich ein, den Sie zuvor mit dem Subnetzpräfix /32 erstellt haben.
    • Klicken Sie auf Fertig.
    • Klicken Sie auf Erstellen.

gcloud

Führen Sie die folgende Befehlssequenz aus, um ein Cloud VPN-Gateway zu erstellen. Ersetzen Sie in den Befehlen Folgendes:

  • PROJECT_ID: die Projekt-ID
  • NETWORK: der Name Ihres Google Cloud-Netzwerks
  • REGION: die Google Cloud-Region, in der Sie das Gateway und den Tunnel erstellen
  • GW_NAME: der Name des Gateways
  • GW_IP_NAME: ein Name für die externe IP-Adresse, die vom Gateway verwendet wird
  • (Optional) --target-vpn-gateway-region ist die Region des klassischen VPN-Gateways, in der der Vorgang ausgeführt werden soll. Der Wert muss mit --region übereinstimmen. Wenn sie nicht angegeben ist, wird diese Option automatisch festgelegt. Diese Option überschreibt für diesen Befehlsaufruf den Standardwert des Attributs compute/region.

Gateway-Ressourcen konfigurieren

  1. Erstellen Sie das Zielobjekt für das VPN-Gateway:

    gcloud compute target-vpn-gateways create GW_NAME \
       --network=NETWORK \
       --region=REGION \
       --project=PROJECT_ID
    
  2. Reservieren Sie eine regionale externe (statische) IP-Adresse.

    gcloud compute addresses create GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
  3. Notieren Sie die IP-Adresse, damit Sie sie bei der Konfiguration Ihres Peer-VPN-Gateways verwenden können:

    gcloud compute addresses describe GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID \
       --format='flattened(address)'
    
  4. Erstellen Sie drei Weiterleitungsregeln. Mit diesen Regeln wird Google Cloud angewiesen, Traffic vom Typ ESP (IPsec), UDP 500 und UDP 4500 an das Gateway zu senden:

    gcloud compute forwarding-rules create fr-GW_NAME-esp \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=ESP \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
    gcloud compute forwarding-rules create fr-GW_NAME-udp500 \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=UDP \
       --ports=500 \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
    gcloud compute forwarding-rules create fr-GW_NAME-udp4500 \
       --load-balancing-scheme=EXTERNAL \
       --network-tier=PREMIUM \
       --ip-protocol=UDP \
       --ports=4500 \
       --address=GW_IP_NAME \
       --target-vpn-gateway=GW_NAME \
       --region=REGION \
       --project=PROJECT_ID
    

Cloud VPN-Tunnel erstellen

  1. Ersetzen Sie in den Befehlen Folgendes:

    • TUNNEL_NAME: ein Name für den Tunnel
    • ON_PREM_IP: die externe IP-Adresse des Peer-VPN-Gateways
    • IKE_VERS: 1 für IKEv1 oder 2 für IKEv2
    • SHARED_SECRET: Ihr vorinstallierter Schlüssel (gemeinsames Secret). Der vorinstallierte Schlüssel für den Cloud VPN-Tunnel muss mit dem Secret übereinstimmen, das Sie beim Konfigurieren des Tunnelgegenstücks auf dem Peer-VPN-Gateway angegeben haben. Folgen Sie dieser Anleitung, um einen kryptografisch starken vorinstallierten Schlüssel zu generieren.

    Für richtlinienbasiertes VPN:

    • LOCAL_IP_RANGES: eine durch Kommas getrennte Liste der Google Cloud-IP-Adressbereiche. Sie können beispielsweise den CIDR-Block für jedes Subnetz in einem VPC-Netzwerk bereitstellen. Dies ist aus der Sicht von Cloud VPN die linke Seite.
    • REMOTE_IP_RANGES: eine durch Kommas getrennte Liste der IP-Adressbereiche des Peer-Netzwerks. Dies ist aus Sicht von Cloud VPN die rechte Seite.

    Führen Sie zum Konfigurieren eines richtlinienbasierten VPN-Tunnels folgenden Befehl aus:

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=LOCAL_IP_RANGES \
        --remote-traffic-selector=REMOTE_IP_RANGES \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    

    Für routenbasiertes VPN sind sowohl die lokalen als auch die Remote-Trafficauswahlen 0.0.0.0/0, wie unter Routingoptionen und Trafficauswahlen definiert.

    Führen Sie zum Konfigurieren eines routenbasierten VPN-Tunnels folgenden Befehl aus:

    gcloud compute vpn-tunnels create TUNNEL_NAME \
        --peer-address=ON_PREM_IP \
        --ike-version=IKE_VERS \
        --shared-secret=SHARED_SECRET \
        --local-traffic-selector=0.0.0.0/0 \
        --remote-traffic-selector=0.0.0.0/0 \
        --target-vpn-gateway=GW_NAME \
        --region=REGION \
        --project=PROJECT_ID
    
  2. Erstellen Sie eine statische Route für jeden Remote-IP-Adressbereich, den Sie im vorherigen Schritt in der Option --remote-traffic-selector angegeben haben. Wiederholen Sie diesen Befehl für jeden Remote-IP-Adressbereich. Ersetzen Sie ROUTE_NAME durch einen eindeutigen Namen für die Route und REMOTE_IP_RANGE durch den entsprechenden Remote-IP-Adressbereich.

    gcloud compute routes create ROUTE_NAME \
        --destination-range=REMOTE_IP_RANGE \
        --next-hop-vpn-tunnel=TUNNEL_NAME \
        --network=NETWORK \
        --next-hop-vpn-tunnel-region=REGION \
        --project=PROJECT_ID
    

VM zum Senden und Empfangen von Traffic konfigurieren

Gehen Sie so vor, um die Einrichtung abzuschließen und zu testen, ob Sie Traffic von der VM senden und empfangen können:

Traffic empfangen

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
  2. Suchen Sie in der Liste der VM-Instanzen nach der zuvor erstellten VM und klicken Sie auf SSH.
  3. Erstellen Sie einen IP-Adressalias für die VM unter Verwendung der zuvor reservierten öffentlichen IP-Adresse. Sie können Traffic zur VM empfangen, nachdem Sie diesen Schritt ausgeführt haben.

    Führen Sie dazu diesen Befehl aus:

    sudo ip address add EXTERNAL_IP_ADDRESS/32 dev eth0
    

    Ersetzen Sie EXTERNAL_IP_ADDRESS durch die zuvor reservierte öffentliche IP-Adresse.

Traffic senden

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.
  2. Suchen Sie in der Liste der VM-Instanzen nach der zuvor erstellten VM und klicken Sie auf SSH.
  3. Führen Sie den folgenden Befehl aus, um zu testen, ob Sie eine externe IP-Adresse anpingen können:

    $ ping -I EXTERNAL_IP_ADDRESS REMOTE_PEER_IP_ADDRESS
    PING 10.0.0.1 (10.0.0.1) from EXTERNAL_IP_ADDRESS : 56(84) bytes of data.
    64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=4.46 ms
    64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.11 ms
    

    Ersetzen Sie REMOTE_PEER_IP_ADDRESS durch eine IP-Adresse aus dem Subnetz des Remote-Peers.

  4. Damit die VM diese Schnittstelle beim Senden von Traffic an den VPN-Tunnel automatisch verwenden kann, können Sie eine iptables-Regel erstellen.

    Führen Sie beispielsweise den folgenden Befehl aus, um eine iptables-Regel zu erstellen:

    $ sudo iptables -t nat -A POSTROUTING --destination REMOTE_PEER_SUBNET -j SNAT --to-source EXTERNAL_IP_ADDRESS
    

    Ersetzen Sie REMOTE_PEER_SUBNET durch das Subnetz des Remote-Peers.

  5. Führen Sie folgende Befehle aus, um den Cloud VPN-Tunnel zu testen:

    $ ping REMOTE_PEER_IP_ADDRESS
    PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
    64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=3.48 ms
    64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=1.42 ms
    
    $ ping EXTERNAL_IP_ADDRESS
    PING 35.195.72.19 (35.195.72.19) 56(84) bytes of data.
    64 bytes from 35.195.72.19: icmp_seq=1 ttl=64 time=0.033 ms
    64 bytes from 35.195.72.19: icmp_seq=2 ttl=64 time=0.062 ms