Creare connessioni VPN ad alta disponibilità tra Google Cloud e AWS

Questo tutorial mostra come creare connessioni VPN ad alta disponibilità tra Google Cloud e Amazon Web Services (AWS) per la comunicazione diretta tra le reti VPC delle due piattaforme cloud.

Questo tutorial presuppone che tu abbia familiarità con i concetti di base delle reti Virtual Private Cloud (VPC), del protocollo BGP (Border Gateway Protocol), delle reti private virtuali (VPN) e dei tunnel IPsec.

Google Cloud fornisce un servizio di VPN ad alta disponibilità molto affidabile per connettere la tua rete VPC a ambienti esterni a Google Cloud, ad esempio on-premise o su AWS, tramite una connessione VPN IPsec. La VPN ad alta disponibilità offre uno SLA con una disponibilità del servizio del 99,99% se configurata in base alle best practice di Google. Per ulteriori informazioni, consulta l'Accordo sul livello del servizio (SLA) di Cloud VPN.

Panoramica dell'architettura

L'architettura descritta in questa pagina include i seguenti componenti:

  • Cloud Router: un servizio Google Cloud completamente distribuito e gestito per fornire il routing dinamico utilizzando BGP per le reti VPC.
  • Gateway VPN ad alta disponibilità: un gateway VPN gestito da Google in esecuzione su Google Cloud. Ogni gateway VPN ad alta disponibilità è una risorsa regionale con due interfacce, ciascuna con i propri indirizzi IP esterni: interfaccia 0 e 1.
  • Tunnel VPN: connessioni dal gateway VPN ad alta disponibilità al gateway VPN peer su AWS attraverso cui passa il traffico criptato.
  • Gateway VPN peer: due endpoint VPN site-to-site AWS, che possono provenire da un gateway privato virtuale AWS o da un gateway di transito AWS. Per ulteriori informazioni, consulta Che cos'è AWS Site-to-Site VPN?

Ognuna delle connessioni del gateway VPN peer è dotata di due tunnel preconfigurati per puntare a un singolo gateway del cliente, che in questo caso è un'interfaccia VPN ad alta disponibilità di Google Cloud. Con questa configurazione, il numero minimo di tunnel per soddisfare lo SLA con disponibilità del servizio del 99,99% è quattro.

Le opzioni di routing e la larghezza di banda combinata sui tunnel VPN variano in base all'opzione VPN site-to-site utilizzata lato AWS:

Il seguente diagramma mostra l'architettura.

Panoramica dell'architettura.

Obiettivi

  • Crea una rete VPC su Google Cloud.
  • Crea un gateway VPN ad alta disponibilità e un router Cloud su Google Cloud.
  • Crea gateway dei clienti su AWS.
  • Crea una connessione VPN con routing dinamico su AWS.
  • Crea un gateway VPN e tunnel VPN esterni su Google Cloud.
  • Verifica e testa la connessione VPN tra le reti VPC su Google Cloud e AWS.

Modulo Terraform di esempio

Puoi utilizzare il modulo gcp-to-aws-ha-vpn-terraform-module per eseguire il provisioning della VPN ad alta disponibilità tra Google Cloud e AWS.

Costi

Questo tutorial utilizza i componenti fatturabili di Google Cloud, tra cui:

Per una stima dei costi dei componenti di Google Cloud, utilizza il Calcolatore prezzi di Google Cloud.

Questo tutorial utilizza i componenti fatturabili di Amazon Web Services, tra cui:

  • AWS Transit Gateway
  • VPN site-to-site AWS

Per una stima dei costi dei componenti AWS, utilizza il Calcolatore prezzi AWS.

Prima di iniziare

  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. Assicurati di disporre dei ruoli amministrativi richiesti per configurare i componenti di rete:

    • Amministratore di rete: compute.networkAdmin
    • Amministratore sicurezza: compute.securityAdmin
    • Amministratore Compute: compute.admin

    Per ulteriori informazioni sulle finalità di questi ruoli, consulta Ruoli IAM per mansioni relative al networking.

Crea il gateway VPN ad alta disponibilità e il router Cloud su Google Cloud

In questa sezione, crei una rete VPC, un gateway VPN ad alta disponibilità e un router Cloud su Google Cloud.

  1. In Cloud Shell, assicurati di lavorare nel progetto Google Cloud che hai creato o selezionato.

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

    Sostituisci YOUR_PROJECT_ID con il tuo ID progetto Google Cloud.

  2. Per creare una rete VPC personalizzata con una singola subnet, utilizza il comando gcloud compute networks create:

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

    Sostituisci quanto segue:

    Ad esempio, il seguente comando crea una rete VPC personalizzata denominata gc-vpc con una singola subnet:

    gcloud compute networks create gc-vpc \
        --subnet-mode custom \
        --bgp-routing-mode global
    
  3. Per creare una subnet per ospitare le VM di test, utilizza il comando gcloud compute networks subnets create:

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

    Sostituisci quanto segue:

    • SUBNET_NAME: il nome della subnet
    • SUBNET_REGION: la regione in cui creare la subnet
    • IP_ADDRESS_RANGE: l'intervallo di indirizzi IP per la subnet

      Ad esempio, il seguente comando crea una subnet denominata subnet-east4 nella rete VPC gc-vpc.

    gcloud compute networks subnets create subnet-east4  \
        --network gc-vpc \
        --region us-east4 \
        --range 10.1.1.0/24
    
  4. Per creare un gateway VPN ad alta disponibilità, utilizza il comando gcloud compute vpn-gateways create:

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

    Sostituisci HA_VPN_GATEWAY_NAME con il nome del gateway VPN ad alta disponibilità.

  5. Per creare un router Cloud, utilizza il comando 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

    Sostituisci quanto segue:

    • ROUTER_NAME: il nome del router Cloud
    • GOOGLE_ASN: l'ASN (numero di sistema autonomo) privato per il router Cloud che stai creando. Può essere qualsiasi ASN privato nell'intervallo 64512-65534 o 4200000000-4294967294 che non stai già utilizzando come ASN peer nella stessa regione e nella stessa rete.

    Ad esempio, il seguente comando crea un router cloud denominato cloud-router.

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

Per creare un gateway VPN con due interfacce, prendi nota degli indirizzi IP esterni. Ti serviranno questi indirizzi quando configuri l'ambiente sul lato AWS.

Creare gateway e connessioni VPN su AWS

In questa sezione crei gateway dei clienti, un gateway di destinazione e connessioni VPN con routing dinamico.

Esegui i comandi AWS utilizzando l'interfaccia a riga di comando AWS.

  1. Per creare due gateway dei clienti utilizzando il seguente comando AWS, utilizza il comando AWS CLI create-customer-gateway:

    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

    Sostituisci INTERFACE_0_IP_ADDRESS e INTERFACE_1_IP_ADDRESS con gli indirizzi IP esterni del passaggio finale della sezione precedente.

  2. Per creare un gateway di destinazione e collegarlo alla tua VPC Amazon, segui questi passaggi:

    Il gateway di destinazione può essere un gateway privato virtuale o un gateway di transito. Per ulteriori informazioni, consulta Creare un gateway di destinazione.

    Virtual Private Gateway

    1. Crea un gateway privato virtuale con un ASN specifico lato AWS utilizzando il create-vpn-gateway comando AWS CLI:

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

      Sostituisci AWS_SIDE_ASN con l'ASN per il lato AWS.

      Questo comando dovrebbe essere simile all'esempio seguente:

      aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn 65001
      
    2. Collega il gateway privato virtuale alla tua rete VPC utilizzando il attach-vpn-gateway comando AWS CLI:

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

    Transit gateway

    1. Crea un gateway di transito utilizzando il create-transit-gateway comando AWS CLI:

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

      Sostituisci TRANSIT_GATEWAY_DESCRIPTION con una descrizione per il tuo gateway per il trasporto pubblico.

    2. Collega la rete VPC al gateway di transito utilizzando il comando create-transit-gateway-vpc-attachment AWS CLI:

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

      Sostituisci quanto segue:

      • TRANSIT_GATEWAY_ID: l'ID del gateway per il trasporto pubblico
      • VPC_ID: l'ID della VPC
      • SUBNET_ID: gli ID di una o più subnet
  3. Per creare una connessione VPN con routing dinamico:

    Il metodo per creare una connessione VPN con routing dinamico varia a seconda che il gateway di destinazione sia un gateway privato virtuale o un gateway di transito. Per ulteriori informazioni, consulta Creare una connessione VPN.

    Virtual Private Gateway

    Crea una connessione VPN con routing dinamico tra il gateway privato virtuale e i gateway dei clienti e applica i tag alla connessione VPN:

        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}]'

    Sostituisci quanto segue:

    • CUSTOMER_GATEWAY_1: gateway VPN Google Cloud, interfaccia 0
    • CUSTOMER_GATEWAY_2: gateway VPN Google Cloud, interfaccia 1
    • AWS_T1_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 1, tunnel 1
    • AWS_T2_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 1, tunnel 2
    • AWS_T3_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 2, tunnel 1
    • AWS_T4_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 2, tunnel 2
    • SHARED_SECRET_1: chiave precondivisa per la connessione 1, tunnel 1
    • SHARED_SECRET_2: chiave precondivisa per la connessione 1, tunnel 2
    • SHARED_SECRET_3: chiave precondivisa per la connessione 2, tunnel 1
    • SHARED_SECRET_4: chiave precondivisa per la connessione 2, tunnel 2

    Transit gateway

    Crea una connessione VPN con routing dinamico tra il gateway di transito e i gateway dei clienti:

    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}]'

    Sostituisci quanto segue:

    • CUSTOMER_GATEWAY_1: gateway VPN Google Cloud, interfaccia 0
    • CUSTOMER_GATEWAY_2: gateway VPN Google Cloud, interfaccia 1
    • TRANSIT_GATEWAY_ID: l'ID del gateway di transito associato alla connessione VPN
    • AWS_T1_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 1, tunnel 1
    • AWS_T2_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 1, tunnel 2
    • AWS_T3_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 2, tunnel 1
    • AWS_T4_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 2, tunnel 2
    • SHARED_SECRET_1: chiave precondivisa per la connessione 1, tunnel 1
    • SHARED_SECRET_2: chiave precondivisa per la connessione 1, tunnel 2
    • SHARED_SECRET_3: chiave precondivisa per la connessione 2, tunnel 1
    • SHARED_SECRET_4: chiave precondivisa per la connessione 2, tunnel 2
    • CUSTOMER_GATEWAY_1: gateway VPN Google Cloud, interfaccia 0
    • CUSTOMER_GATEWAY_2: gateway VPN Google Cloud, interfaccia 1
    • TRANSIT_GATEWAY_ID: l'ID del gateway di transito associato alla connessione VPN
    • AWS_T1_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 1, tunnel 1
    • AWS_T2_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 1, tunnel 2
    • AWS_T3_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 2, tunnel 1
    • AWS_T4_IP: indirizzo IP interno per il gateway privato virtuale per la connessione 2, tunnel 2
    • SHARED_SECRET_1: chiave precondivisa per la connessione 1, tunnel 1
    • SHARED_SECRET_2: chiave precondivisa per la connessione 1, tunnel 2
    • SHARED_SECRET_3: chiave precondivisa per la connessione 2, tunnel 1
    • SHARED_SECRET_4: chiave precondivisa per la connessione 2, tunnel 2

    AWS riserva alcuni intervalli CIDR, pertanto non puoi utilizzare i valori di questi intervalli come indirizzi IP interni (AWS_T1_IP,AWS_T2_IP, AWS_T3_IP,AWS_T4_IP). Per informazioni sui blocchi CIDR riservati da AWS, consulta Opzioni di tunnel per la connessione VPN site-to-site.

    Utilizza questi comandi per creare quattro tunnel per Google Cloud.

  4. Scarica il file di configurazione per le due connessioni VPN.

    Nei passaggi successivi, utilizzerai i valori del file di configurazione che hai scaricato per creare e configurare le risorse sul lato Google Cloud.

Crea tunnel VPN e interfacce router Cloud su Google Cloud

In questa sezione utilizzi le informazioni della connessione VPN AWS che hai creato nella sezione precedente per creare un gateway VPN esterno, i tunnel VPN e le interfacce router Cloud in Google Cloud.

Quando configuri i tunnel Cloud VPN su AWS, devi utilizzare il protocollo IKEv2 e selezionare un solo insieme di crittografia IKE per contribuire a garantire l'instaurazione corretta del tunnel. Ad esempio, seleziona un algoritmo di crittografia di fase 1 e uno di fase 2, un algoritmo di integrità e un gruppo Diffie-Hellman (DH). I set di trasformazione AWS predefinite creano un payload di associazione di sicurezza (SA) di grandi dimensioni, che può causare la frammentazione IP dei pacchetti IKE. Cloud VPN non supporta i pacchetti IKE frammentati.

  1. In Cloud Shell, crea un gateway VPN esterno con quattro interfacce per gli indirizzi IP esterni AWS.

    Prima di creare il gateway VPN esterno, verifica che gli indirizzi IP esterni AWS corrispondano ai valori nel file di configurazione che hai scaricato. Non puoi modificare questi indirizzi IP dopo aver creato il gateway VPN esterno. Se gli indirizzi non corrispondono, la connessione del tunnel VPN ad alta disponibilità non può essere stabilita.

    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

    Sostituisci quanto segue:

    • AWS_GW_IP_1: indirizzo IP esterno per il gateway privato virtuale per la connessione 1, tunnel 1
    • AWS_GW_IP_2: indirizzo IP esterno per il gateway privato virtuale per la connessione 1, tunnel 2
    • AWS_GW_IP_3: indirizzo IP esterno per il gateway privato virtuale per la connessione 2, tunnel 1
    • AWS_GW_IP_4: indirizzo IP esterno per il gateway privato virtuale per la connessione 2, tunnel 2
  2. Crea quattro tunnel VPN.

    • 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

      Sostituisci quanto segue:

  3. Crea quattro interfacce del router Cloud.

    Nei comandi seguenti, sostituisci ogni segnaposto GOOGLE_BGP_IP_TUNNEL con l'indirizzo IP interno del tunnel lato Google Cloud. Puoi trovare i valori nei file di configurazione VPN AWS come indirizzo del gateway del cliente per ogni tunnel. Ognuno di questi indirizzi deve rientrare nell'intervallo CIDR /30 all'interno dell'intervallo di rete 169.254.0.0/16.

    • Interfaccia 1 del router Cloud:

      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
    • Interfaccia del router Cloud 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
    • Interfaccia del router Cloud 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
    • Interfaccia del router Cloud 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. Aggiungi peer BGP.

    Nei comandi seguenti, sostituisci PEER_ASN con l'ASN per il lato AWS della sessione BGP.

    • Connessione AWS 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
    • Connessione AWS 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
    • Connessione AWS 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
    • Connessione AWS 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

Verificare la configurazione

  1. In Cloud Shell, verifica lo stato del router Cloud:

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

    L'output è simile al seguente:

    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. Elenca tutti i tunnel:

    gcloud compute vpn-tunnels list

    L'output è simile al seguente:

    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. Controlla lo stato del tunnel:

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

    L'output è simile al seguente:

    detailed_status: Tunnel is up and running.
    status:          ESTABLISHED
    
  4. Elenca le route dinamiche apprese dal router Cloud:

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

    L'output è simile al seguente:

    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
    

Testa la connessione VPN

  1. Crea VM di test su ciascun lato dei tunnel per testare le richieste di ping.

    Assicurati di avere regole firewall VPC per consentire il traffico ICMP.

  2. Verifica la connessione utilizzando il comando ping.

    1. Se il test ping non va a buon fine, visualizza i log in Google Cloud e i log VPN tra siti di AWS. I messaggi di errore nei log possono aiutarti a identificare il problema. Per scoprire come risolvere i problemi relativi alla connessione VPN, consulta le seguenti risorse:
  3. Misura la larghezza di banda tra le macchine di test utilizzando iperf.

    • Lato server:

      iperf3 -s
    • Lato client:

      iperf3 -c SERVER_IP_ADDRESS -P NUMBER_OF_PARALLEL_SESSIONS

Esegui la pulizia

Elimina le risorse Google Cloud e AWS che hai creato durante questo tutorial.

Elimina il progetto Google Cloud

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, puoi eliminare il progetto:

  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.

Eliminare le risorse AWS

  1. Eliminare una connessione VPN Site-to-Site
  2. Elimina il gateway di transito
  3. Termina le istanze Amazon EC2

Passaggi successivi