Creare una connessione VPN classica a un sito remoto

Puoi configurare una connessione del tunnel VPN classica tra un sito on-premise e Google Cloud in modo che sia l'indirizzo IP di origine sia quello di destinazione siano indirizzi IP esterni (non RFC 1918). Ad esempio, puoi configurare una connessione VPN classica a un sito remoto in modo che gli intervalli di indirizzi IP on-premise non entrino in conflitto con l'indirizzo IP della Google Cloud VM.

In questo tutorial utilizzi un progetto Google Cloud, la console Google Cloud, un'istanza di macchina virtuale (VM), la VPN classica e alcuni comandi Linux. Per testare la connessione, crea una nuova istanza VM per inviare e ricevere traffico tra la VM e un peer remoto.

Prima di iniziare

  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. Sulla workstation, installa lo strumento a riga di comando gcloud.
  8. Configura lo strumento a riga di comando gcloud in modo da utilizzare il tuo progetto. Nel comando seguente, sostituisci PROJECT_ID con l'ID del tuo progetto:
    gcloud config set project PROJECT_ID
  9. Assicurati che le sottoreti on-premise siano connesse al gateway VPN on-premise.
  10. Segui le istruzioni riportate in Configurazione del gateway VPN peer per configurare il gateway VPN peer tra Google Cloud e il tuo gateway VPN on-premise.

Prenota un nuovo indirizzo IP esterno statico

In Compute Engine, ogni istanza VM può avere più interfacce di rete. Ogni interfaccia può avere indirizzi IP interni ed esterni. Le regole di inoltro possono avere indirizzi IP esterni per il bilanciamento del carico esterno o indirizzi interni per il bilanciamento del carico interno. Per saperne di più sugli indirizzi IP statici, consulta Indirizzi IP esterni.

Un indirizzo IP esterno statico è l'indirizzo IP riservato al tuo progetto fino a quando non decidi di rilasciarlo. Se hai un indirizzo IP di cui i tuoi clienti si servono per accedere al tuo servizio, puoi prenotarlo in modo che solo il tuo progetto possa utilizzarlo. Puoi anche promuovere un indirizzo IP esterno temporaneo in un indirizzo IP esterno statico.

Puoi prenotare due tipi di indirizzi IP esterni:

  • Un indirizzo IP regionale utilizzato dalle istanze VM con una o più interfacce di rete o dai bilanciatori del carico regionali
  • Un indirizzo IP globale utilizzato per i bilanciatori del carico globali

Per un elenco dei bilanciatori del carico regionali e globali, consulta il riepilogo dei bilanciatori del caricoGoogle Cloud .

Prenota un indirizzo IP esterno statico utilizzando Google Cloud CLI o tramite l'API. Dopo aver prenotato l'indirizzo IP, assegnalo a una nuova istanza durante la creazione o a un'istanza esistente.

Console

  1. Vai alla pagina Prenota un indirizzo statico.

    Vai a Prenota un indirizzo statico

  2. Scegli un nome per il nuovo indirizzo.

  3. Specifica se si tratta di un indirizzo IPv4 o IPv6. Gli indirizzi IPv6 possono essere solo globali e possono essere utilizzati solo con bilanciatori del carico globali.

  4. Specifica se questo indirizzo IP è regionale o globale. Se prenoti un indirizzo IP statico per un'istanza o per un bilanciatore del carico regionale, scegli Regionale. Se stai prenotando un indirizzo IP statico per un bilanciatore del carico globale, scegli Globale.

  5. Se si tratta di un indirizzo IP regionale, seleziona la regione in cui creare l'indirizzo.

  6. (Facoltativo) Seleziona una risorsa da collegare all'indirizzo IP.

  7. Fai clic su Prenota per prenotare l'indirizzo IP.

gcloud

Per prenotare un indirizzo IP esterno statico utilizzando gcloud compute, utilizza il comando compute addresses create.

Per prenotare un indirizzo IP globale, utilizza i campi --global e --ip-version. Per il campo --ip-version, specifica IPV4 o IPV6. Gli indirizzi IPv6 possono essere solo globali e possono essere utilizzati solo con bilanciatori del carico globali.

Sostituisci ADDRESS_NAME con il nome di questo indirizzo.

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

Per prenotare un indirizzo IP regionale, utilizza il campo --region:

gcloud compute addresses create ADDRESS_NAME  \
    --region=REGION

Sostituisci quanto segue:

  • ADDRESS_NAME: il nome di questo indirizzo.
  • REGION: la regione in cui prenotare questo indirizzo. Questa regione deve essere la stessa della risorsa a cui è assegnato l'indirizzo IP. Tutti gli indirizzi IP a livello di regione sono IPv4.

Utilizza il comando compute addresses describe per visualizzare il risultato:

gcloud compute addresses describe ADDRESS_NAME

API

Per creare un indirizzo IPv4 regionale, chiama il metodo addresses.insert regionale:

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

Il corpo della richiesta deve contenere quanto segue:

{
  "name": "ADDRESS_NAME"
}

Sostituisci quanto segue:

  • ADDRESS_NAME: il nome dell'indirizzo
  • REGION: il nome della regione per questa richiesta
  • PROJECT_ID: l'ID progetto per questa richiesta

Per gli indirizzi IPv4 statici globali, chiama il metodo globalAddresses.insert:

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

Il corpo della richiesta deve contenere quanto segue:

{
  "name": "ADDRESS_NAME"
}

Per gli indirizzi IPv6 statici globali, chiama il metodo globalAddresses.insert:

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

Il corpo della richiesta deve contenere quanto segue:

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

Utilizza il metodo addresses.get per visualizzare il risultato.

Terraform

Puoi utilizzare un modulo Terraform per creare un indirizzo IP esterno.

Nell'esempio seguente, gli argomenti Terraform hanno valori di esempio che puoi modificare. L'esempio crea tre indirizzi IPv4 esterni regionali.

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

Il seguente esempio crea un indirizzo IPv6 esterno globale:

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"
}

Attiva l'IP forwarding

Puoi attivare l'IP forwarding quando crei una VM o aggiorni la proprietà dell'istanza canIpForward su una VM esistente. L'IP forwarding è abilitato a livello di VM e si applica a tutte le interfacce collegate alla VM.

Attivare l'IP forwarding quando crei una VM

Queste istruzioni descrivono come abilitare il forwarding IP quando crei una VM. Se devi attivare l'IP forwarding su una VM esistente, aggiorna la proprietà canIpForward dell'istanza.

Console

  1. Vai alla pagina Istanze VM.
    Vai a Istanze VM
  2. Fai clic su Crea istanza.
  3. In Disco di avvio, assicurati di aver selezionato un'immagine Linux, ad esempio Debian GNU/Linux.
  4. Fai clic su Networking, dischi, sicurezza, gestione, single-tenancy.
  5. Fai clic su Networking.
  6. Per Inoltro IP, seleziona Attiva.
  7. Specifica eventuali altri parametri dell'istanza.
  8. Fai clic su Crea.

gcloud

Quando crei un'istanza utilizzando gcloud, aggiungi il flag --can-ip-forward al comando:

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

API

Quando crei un'istanza, utilizza il campo canIpForward per attivare il forwarding IP.

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

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto in cui è stata creata l'istanza.
  • ZONE: la Google Cloud zona in cui viene creata l'istanza.

Per ulteriori informazioni, consulta il metodo instances.insert.

Terraform

Puoi utilizzare la risorsa Terraform per creare un'istanza VM con l'IP forwarding abilitato.

In questo esempio, agli argomenti Terraform sono stati assegnati valori che puoi modificare.

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
}

Creare una route per il traffico in entrata

Per creare una nuova route statica: Prima di farlo, assicurati di conoscere quanto segue:

  • Le route statiche non possono avere intervalli di destinazione corrispondenti o più specifici rispetto agli intervalli di destinazione utilizzati da qualsiasi route di subnet nella rete VPC.

    • Quando utilizzi il peering di rete VPC per connettere due reti VPC, le route statiche in una rete non possono avere destinazioni corrispondenti o più specifiche rispetto alle route delle subnet in entrambe le reti. Google Cloud rifiuta le route statiche che entrerebbero in conflitto con le route delle subnet in questo modo.
  • Per evitare conflitti quando utilizzi una rete VPC in modalità automatica, non creare route statiche le cui destinazioni rientrano in 10.128.0.0/9. Per ulteriori dettagli, consulta gli intervalli IPv4 in modalità automatica.

  • Le destinazioni per i percorsi statici non possono sovrapporsi a nessun intervallo allocato interno.

  • Assicurati di conoscere le istanze come hop successivi prima di creare una route statica personalizzata che utilizza una VM come hop successivo. Google Cloud convalida solo l'esistenza di una VM al momento della creazione della route se scegli un'istanza hop successivo.

  • Se crei una route utilizzando un tag di rete, solo le VM con quel tag la riceveranno. Tuttavia, le VM con tag ricevono comunque tutti i route che non hanno un tag di rete.

Console

  1. Vai alla pagina Route nella console Google Cloud.
    Vai a Percorsi
  2. Fai clic su Crea route.
  3. Specifica un nome e una descrizione per il percorso.
  4. Seleziona una rete esistente a cui verrà applicato il percorso.
  5. Specifica un intervallo IP di destinazione per definire la destinazione del percorso.
  6. Specifica una Priorità per il percorso. Una priorità viene utilizzata solo per determinare l'ordine di routing se le route hanno destinazioni equivalenti. Per ulteriori dettagli, consulta la sezione Parametri route.
  7. Per rendere la route applicabile solo alle istanze con tag di rete corrispondenti, specifica questi tag nel campo Tag istanza. Lascia vuoto il campo per rendere la route applicabile a tutte le istanze della rete o se selezioni un bilanciatore del carico TCP/UDP interno come hop successivo della route. I tag di rete non si applicano alle route che hanno un bilanciatore del carico TCP/UDP interno come hop successivo.
  8. Seleziona un hop successivo per il percorso:

    • Specifica un'istanza ti consente di selezionare un'istanza per nome. Il traffico verrà indirizzato a quell'istanza (o a qualsiasi istanza di sostituzione con lo stesso nome nella stessa zona) anche se l'indirizzo IP cambia.
    • Specifica indirizzo IP ti consente di inserire un indirizzo IP di un'istanza esistente nella rete VPC. Consulta Hop successivi e funzionalità per informazioni importanti sulle limitazioni relative agli indirizzi IP degli hop successivi validi.
  9. Fai clic su Crea.

gcloud

Crea una nuova route statica:

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

Sostituisci i segnaposto:

  • ROUTE_NAME è il nome del percorso.
  • DESTINATION_RANGE rappresenta gli indirizzi IP di destinazione a cui verrà applicata questa route. La destinazione più ampia possibile è 0.0.0.0/0.
  • NETWORK è il nome della rete VPC che conterrà la route.
  • NEXT_HOP_SPECIFICATION rappresenta l'hop successivo per la route statica. Devi specificare solo uno dei seguenti come hop successivo. Per ulteriori informazioni sui diversi tipi di hop successivi, consulta Hop successivi e funzionalità.
    • --next-hop-instance=INSTANCE_NAME e --next-hop-instance-zone=ZONE: utilizza questo hop successivo per indirizzare il traffico a un'istanza VM esistente in base al nome e alla zona. Il traffico viene inviato all'indirizzo IP interno principale dell'interfaccia di rete della VM situata nella stessa rete della route.
    • --next-hop-address=ADDRESS: utilizza questo hop successivo per indirizzare il traffico all'indirizzo IP di un'istanza VM esistente.

Per fare in modo che la route statica venga applicata solo a VM selezionate in base al tag di rete, aggiungi il flag --tags e specifica uno o più tag di rete. Per ulteriori informazioni sul funzionamento combinato dei tag di rete e delle route statiche, consulta la sezione Route applicabili. Puoi utilizzare i tag con qualsiasi percorso statico.

Per ulteriori informazioni sulla sintassi di gcloud, consulta la documentazione dell'SDK.

API

Crea una nuova route statica.

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
}

Sostituisci i segnaposto:

  • PROJECT_ID è l'ID del progetto in cui è stato creato il percorso.
  • DESTINATION_RANGE rappresenta gli indirizzi IP di destinazione a cui verrà applicata questa route. La destinazione più ampia possibile è 0.0.0.0/0.
  • ROUTE_NAME un nome per il percorso.
  • NETWORK_NAME è il nome della rete VPC che conterrà la route.
  • VALUE per NEXT_HOP_SPECIFICATION rappresenta l'hop successivo per la route statica. Per NEXT_HOP_SPECIFICATION, devi specificare solo uno dei seguenti campi hop successivo: nextHopIp,nextHopInstance. Per ulteriori informazioni sui diversi tipi di hop successivi e sulle funzionalità, consulta Hop successivi e funzionalità.

Per ulteriori informazioni, consulta il metodo routes.insert.

Terraform

Puoi creare una route statica utilizzando un modulo Terraform.

Questa route statica crea una route predefinita per internet.

module "google_compute_route" {
  source       = "terraform-google-modules/network/google//modules/routes"
  version      = "~> 10.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"
    }
  ]
}

Creazione di una VPN classica mediante routing statico

La procedura guidata di configurazione della VPN è l'unica opzione della console Google Cloud per creare un gateway VPN classica. La procedura guidata include tutti i passaggi di configurazione necessari per creare un gateway VPN classico, tunnel, sessioni BGP e una risorsa gateway VPN esterno. Tuttavia, puoi completare alcuni passaggi in un secondo momento, ad esempio la configurazione delle sessioni BGP.

Console

Configura il gateway

  1. Nella console Google Cloud, vai alla pagina VPN.

    Vai a VPN

  2. Se stai creando un gateway per la prima volta, fai clic su Crea connessione VPN.

  3. Seleziona la configurazione guidata VPN.

  4. Seleziona il pulsante di opzione VPN classica.

  5. Fai clic su Continua.

  6. Nella pagina Crea una connessione VPN, specifica le seguenti impostazioni del gateway:

    • Nome: il nome del gateway VPN. Il nome non può essere modificato in un secondo momento.
    • Descrizione: se vuoi, aggiungi una descrizione.
    • Rete: specifica una rete VPC esistente in cui creare il gateway e il tunnel VPN.
    • Regione: i gateway e i tunnel Cloud VPN sono oggetti regionali. Scegli una Google Cloud regione in cui verrà collocato il gateway. Le istanze e altre risorse in regioni diverse possono utilizzare il tunnel per il traffico in uscita in base all'ordine delle route. Per ottenere le migliori prestazioni, posiziona il gateway e il tunnel nella stessa regione delle risorse Google Cloud pertinenti.
    • Indirizzo IP: crea o scegli un indirizzo IP esterno regionale esistente.

Configurare i tunnel

  1. Per il nuovo tunnel, nella sezione Tunnel, specifica le seguenti impostazioni:

    • Nome: il nome del tunnel VPN. Il nome non può essere modificato in un secondo momento.
    • Descrizione: se vuoi, digita una descrizione.
    • Indirizzo IP peer remoto: specifica l'indirizzo IP esterno del gateway VPN peer.
    • Versione IKE: scegli la versione IKE appropriata supportata dal gateway VPN peer. IKEv2 è preferibile se supportato dal dispositivo peer.
    • Chiave IKE precondivisa: fornisci una chiave precondivisa (segreto condiviso) utilizzata per l'autenticazione. La chiave pre-condivisa per il tunnel Cloud VPN deve corrispondere a quella utilizzata per configurare il tunnel corrispondente sul gateway VPN peer. Per generare una chiave pre-condivisa di elevata sicurezza crittografica, segui queste istruzioni.
    • Seleziona i tunnel basati su criteri
    • In Opzioni di routing, seleziona In base ai criteri.
    • In Intervalli IP della rete remota, fornisci un elenco separato da spazi degli intervalli di indirizzi IP utilizzati dal traffico locale nella configurazione della VPN on-premise.
    • Nel campo Intervalli IP locali, inserisci l'intervallo di indirizzi IP esterni che hai creato in precedenza con un prefisso di subnet /32.
    • Fai clic su Fine.
    • Fai clic su Crea.

gcloud

Per creare un gateway Cloud VPN, completa la seguente sequenza di comandi. Nei comandi, sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto
  • NETWORK: il nome della tua Google Cloud rete
  • REGION: la Google Cloud regione in cui crei il gateway e il tunnel
  • GW_NAME: il nome del gateway
  • GW_IP_NAME: un nome per l'indirizzo IP esterno utilizzato dal gateway
  • (Facoltativo) --target-vpn-gateway-region è la regione del gateway VPN classica su cui operare. Il valore deve essere uguale a --region. Se non specificata, questa opzione viene impostata automaticamente. Questa opzione sostituisce il valore predefinito della proprietà compute/region per l'invocazione di questo comando.

Configura le risorse del gateway

  1. Crea l'oggetto gateway VPN di destinazione:

    gcloud compute target-vpn-gateways create GW_NAME \
       --network=NETWORK \
       --region=REGION \
       --project=PROJECT_ID
    
  2. Prenota un indirizzo IP esterno (statico) regionale:

    gcloud compute addresses create GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID
    
  3. Prendi nota dell'indirizzo IP (in modo da poterlo utilizzare quando configuri il gateway VPN peer):

    gcloud compute addresses describe GW_IP_NAME \
       --region=REGION \
       --project=PROJECT_ID \
       --format='flattened(address)'
    
  4. Crea tre regole di inoltro che obblighino Google Cloud a inviare traffico ESP (IPsec), UDP 500 e UDP 4500 al gateway:

    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
    

Crea il tunnel Cloud VPN

  1. Nei comandi, sostituisci quanto segue:

    • TUNNEL_NAME: un nome per il tunnel
    • ON_PREM_IP: l'indirizzo IP esterno del gateway VPN peer
    • IKE_VERS: 1 per IKEv1 o 2 per IKEv2
    • SHARED_SECRET: la tua chiave precondivisa (segreto condiviso). La chiave pre-condivisa per il tunnel Cloud VPN deve corrispondere a quella utilizzata per configurare il tunnel corrispondente sul gateway VPN peer. Per generare una chiave pre-condivisa di elevata sicurezza crittografica, segui queste istruzioni.

    Per la VPN basata su criteri:

    • LOCAL_IP_RANGES: un elenco separato da virgole degli Google Cloud intervalli di indirizzi IP. Ad esempio, puoi fornire il blocco CIDR per ogni subnet in una rete VPC. Si tratta del lato sinistro dal punto di vista di Cloud VPN.
    • REMOTE_IP_RANGES: un elenco separato da virgole degli intervalli di indirizzi IP della rete peer. Si tratta del lato destro dal punto di vista di Cloud VPN.

    Per configurare un tunnel VPN basato su criteri, esegui il seguente comando:

    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
    

    Per la VPN basata su route, i selettori di traffico locale e remoto sono 0.0.0.0/0 come definito in opzioni di routing e selettori di traffico.

    Per configurare un tunnel VPN basato su route, esegui il seguente comando:

    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. Crea una route statica per ogni intervallo di indirizzi IP remoto specificato nell'opzione --remote-traffic-selector nel passaggio precedente. Ripeti questo comando per ogni intervallo di indirizzi IP remoti. Sostituisci ROUTE_NAME con un nome univoco per la route e REMOTE_IP_RANGE con l'intervallo di indirizzi IP remoto appropriato.

    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
    

Configura la VM per inviare e ricevere traffico

Per completare la configurazione e verificare se puoi inviare e ricevere traffico dalla VM, segui questi passaggi:

Ricevere traffico

  1. Nella console Google Cloud, vai alla pagina Istanze VM.
  2. Nell'elenco delle istanze della macchina virtuale, individua la VM che hai creato in precedenza e fai clic su SSH.
  3. Crea un alias dell'indirizzo IP per la VM utilizzando l'indirizzo IP pubblico che hai prenotato in precedenza. Potrai ricevere traffico sulla VM dopo aver completato questo passaggio.

    Esegui questo comando:

    sudo ip address add EXTERNAL_IP_ADDRESS/32 dev eth0
    

    Sostituisci EXTERNAL_IP_ADDRESS con l'indirizzo IP pubblico che hai prenotato in precedenza.

Inviare traffico

  1. Nella console Google Cloud, vai alla pagina Istanze VM.
  2. Nell'elenco delle istanze della macchina virtuale, individua la VM che hai creato in precedenza e fai clic su SSH.
  3. Esegui il seguente comando per verificare se riesci a eseguire un ping a un indirizzo IP esterno:

    $ 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
    

    Sostituisci REMOTE_PEER_IP_ADDRESS con un indirizzo IP della subnet del peer remoto.

  4. Per consentire alla VM di utilizzare automaticamente questa interfaccia quando invia traffico al tunnel VPN, puoi creare una regola iptables.

    Ad esempio, esegui il comando seguente per creare una regola iptables:

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

    Sostituisci REMOTE_PEER_SUBNET con la sottorete del peer remoto.

  5. Esegui i seguenti comandi per testare il tunnel Cloud VPN:

    $ 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