HA-VPN-Verbindungen zwischen Google Cloud und AWS erstellen

In dieser Anleitung wird beschrieben, wie Sie hochverfügbare VPN-Verbindungen zwischen Google Cloud und Amazon Web Services (AWS) für die direkte Kommunikation zwischen VPC-Netzwerken der beiden Cloud-Plattformen erstellen.

In dieser Anleitung wird davon ausgegangen, dass Sie mit den grundlegenden Konzepten von VPC-Netzwerken (Virtual Private Cloud), Border Gateway Protocol (BGP), virtuellen privaten Netzwerken (VPNs) und IPsec-Tunneln vertraut sind.

Google Cloud bietet einen hochverfügbaren (HA) VPN-Dienst, um Ihr VPC-Netzwerk mit Umgebungen zu verbinden, die außerhalb von Google Cloud ausgeführt werden, wie beispielsweise lokal oder auf AWS über eine IPsec-VPN-Verbindung. HA-VPN bietet ein SLA von 99,99% Dienstverfügbarkeit, wenn es basierend auf Best Practices von Google konfiguriert wird. Weitere Informationen finden Sie im Service Level Agreement (SLA) für Cloud VPN.

Architektur

Die auf dieser Seite beschriebene Architektur umfasst die folgenden Komponenten:

  • Cloud Router: Ein vollständig verteilter und verwalteter Google Cloud-Dienst, der dynamisches Routing mit BGP für Ihre VPC-Netzwerke bereitstellt.
  • HA-VPN-Gateway: Von Google verwaltetes VPN-Gateway, das in Google Cloud ausgeführt wird. Jedes HA-VPN-Gateway ist eine regionale Ressource mit zwei Schnittstellen, die jeweils eigene externe IP-Adressen haben: Schnittstelle 0 und 1.
  • VPN-Tunnel: Verbindungen vom HA VPN-Gateway zum Peer-VPN-Gateway auf AWS, über das verschlüsselter Traffic weitergeleitet wird.
  • Peer-VPN-Gateway: Zwei AWS-Site-to-Site-VPN-Endpunkte, die von einem virtuellen privaten AWS-Gateway oder AWS-Transit-Gateway stammen können. Weitere Informationen finden Sie unter Was ist AWS Site-to-Site VPN?

Jede Peer-VPN-Gateway-Verbindung umfasst zwei Tunnel, die für ein einzelnes Kunden-Gateway vorkonfiguriert sind, in diesem Fall eine Google Cloud-HA-VPN-Schnittstelle. Bei dieser Konfiguration beträgt die Mindestanzahl an Tunneln, die für das SLA einer Dienstverfügbarkeit von 99,99% erforderlich sind, vier.

Die Routingoptionen und die kombinierte Bandbreite über die VPN-Tunnel hängen von der auf der AWS-Seite verwendeten Site-to-Site-VPN-Option ab:

Im folgenden Diagramm sehen Sie die Architektur.

Architekturübersicht.

Ziele

  • Erstellen Sie ein VPC-Netzwerk in Google Cloud.
  • Erstellen Sie ein HA-VPN-Gateway und einen Cloud Router in Google Cloud.
  • Kunden-Gateways in AWS erstellen.
  • Erstellen Sie eine VPN-Verbindung mit dynamischem Routing in AWS.
  • Externes VPN-Gateway und VPN-Tunnel in Google Cloud erstellen.
  • VPN-Verbindung zwischen VPC-Netzwerken in Google Cloud und AWS prüfen und testen.

Beispiel für ein Terraform-Modul

Mit dem Modul gcp-to-aws-ha-vpn-terraform-module können Sie HA VPN zwischen Google Cloud und AWS bereitstellen.

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten von Google Cloud verwendet, darunter:

Eine Schätzung der Kosten für die Google Cloud-Komponenten erhalten Sie mit dem Google Cloud-Preisrechner.

In dieser Anleitung werden kostenpflichtige Komponenten von Amazon Web Services verwendet, darunter:

  • AWS-Transit-Gateway
  • AWS-Site-to-Site-VPN

Mit dem AWS-Preisrechner können Sie die Kosten für die AWS-Komponenten schätzen.

Hinweis

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

    Go to project selector

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

  3. Enable the Compute Engine API.

    Enable the API

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

  5. Prüfen Sie, ob Sie die erforderlichen Administratorrollen zum Konfigurieren von Netzwerkkomponenten haben:

    • Netzwerkadministrator: compute.networkAdmin
    • Sicherheitsadministrator: compute.securityAdmin
    • Compute-Administrator: compute.admin

    Weitere Informationen zu den Zwecken dieser Rollen finden Sie unter IAM-Rollen für netzwerkbezogene Jobfunktionen.

HA-VPN-Gateway und Cloud Router in Google Cloud erstellen

In diesem Abschnitt erstellen Sie ein VPC-Netzwerk, ein HA-VPN-Gateway und einen Cloud Router in Google Cloud.

  1. Achten Sie darauf, dass Sie in Cloud Shell in dem Google Cloud-Projekt arbeiten, das Sie erstellt oder ausgewählt haben.

    gcloud config set project YOUR_PROJECT_ID
    
    export PROJECT_ID=`gcloud config list --format="value(core.project)"`

    Ersetzen Sie YOUR_PROJECT_ID durch Ihre Google Cloud-Projekt-ID.

  2. Verwenden Sie zum Erstellen eines benutzerdefinierten VPC-Netzwerk mit einem einzelnen Subnetz den Befehl gcloud compute networks create:

    gcloud compute networks create NETWORK \
        --subnet-mode SUBNET_MODE \
        --bgp-routing-mode BGP_ROUTING_MODE

    Ersetzen Sie Folgendes:

    Mit dem folgenden Befehl wird beispielsweise ein benutzerdefiniertes VPC-Netzwerk mit dem Namen gc-vpc mit einem einzelnen Subnetz erstellt:

    gcloud compute networks create gc-vpc \
        --subnet-mode custom \
        --bgp-routing-mode global
    
  3. Verwenden Sie den Befehl gcloud compute networks subnets create, um ein Subnetz zum Hosten der Test-VMs zu erstellen:

    gcloud compute networks subnets create SUBNET_NAME \
        --network NETWORK \
        --region SUBNET_REGION \
        --range IP_ADDRESS_RANGE

    Ersetzen Sie Folgendes:

    • SUBNET_NAME: Der Subnetzname
    • SUBNET_REGION: Die Region, in der das Subnetz erstellt werden soll
    • IP_ADDRESS_RANGE: Der IP-Adressbereich für das Subnetz

      Mit dem folgenden Befehl wird beispielsweise ein Subnetz mit dem Namen subnet-east4 im VPC-Netzwerk gc-vpc erstellt.

    gcloud compute networks subnets create subnet-east4  \
        --network gc-vpc \
        --region us-east4 \
        --range 10.1.1.0/24
    
  4. Verwenden Sie den Befehl gcloud compute vpn-gateways create, um ein HA VPN-Gateway zu erstellen:

    gcloud compute vpn-gateways create HA_VPN_GATEWAY_NAME \
        --network NETWORK \
        --region REGION

    Ersetzen Sie HA_VPN_GATEWAY_NAME durch den Namen für das HA-VPN-Gateway.

  5. Verwenden Sie zum Erstellen eines Cloud Router den Befehl gcloud compute routers create:

    gcloud compute routers create ROUTER_NAME \
        --region REGION \
        --network NETWORK \
        --asn GOOGLE_ASN \
        --advertisement-mode custom \
        --set-advertisement-groups all_subnets

    Ersetzen Sie Folgendes:

    • ROUTER_NAME: Der Name für Ihren Cloud Router.
    • GOOGLE_ASN: Die private ASN (autonome Systemnummer) für den Cloud Router, den Sie erstellen. Dies kann eine beliebige private ASN im Bereich 64512-65534 oder 4200000000-4294967294 sein, die Sie nicht bereits als Peer-ASN in derselben Region und demselben Netzwerk verwenden.

    Mit dem folgenden Befehl wird beispielsweise ein Cloud Router mit dem Namen cloud-router erstellt.

    gcloud compute routers create cloud-router \
        --region us-east4 \
        --network gc-vpc \
        --asn 65534 \
        --advertisement-mode custom \
        --set-advertisement-groups all_subnets
    

Wenn Sie ein VPN-Gateway mit zwei Schnittstellen erstellen möchten, notieren Sie sich die externen IP-Adressen. Sie benötigen diese Adressen, wenn Sie Ihre Umgebung auf AWS-Seite einrichten.

Gateways und VPN-Verbindungen in AWS erstellen

In diesem Abschnitt erstellen Sie Kunden-Gateways, ein Ziel-Gateway und VPN-Verbindungen mit dynamischem Routing.

Sie führen AWS-Befehle über die AWS-Befehlszeile aus.

  1. Verwenden Sie den Befehl create-customer-gateway AWS CLI, um mit dem folgenden AWS-Befehl zwei Kunden-Gateways zu erstellen:

    aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_0_IP_ADDRESS --bgp-asn GOOGLE_ASN
    
    aws ec2 create-customer-gateway --type ipsec.1 --public-ip INTERFACE_1_IP_ADDRESS --bgp-asn GOOGLE_ASN

    Ersetzen Sie INTERFACE_0_IP_ADDRESS und INTERFACE_1_IP_ADDRESS durch die externen IP-Adressen aus dem letzten Schritt im vorherigen Abschnitt.

  2. So erstellen Sie ein Ziel-Gateway und hängen es an Ihre Amazon VPC an:

    Das Ziel-Gateway kann ein virtuelles privates Gateway oder ein Transit-Gateway sein. Weitere Informationen finden Sie unter Ziel-Gateway erstellen.

    Virtuelles privates Gateway

    1. Erstellen Sie mit dem AWS CLI-Befehl create-vpn-gateway ein virtuelles privates Gateway mit einer bestimmten AWS-seitigen ASN:

      aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn AWS_SIDE_ASN

      Ersetzen Sie AWS_SIDE_ASN durch die ASN für die AWS-Seite.

      Dieser Befehl sollte in etwa wie das folgende Beispiel aussehen:

      aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
      
    2. Hängen Sie das virtuelle private Gateway mit dem AWS CLI-Befehl attach-vpn-gateway an Ihr VPC-Netzwerk an:

      aws ec2 attach-vpn-gateway --vpn-gateway-id VPN_GATEWAY_ID --vpc-id VPC_ID

    Transit-Gateway

    1. Erstellen Sie ein Transit-Gateway mit dem AWS-Befehl create-transit-gateway:

      aws ec2 create-transit-gateway --description TRANSIT_GATEWAY_DESCRIPTION \
          --options=AmazonSideAsn=65001,AutoAcceptSharedAttachments=enable,DefaultRouteTableAssociation=enable,DefaultRouteTablePropagation=enable,VpnEcmpSupport=enable,DnsSupport=enable

      Ersetzen Sie TRANSIT_GATEWAY_DESCRIPTION durch eine Beschreibung für Ihr Transit-Gateway.

    2. Hängen Sie Ihr VPC-Netzwerk mit dem Befehl create-transit-gateway-vpc-attachment der AWS-Befehlszeile an das Transit-Gateway an:

      aws ec2 create-transit-gateway-vpc-attachment \
          --transit-gateway-id TRANSIT_GATEWAY_ID \
          --vpc-id VPC_ID \
          --subnet-ids "SUBNET_ID"

      Ersetzen Sie Folgendes:

      • TRANSIT_GATEWAY_ID: Die ID des Transit-Gateways
      • VPC_ID: Die ID der VPC
      • SUBNET_ID: Die IDs eines oder mehrerer Subnetze
  3. So erstellen Sie eine VPN-Verbindung mit dynamischem Routing:

    Die Methode zum Erstellen einer VPN-Verbindung mit dynamischem Routing unterscheidet sich je nachdem, ob Ihr Ziel-Gateway ein virtuelles privates Gateway oder ein Transit-Gateway ist. Weitere Informationen finden Sie unter VPN-Verbindung erstellen.

    Virtuelles privates Gateway

    Erstellen Sie eine VPN-Verbindung mit dynamischem Routing zwischen dem virtuellen privaten Gateway und dem Kunden-Gateway und wenden Sie Tags auf die VPN-Verbindung an:

        aws ec2 create-vpn-connection \
            --type ipsec.1 \
            --customer-gateway-id CUSTOMER_GATEWAY_1 \
            --vpn-gateway-id VPN_GATEWAY_ID \
            --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]'
    
        aws ec2 create-vpn-connection \
            --type ipsec.1 \
            --customer-gateway-id CUSTOMER_GATEWAY_2 \
            --vpn-gateway-id VPN_GATEWAY_ID \
            --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'

    Ersetzen Sie Folgendes:

    • CUSTOMER_GATEWAY_1: Google Cloud-VPN-Gateway, Schnittstelle 0
    • CUSTOMER_GATEWAY_2: Google Cloud-VPN-Gateway, Schnittstelle 1
    • AWS_T1_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1
    • AWS_T2_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2
    • AWS_T3_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1
    • AWS_T4_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2
    • SHARED_SECRET_1: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 1
    • SHARED_SECRET_2: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 2
    • SHARED_SECRET_3: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 1
    • SHARED_SECRET_4: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 2

    Transit-Gateway

    Erstellen Sie eine VPN-Verbindung mit dynamischem Routing zwischen dem Transit-Gateway und den Kunden-Gateways:

    aws ec2 create-vpn-connection \
        --type ipsec.1 \
        --customer-gateway-id CUSTOMER_GATEWAY_1 \
        --transit-gateway-id TRANSIT_GATEWAY_ID \
        --options TunnelOptions='[{TunnelInsideCidr=AWS_T1_IP,PreSharedKey=SHARED_SECRET_1},{TunnelInsideCidr=AWS_T2_IP,PreSharedKey=SHARED_SECRET_2}]'
    
    aws ec2 create-vpn-connection \
        --type ipsec.1 \
        --customer-gateway-id CUSTOMER_GATEWAY_2 \
        --transit-gateway-id TRANSIT_GATEWAY_ID \
        --options TunnelOptions='[{TunnelInsideCidr=AWS_T3_IP,PreSharedKey=SHARED_SECRET_3},{TunnelInsideCidr=AWS_T4_IP,PreSharedKey=SHARED_SECRET_4}]'

    Dabei gilt:

    • CUSTOMER_GATEWAY_1: Google Cloud-VPN-Gateway, Schnittstelle 0
    • CUSTOMER_GATEWAY_2: Google Cloud-VPN-Gateway, Schnittstelle 1
    • TRANSIT_GATEWAY_ID: Die ID des Transit-Gateways, das mit der VPN-Verbindung verknüpft ist
    • AWS_T1_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1
    • AWS_T2_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2
    • AWS_T3_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1
    • AWS_T4_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2
    • SHARED_SECRET_1: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 1
    • SHARED_SECRET_2: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 2
    • SHARED_SECRET_3: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 1
    • SHARED_SECRET_4: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 2
    • CUSTOMER_GATEWAY_1: Google Cloud-VPN-Gateway, Schnittstelle 0
    • CUSTOMER_GATEWAY_2: Google Cloud-VPN-Gateway, Schnittstelle 1
    • TRANSIT_GATEWAY_ID: Die ID des Transit-Gateways, das mit der VPN-Verbindung verknüpft ist
    • AWS_T1_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1
    • AWS_T2_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2
    • AWS_T3_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1
    • AWS_T4_IP: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2
    • SHARED_SECRET_1: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 1
    • SHARED_SECRET_2: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 2
    • SHARED_SECRET_3: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 1
    • SHARED_SECRET_4: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 2

    AWS reserviert einige CIDR-Bereiche, sodass Sie keine Werte in diesen Bereichen als interne IP-Adressen verwenden können (AWS_T1_IP, AWS_T2_IP, AWS_T3_IP, AWS_T4_IP). Weitere Informationen darüber, welche CIDR-Blöcke AWS-Reservierungen blockieren, finden Sie unter Tunneloptionen für Ihre Site-to-Site-VPN-Verbindung.

    Mit diesen Befehlen erstellen Sie vier Tunnel zu Google Cloud.

  4. Laden Sie die Konfigurationsdateie für die beiden VPN-Verbindungen herunter.

    In den nächsten Schritten verwenden Sie Werte aus der heruntergeladenen Konfigurationsdatei, um Ressourcen auf der Google Cloud-Seite zu erstellen und zu konfigurieren.

VPN-Tunnel und Cloud Router-Schnittstellen in Google Cloud erstellen

In diesem Abschnitt verwenden Sie die Informationen aus der im vorherigen Abschnitt erstellten AWS-VPN-Verbindung, um ein externes VPN-Gateway, VPN-Tunnel und Cloud Router-Schnittstellen in Google Cloud zu erstellen.

Wenn Sie Cloud VPN-Tunnel zu AWS konfigurieren, müssen Sie das IKEv2-Protokoll verwenden und nur einen IKE-Chiffrensatz auswählen, um eine erfolgreiche Tunneleinrichtung zu ermöglichen. Wählen Sie beispielsweise einen Verschlüsselungsalgorithmus, einen Integritätsalgorithmus und eine Diffie-Hellman-Gruppe (DH-Gruppe) für Phase 1 und Phase 2 aus. Die Standard-AWS-Transform-Sets erstellen eine große Sicherheitsverknüpfungsnutzlast (SA), was zu einer IP-Fragmentierung von IKE-Paketen führen kann. Cloud VPN unterstützt keine fragmentierten IKE-Pakete.

  1. Erstellen Sie in Cloud Shell ein externes VPN-Gateway mit vier Schnittstellen für externe AWS-IP-Adressen.

    Bevor Sie das externe VPN-Gateway erstellen, prüfen Sie, ob die externen IP-Adressen von AWS mit den Werten in der heruntergeladenen Konfigurationsdatei übereinstimmen. Sie können diese IP-Adressen nicht mehr ändern, nachdem Sie das externe VPN-Gateway erstellt haben. Wenn die Adressen nicht übereinstimmen, kann die HA VPN-Tunnelverbindung nicht hergestellt werden.

    gcloud compute external-vpn-gateways create PEER_GATEWAY_NAME --interfaces \
      0=AWS_GW_IP_1,1=AWS_GW_IP_2,2=AWS_GW_IP_3,3=AWS_GW_IP_4

    Ersetzen Sie Folgendes:

    • AWS_GW_IP_1: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1
    • AWS_GW_IP_2: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2
    • AWS_GW_IP_3: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1
    • AWS_GW_IP_4: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2
  2. Erstellen Sie vier VPN-Tunnel.

    • Tunnel 1:

      gcloud compute vpn-tunnels create tunnel-1 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 0 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_1 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 0
    • Tunnel 2:

      gcloud compute vpn-tunnels create tunnel-2 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 1 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_2 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 0
    • Tunnel 3:

      gcloud compute vpn-tunnels create tunnel-3 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 2 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_3 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 1
    • Tunnel 4:

      gcloud compute vpn-tunnels create tunnel-4 \
          --peer-external-gateway PEER_GATEWAY_NAME \
          --peer-external-gateway-interface 3 \
          --region REGION \
          --ike-version 2 \
          --shared-secret SHARED_SECRET_4 \
          --router ROUTER_NAME \
          --vpn-gateway HA_VPN_GATEWAY_NAME \
          --interface 1

      Ersetzen Sie Folgendes:

  3. Erstellen Sie vier Cloud Router-Schnittstellen:

    Ersetzen Sie in den folgenden Befehlen jeden GOOGLE_BGP_IP_TUNNEL-Platzhalter durch die IP-Adresse des Tunnels auf der Google Cloud-Seite. Sie finden die Werte in den AWS-VPN-Konfigurationsdateien als Kunden-Gateway-Adresse für jeden Tunnel. Jede dieser Adressen muss sich im CIDR-Bereich /30 innerhalb des Netzwerkbereichs 169.254.0.0/16 befinden.

    • Cloud Router-Schnittstelle 1:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-1 \
          --vpn-tunnel tunnel-1 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_1 \
          --mask-length 30 \
          --region REGION
    • Cloud Router-Schnittstelle 2:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-2 \
          --vpn-tunnel tunnel-2 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_2 \
          --mask-length 30 \
          --region REGION
    • Cloud Router-Schnittstelle 3:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-3 \
          --vpn-tunnel tunnel-3 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_3 \
          --mask-length 30 \
          --region REGION
    • Cloud Router-Schnittstelle 4:

      gcloud compute routers add-interface ROUTER_NAME \
          --interface-name int-4 \
          --vpn-tunnel tunnel-4 \
          --ip-address GOOGLE_BGP_IP_TUNNEL_4 \
          --mask-length 30 \
          --region REGION
  4. Fügen Sie BGP-Peers hinzu.

    Ersetzen Sie in den folgenden Befehlen PEER_ASN durch die ASN für die AWS-Seite der BGP-Sitzung.

    • AWS-Verbindung 1, Tunnel 1:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn1-tunn1 \
          --peer-asn PEER_ASN \
          --interface int-1 \
          --peer-ip-address AWS_T1_IP \
          --region REGION
    • AWS-Verbindung 1, Tunnel 2:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn1-tunn2 \
          --peer-asn PEER_ASN \
          --interface int-2 \
          --peer-ip-address AWS_T2_IP \
          --region REGION
    • AWS-Verbindung 2, Tunnel 1:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn2-tunn1 \
          --peer-asn PEER_ASN \
          --interface int-3 \
          --peer-ip-address AWS_T3_IP \
          --region REGION
    • AWS-Verbindung 2, Tunnel 2:

      gcloud compute routers add-bgp-peer ROUTER_NAME \
          --peer-name aws-conn2-tunn2 \
          --peer-asn PEER_ASN \
          --interface int-4 \
          --peer-ip-address AWS_T4_IP \
          --region REGION

Konfiguration prüfen

  1. Prüfen Sie in Cloud Shell den Status des Cloud Routers:

    gcloud compute routers get-status ROUTER_NAME \
        --region REGION \
        --format='flattened(result.bgpPeerStatus[].name, result.bgpPeerStatus[].ipAddress, result.bgpPeerStatus[].peerIpAddress)'

    Die Ausgabe sieht etwa so aus:

    result.bgpPeerStatus[].peerIpAddress)'
    result.bgpPeerStatus[0].ipAddress:     169.254.171.18
    result.bgpPeerStatus[0].name:          aws-conn1-tunn1
    result.bgpPeerStatus[0].peerIpAddress: 169.254.171.17
    result.bgpPeerStatus[1].ipAddress:     169.254.156.154
    result.bgpPeerStatus[1].name:          aws-conn1-tunn2
    result.bgpPeerStatus[1].peerIpAddress: 169.254.156.153
    result.bgpPeerStatus[2].ipAddress:     169.254.123.38
    result.bgpPeerStatus[2].name:          aws-conn2-tunn1
    result.bgpPeerStatus[2].peerIpAddress: 169.254.123.37
    result.bgpPeerStatus[3].ipAddress:     169.254.48.186
    result.bgpPeerStatus[3].name:          aws-conn2-tunn2
    result.bgpPeerStatus[3].peerIpAddress: 169.254.48.185
    
  2. Listen Sie alle Tunnel auf:

    gcloud compute vpn-tunnels list

    Die Ausgabe sieht etwa so aus:

    NAME      REGION    GATEWAY    PEER_ADDRESS
    tunnel-1  us-east4  ha-vpn-gw  34.205.x.x
    tunnel-2  us-east4  ha-vpn-gw  52.203.x.x
    tunnel-3  us-east4  ha-vpn-gw  3.208.x.x
    tunnel-4  us-east4  ha-vpn-gw  52.204.x.x
    
  3. Prüfen Sie den Tunnelstatus:

    gcloud compute vpn-tunnels describe tunnel-1 \
         --region REGION \
         --format='flattened(status,detailedStatus)'

    Die Ausgabe sieht etwa so aus:

    detailed_status: Tunnel is up and running.
    status:          ESTABLISHED
    
  4. Listen Sie die von Cloud Router erlernten dynamischen Routen auf:

    gcloud compute routers get-status ROUTER_NAME \
        --region REGION \
        --format="flattened(result.bestRoutes)"

    Die Ausgabe sieht in etwa so aus:

    result.bestRoutes[0].creationTimestamp: 2021-01-19T20:42:07.366-08:00
    result.bestRoutes[0].destRange:         10.2.2.0/24
    result.bestRoutes[0].kind:              compute#route
    result.bestRoutes[0].nextHopIp:         169.254.171.17
    result.bestRoutes[0].priority:          100
    result.bestRoutes[1].creationTimestamp: 2021-01-19T20:42:07.366-08:00
    result.bestRoutes[1].destRange:         10.2.2.0/24
    result.bestRoutes[1].kind:              compute#route
    result.bestRoutes[1].nextHopIp:         169.254.156.153
    result.bestRoutes[1].priority:          100
    result.bestRoutes[2].creationTimestamp: 2021-01-19T20:56:26.588-08:00
    result.bestRoutes[2].destRange:         10.2.2.0/24
    result.bestRoutes[2].kind:              compute#route
    result.bestRoutes[2].nextHopIp:         169.254.123.37
    result.bestRoutes[2].priority:          100
    result.bestRoutes[3].creationTimestamp: 2021-01-19T20:56:26.588-08:00
    result.bestRoutes[3].destRange:         10.2.2.0/24
    result.bestRoutes[3].kind:              compute#route
    result.bestRoutes[3].nextHopIp:         169.254.48.185
    result.bestRoutes[3].priority:          100
    

VPN-Verbindung testen

  1. Erstellen Sie Test-VMs auf jeder Seite der Tunnel, um Ping-Anfragen zu testen.

    Achten Sie darauf, dass VPC-Firewallregeln vorhanden sind, um ICMP-Traffic zuzulassen.

  2. Testen Sie die Verbindung mit dem Befehl ping.

    1. Wenn der ping-Test fehlschlägt, sehen Sie sich die Logs in Google Cloud und die AWS-Logs für standortübergreifende VPNs an. Fehlermeldungen in den Protokollen können Ihnen helfen, das Problem zu identifizieren. Informationen zur Fehlerbehebung bei VPN-Verbindungen finden Sie in den folgenden Ressourcen:
  3. Messen Sie die Bandbreite zwischen den Testmaschinen mit iperf.

    • Serverseite:

      iperf3 -s
    • Clientseite:

      iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

Bereinigen

Löschen Sie die Google Cloud- und AWS-Ressourcen, die Sie in dieser Anleitung erstellt haben.

Google Cloud-Projekt löschen

Damit Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen nicht in Rechnung gestellt werden, können Sie Ihr Projekt löschen:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

AWS-Ressourcen löschen

  1. Site-to-Site-VPN-Verbindung löschen
  2. Transit-Gateway löschen
  3. Amazon EC2-Instanzen beenden

Nächste Schritte