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:
Transit-Gateway: Wenn Sie das AWS-Transit-Gateway ohne BGP-Einstellung erstellen, verteilt ECMP den Traffic gleichmäßig auf aktive Tunnel.
Wenn Sie die VPN-Verbindung für mehrere Google Virtual Private Cloud-Netzwerke verwenden möchten, verwenden Sie ein VPC-Verbindungsnetzwerk, um eine Hub-and-Spoke-Architektur mit mehreren VPC-Netzwerken zu skalieren.
Weitere Informationen zu AWS-Transit-Gateways finden Sie unter Was sind Amazon VPC-Transit-Gateways?.
Virtuelles privates Gateway: Wenn Sie ein virtuelles privates AWS-Gateway verwenden, wird nur ein Tunnel für alle Verbindungen des Gateways ausgewählt. Wenn Sie mehrere Tunnel verwenden möchten, sollten Sie stattdessen ein AWS-Transit-Gateway verwenden, damit ECMP (Equal Cost Multipath) verfügbar ist.
Weitere Informationen zur VPN-Routenpriorität mit AWS finden Sie unter Site-to-Site-VPN-Routing-Optionen.
Weitere Informationen zu virtuellen privaten Gateways von AWS finden Sie unter Tunneloptionen für Ihre Site-to-Site-VPN-Verbindung.
Im folgenden Diagramm sehen Sie die Architektur.
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
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
-
In the Google Cloud console, activate Cloud Shell.
-
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.
- Netzwerkadministrator:
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.
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.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:
NETWORK
: Der Name des NetzwerksSUBNET_MODE
: Der SubnetzmodusBGP_ROUTING_MODE
: Der BGP-Routingmodus
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
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 SubnetznameSUBNET_REGION
: Die Region, in der das Subnetz erstellt werden sollIP_ADDRESS_RANGE
: Der IP-Adressbereich für das SubnetzMit dem folgenden Befehl wird beispielsweise ein Subnetz mit dem Namen
subnet-east4
im VPC-Netzwerkgc-vpc
erstellt.
gcloud compute networks subnets create subnet-east4 \ --network gc-vpc \ --region us-east4 \ --range 10.1.1.0/24
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.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 Bereich64512-65534
oder4200000000-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.
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
undINTERFACE_1_IP_ADDRESS
durch die externen IP-Adressen aus dem letzten Schritt im vorherigen Abschnitt.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
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
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
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.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-GatewaysVPC_ID
: Die ID der VPCSUBNET_ID
: Die IDs eines oder mehrerer Subnetze
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 0CUSTOMER_GATEWAY_2
: Google Cloud-VPN-Gateway, Schnittstelle 1AWS_T1_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1AWS_T2_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2AWS_T3_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1AWS_T4_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2SHARED_SECRET_1
: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 1SHARED_SECRET_2
: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 2SHARED_SECRET_3
: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 1SHARED_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 0CUSTOMER_GATEWAY_2
: Google Cloud-VPN-Gateway, Schnittstelle 1TRANSIT_GATEWAY_ID
: Die ID des Transit-Gateways, das mit der VPN-Verbindung verknüpft istAWS_T1_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1AWS_T2_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2AWS_T3_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1AWS_T4_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2SHARED_SECRET_1
: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 1SHARED_SECRET_2
: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 2SHARED_SECRET_3
: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 1SHARED_SECRET_4
: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 2CUSTOMER_GATEWAY_1
: Google Cloud-VPN-Gateway, Schnittstelle 0CUSTOMER_GATEWAY_2
: Google Cloud-VPN-Gateway, Schnittstelle 1TRANSIT_GATEWAY_ID
: Die ID des Transit-Gateways, das mit der VPN-Verbindung verknüpft istAWS_T1_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 1AWS_T2_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2AWS_T3_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1AWS_T4_IP
: Interne IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 2SHARED_SECRET_1
: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 1SHARED_SECRET_2
: Vorinstallierter Schlüssel für Verbindung 1, Tunnel 2SHARED_SECRET_3
: Vorinstallierter Schlüssel für Verbindung 2, Tunnel 1SHARED_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.
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.
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 1AWS_GW_IP_2
: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 1, Tunnel 2AWS_GW_IP_3
: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 1AWS_GW_IP_4
: Externe IP-Adresse für virtuelles privates Gateway für Verbindung 2, Tunnel 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:
PEER_GATEWAY_NAME
: der Name des externen Peer-Gateways, das Sie in Schritt 1 erstellt habenREGION
: die Google Cloud-Region, in der Sie den Tunnel erstellenSHARED_SECRET
: Ihr vorinstallierter Schlüssel (PSK), der dem vorinstallierten Schlüssel für den Partnertunnel entsprechen muss, den Sie auf dem Peer-Gateway erstellen. Informationen zum Generieren eines starken vorinstallierten Schlüssels finden Sie unter Starken vorinstallierten Schlüssel generieren.ROUTER_NAME
: Der Name des Cloud Router-Gateways, das Sie im Abschnitt HA-HA VPN-Gateway und Cloud Router in Google Cloud erstellen erstellt haben.HA_VPN_GATEWAY_NAME
: der Name des HA VPN-Gateways, das Sie im Abschnitt HA VPN-Gateway und Cloud Router in Google Cloud erstellen erstellt haben.
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 Netzwerkbereichs169.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
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
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
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
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
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
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.
Eine Anleitung zum Erstellen von Compute Engine-VMs finden Sie unter Compute Engine-Instanz erstellen und starten.
Eine Anleitung zum Erstellen von EC2-Instanzen in AWS finden Sie unter Amazon EC2-Instanz starten.
Testen Sie die Verbindung mit dem Befehl
ping
.- 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:
- Wenn der
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:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
AWS-Ressourcen löschen
Nächste Schritte
- Mehr über Google Cloud VPN erfahren
- Mehr über Best Practices und Referenzarchitekturen für das VPC-Design erfahren