Public NAT

Public NAT consente alle tue Google Cloud istanze di macchine virtuali (VM) di comunicare con internet allocando un insieme di indirizzi IPv4 esterni condivisi e porte di origine a ogni VM che utilizza Public NAT per creare connessioni in uscita a internet.

Con Public NAT, le istanze VM che non dispongono di indirizzi IPv4 esterni possono comunicare con destinazioni IPv4 su internet. Public NAT consente inoltre alle istanze VM con indirizzi IPv6 esterni o interni di connettersi a destinazioni IPv4 su internet (anteprima).

Specifiche

Public NAT supporta la Network Address Translation (NAT) per quanto riguarda quanto segue:

  • Da IPv4 a IPv4 o NAT44. Per ulteriori informazioni, consulta NAT44 in NAT pubblico.

  • Da IPv6 a IPv4 o NAT64 (Anteprima). Public NAT supporta NAT64 per le istanze VM di Compute Engine. Per i nodi GKE, il traffico serverless e i NEG internet regionali, la NAT pubblica traduce solo il traffico IPv4. Per ulteriori informazioni, consulta NAT64 in NAT pubblico.

Specifiche generali

Per i pacchetti di origine IPv4, puoi configurare Public NAT per fornire il NAT per i pacchetti inviati da quanto segue:

  • L'indirizzo IP interno primario dell'interfaccia di rete della VM Compute Engine, a condizione che all'interfaccia di rete non sia stato assegnato un indirizzo IP esterno. Se all'interfaccia di rete è assegnato un indirizzo IP esterno, Google Cloud esegue automaticamente il NAT uno a uno per i pacchetti le cui sorgenti corrispondono all'indirizzo IP interno primario dell'interfaccia perché l'interfaccia di rete soddisfa i Google Cloud requisiti di accesso a internet. L'esistenza di un indirizzo IP esterno su un'interfaccia ha sempre la precedenza e sempre esegue il NAT uno a uno, senza utilizzare il NAT pubblico.

  • Un intervallo IP alias assegnato all'interfaccia di rete della VM. Anche se all'interfaccia di rete è stato assegnato un indirizzo IP esterno, puoi configurare un gateway Cloud NAT per Public NAT per fornire NAT per i pacchetti le cui origini provengono da un intervallo IP alias dell'interfaccia. Un indirizzo IP esterno su un'interfaccia non esegue mai NAT uno a uno per gli indirizzi IP alias.

  • Per i cluster Google Kubernetes Engine (GKE), Public NAT può fornire il servizio anche se il cluster ha indirizzi IP esterni in determinate circostanze. Per maggiori dettagli, consulta Interazione con GKE.

Per i pacchetti di origine IPv6, puoi configurare Public NAT per fornire NAT per i pacchetti inviati dall'intervallo di indirizzi /96 esterno o interno dell'interfaccia di rete IPv6 della VM (anteprima).

Il NAT pubblico consente le connessioni in uscita e le risposte in entrata a queste connessioni. Ogni gateway Cloud NAT per NAT pubblico esegue il NAT di origine in uscita e il NAT di destinazione per i pacchetti di risposta stabiliti.

Public NAT non consente richieste in entrata non richieste da internet, anche se le regole del firewall lo consentissero. Per ulteriori informazioni, consulta le RFC applicabili.

Ogni gateway Cloud NAT per NAT pubblico è associato a una singola rete VPC, regione e router Cloud. Il gateway Cloud NAT e il router Cloud forniscono un piano di controllo, non sono coinvolti nel piano dati, quindi i pacchetti non passano attraverso il gateway Cloud NAT o il router Cloud.

Route e regole firewall

Public NAT si basa su route i cui hop successivi sono il gateway internet predefinito. In genere, una route predefinita soddisfa questo requisito. Per ulteriori informazioni, consulta la sezione Interazioni con le route.

Public NAT non ha requisiti per le regole Cloud NGFW. Le regole del firewall vengono applicate direttamente alle interfacce di rete delle VM Compute Engine, non ai gateway Cloud NAT per il NAT pubblico.

Non devi creare regole firewall speciali che consentano connessioni a o da indirizzi IP NAT. Quando un gateway Cloud NAT per Public NAT fornisce il NAT per l'interfaccia di rete di una VM, le regole del firewall in uscita applicabili vengono valutate come pacchetti per quell'interfaccia di rete prima del NAT. Le regole del firewall in entrata vengono valutate dopo che i pacchetti sono stati elaborati da NAT.

Applicabilità dell'intervallo di indirizzi IP della subnet

Puoi configurare un gateway Cloud NAT per NAT pubblico per fornire NAT per intervalli di indirizzi di subnet IPv4, intervalli di indirizzi di subnet IPv6 o entrambi. Per gli intervalli di indirizzi di subnet IPv4, il gateway traduce il traffico dall'indirizzo IP interno principale dell'interfaccia di rete della VM, dagli intervalli IP alias o da entrambi. Per gli intervalli di indirizzi IPv6 delle subnet, il gateway traduce il traffico dall'intervallo di indirizzi IPv6 /96 esterno o interno dell'interfaccia di rete (anteprima).

Per gli intervalli di indirizzi di subnet IPv4, puoi configurare il gateway Cloud NAT per fornire NAT per quanto segue:

  • Intervalli di indirizzi IPv4 principali e secondari di tutte le subnet della regione. Un singolo gateway Cloud NAT fornisce NAT per gli indirizzi IP interni principali e per tutti gli intervalli IP alias delle VM idonee le cui interfacce di rete utilizzano una subnet IPv4 nella regione.

  • Intervalli di indirizzi IPv4 principali di tutte le subnet della regione. Un singolo gateway Cloud NAT fornisce NAT per gli indirizzi IP interni principali e gli intervalli IP alias dagli intervalli di indirizzi IP principali delle subnet delle VM idonee le cui interfacce di rete utilizzano una subnet IPv4 nella regione. Puoi creare altri gateway Cloud NAT per NAT pubblico nella regione per fornire NAT per gli intervalli IP degli alias dagli intervalli di indirizzi IP secondari delle subnet delle VM idonee.

  • Elenco di subnet personalizzate. Un singolo gateway Cloud NAT fornisce NAT per gli indirizzi IP interni principali e per tutti gli intervalli IP alias delle VM idonee le cui interfacce di rete utilizzano una subnet IPv4 da un elenco di subnet specificate.

  • Intervalli di indirizzi IPv4 della subnet personalizzati. Puoi creare tutti i gateway Cloud NAT per NAT pubblico necessari, rispettando le quote e i limiti di NAT pubblico. Scegli gli intervalli di indirizzi IP principali o secondari della subnet da pubblicare su ogni gateway.

Per gli intervalli di indirizzi delle subnet IPv6, puoi configurare il gateway Cloud NAT per fornire NAT per quanto segue (anteprima):

  • Intervalli di indirizzi IPv6 esterni e interni di tutte le subnet della regione. Un singolo gateway Cloud NAT fornisce NAT per tutti gli intervalli di indirizzi IPv6 esterni e interni della regione.
  • Elenco di subnet personalizzate. Un singolo gateway Cloud NAT fornisce NAT per gli intervalli di indirizzi IPv6 esterni e interni delle subnet specificate.

Più gateway Cloud NAT

Puoi avere più gateway Cloud NAT per NAT pubblico nella stessa regione di una rete VPC se è vera una delle seguenti condizioni:

  • Ogni gateway è configurato per una subnet diversa.

  • All'interno di una singola subnet, ogni gateway è configurato per un intervallo di indirizzi IP diverso. Puoi mappare un gateway Cloud NAT per NAT pubblico a una subnet o a un intervallo di indirizzi IP specifico utilizzando una mappatura Cloud NAT personalizzata.

Purché i gateway NAT mappati non si sovrappongano, puoi creare tutti i gateway Cloud NAT per NAT pubblico necessari, in base alle quote e ai limiti di NAT pubblico. Per ulteriori informazioni, consulta Limiti dei gateway Cloud NAT.

Larghezza di banda

L'utilizzo di un gateway Cloud NAT per Public NAT non modifica la quantità di larghezza di banda in entrata o in uscita che una VM può utilizzare. Per le specifiche della larghezza di banda, che variano in base al tipo di macchina, consulta Larghezza di banda della rete nella documentazione di Compute Engine.

VM con più interfacce di rete

Se configuri una VM con più interfacce di rete, ogni interfaccia deve trovarsi in una rete VPC distinta. Di conseguenza, è vero quanto segue:

  • Un gateway Cloud NAT per NAT pubblico può essere applicato solo a una singola interfaccia di rete di una VM. Gateway Cloud NAT separati per NAT pubblico possono fornire NAT alla stessa VM, dove ogni gateway si applica a un'interfaccia separata.
  • Un'interfaccia di una VM con più interfacce di rete può avere un indirizzo IPv4 esterno, il che rende l'interfaccia non idonea per il NAT pubblico, mentre un'altra delle sue interfacce può essere idonea per il NAT se non ha un indirizzo IPv4 esterno e hai configurato un gateway Cloud NAT per il NAT pubblico da applicare all'intervallo di indirizzi IP della subnet appropriato. Per IPv6, sono supportati sia gli indirizzi IPv6 esterni sia quelli interni (anteprima).

Indirizzi IP e porte NAT

Quando crei un gateway Cloud NAT per NAT pubblico, puoi scegliere di lasciare che il gateway allochi automaticamente gli indirizzi IP esterni regionali. In alternativa, puoi assegnare manualmente un numero fisso di indirizzi IP esterni regionali al gateway.

Per un gateway Cloud NAT per Public NAT con allocazione automatica degli indirizzi IP NAT, tieni presente quanto segue:

  • Puoi selezionare i livelli di servizio di rete (livello Premium o livello Standard) da cui il gateway Cloud NAT alloca gli indirizzi IP.
  • Quando modifichi il livello di un gateway Cloud NAT per NAT pubblico che ha assegnato automaticamente indirizzi IP NAT, Google Cloud vengono rilasciati tutti gli indirizzi IP assegnati per quel gateway e ritirate tutte le allocazioni delle porte.

    Viene allocato automaticamente un nuovo insieme di indirizzi IP del livello appena selezionato e vengono fornite nuove allocazioni di porte a tutti gli endpoint.

Per un determinato gateway Cloud NAT per Public NAT, puoi anche assegnare manualmente indirizzi IP del livello Premium o Standard o di entrambi, rispettando determinate condizioni.

Per informazioni dettagliate sull'assegnazione degli indirizzi IP NAT, consulta Indirizzi IP NAT pubblici.

Puoi configurare il numero di porte di origine che ogni gateway Cloud NAT per NAT pubblico riserva su ogni VM per cui deve fornire servizi NAT. Puoi configurare l'allocazione statica delle porte, in cui lo stesso numero di porte è riservato per ogni VM, o l'allocazione dinamica delle porte, in cui il numero di porte riservate può variare tra i limiti minimo e massimo specificati.

Le VM per le quali deve essere fornito il NAT sono determinate dagli intervalli di indirizzi IP della subnet per i quali il gateway è configurato per il servizio.

Per ulteriori informazioni sulle porte, consulta Porte.

RFC applicabili

La NAT pubblica supporta la mappatura indipendente dall'endpoint e il filtro dipendente dall'endpoint come definito nel documento RFC 5128. Puoi attivare o disattivare la mappatura indipendente dagli endpoint. Per impostazione predefinita, la mappatura indipendente dagli endpoint viene disattivata quando crei un gateway NAT.

La mappatura indipendente dall'endpoint significa che se una VM invia pacchetti da una determinata coppia di indirizzo IP e porta interna a più destinazioni diverse, il gateway mappa tutti questi pacchetti alla stessa coppia di indirizzo IP e porta NAT, indipendentemente dalla destinazione dei pacchetti. Per dettagli e implicazioni pertinenti al mapping indipendente dagli endpoint, consulta Riutilizzo simultaneo delle porte e mapping indipendente dagli endpoint.

Per filtro basato sugli endpoint si intende che i pacchetti di risposta provenienti da internet sono consentiti solo se provengono da un indirizzo IP e da una porta a cui una VM ha già inviato pacchetti. Il filtro dipende dall'endpoint, indipendentemente dal tipo di mappatura degli endpoint. Questa funzionalità è sempre attiva e non è configurabile dall'utente.

Per ulteriori informazioni sulla relazione tra porte e connessioni, consulta Porte e connessioni e l'esempio di flusso NAT.

Public NAT è un NAT cono con restrizioni di porta come definito nel RFC 3489.

Traversal NAT

Se il mapping indipendente dagli endpoint è abilitato, NAT pubblico è compatibile con i protocolli di attraversamento NAT comuni come STUN e TURN se esegui il deployment dei tuoi server STUN o TURN:

  • STUN (Session Traversal Utilities for NAT, RFC 5389) consente la comunicazione diretta tra le VM dietro NAT quando viene stabilito un canale di comunicazione.
  • TURN (Traversal Using Relays around NAT, RFC 5766) consente la comunicazione tra le VM dietro NAT tramite un terzo server con un indirizzo IP esterno. Ogni VM si connette all'indirizzo IP esterno del server, che ritrasmette la comunicazione tra le due VM. TURN è più robusto, ma consuma più larghezza di banda e risorse.

Timeout NAT

La NAT pubblica imposta i timeout per le connessioni di protocollo. Per informazioni su questi timeout e sui relativi valori predefiniti, consulta Timeout NAT.

NAT44 in Public NAT

Il seguente diagramma mostra una configurazione di NAT pubblico di base per il traffico IPv4:

Esempio di traduzione di IPv4 NAT pubblico.
Esempio di traduzione NAT pubblico (fai clic per ingrandire).

In questo esempio:

  • Il gateway nat-gw-us-east è configurato per essere applicato all'intervallo di indirizzi IP principale di subnet-1 nella regione us-east1. Una VM la cui interfaccia di rete non ha un indirizzo IP esterno può inviare traffico a internet utilizzando il proprio indirizzo IP interno principale o un intervallo IP alias dall'intervallo di indirizzi IP principale di subnet-1, 10.240.0.0/16.

  • Una VM la cui interfaccia di rete non ha un indirizzo IP esterno e il cui indirizzo IP interno principale si trova in subnet-2 non può accedere a internet perché nessun gateway Cloud NAT si applica a qualsiasi intervallo di indirizzi IP della subnet.

  • Il gateway nat-gw-eu è configurato per essere applicato all'intervallo di indirizzi IP principale di subnet-3 nella regione europe-west1. Una VM la cui interfaccia di rete non ha un indirizzo IP esterno può inviare traffico a internet utilizzando il proprio indirizzo IP interno principale o un intervallo IP alias dall'intervallo di indirizzi IP principale di subnet-3, 192.168.1.0/24.

Flusso di lavoro di esempio

Nel diagramma precedente, una VM con indirizzo IP interno principale 10.240.0.4, senza un indirizzo IP esterno, deve scaricare un aggiornamento dall'indirizzo IP esterno 203.0.113.1. Nel diagramma, il gateway nat-gw-us-east è configurato come segue:

  • N. minimo di porte per istanza: 64
  • Assegnazione manuale di due indirizzi IP NAT: 192.0.2.50 e 192.0.2.60
  • È stato fornito il NAT per l'intervallo di indirizzi IP principale subnet-1

Public NAT segue la procedura di prenotazione delle porte per prenotare le seguenti tuple di indirizzo IP di origine e porta di origine NAT per ciascuna delle VM nella rete. Ad esempio, il gateway Cloud NAT per NAT pubblico riserva 64 porte di origine per la VM con indirizzo IP interno 10.240.0.4. L'indirizzo IP NAT 192.0.2.50 ha 64 porte non riservate, quindi il gateway riserva il seguente insieme di 64 tuple di indirizzo IP di origine e porta di origine NAT per la VM:

  • 192.0.2.50:34000 fino a 192.0.2.50:34063

Quando la VM invia un pacchetto al server di aggiornamento 203.0.113.1 sulla porta di destinazione 80, utilizzando il protocollo TCP, si verifica quanto segue:

  • La VM invia un pacchetto di richiesta con i seguenti attributi:

    • Indirizzo IP di origine: 10.240.0.4, l'indirizzo IP interno principale della VM
    • Porta di origine: 24000, la porta di origine temporanea scelta dal sistema operativo della VM
    • Indirizzo di destinazione: 203.0.113.1, l'indirizzo IP esterno del server di aggiornamento
    • Porta di destinazione: 80, la porta di destinazione per il traffico HTTP al server di aggiornamento
    • Protocollo: TCP
  • Il gateway nat-gw-us-east esegue la Network Address Translation (SNAT) dell'origine in uscita, riscrivendo l'indirizzo IP di origine e la porta di origine NAT del pacchetto di richiesta. Il pacchetto modificato viene inviato a internet se la rete Virtual Private Cloud (VPC) ha una route per la destinazione 203.0.113.1 il cui hop successivo è il gateway internet predefinito. In genere, un percorso predefinito soddisfa questo requisito.

    • Indirizzo IP di origine NAT: 192.0.2.50, da una delle tuple di indirizzo IP di origine e porta di origine NAT riservate della VM
    • Porta di origine: 34022, una porta di origine non utilizzata di una delle tuple di porte di origine riservate della VM
    • Indirizzo di destinazione: 203.0.113.1, invariato
    • Porta di destinazione: 80, invariata
    • Protocollo: TCP, invariato
  • Quando il server di aggiornamento invia un pacchetto di risposta, questo arriva sul gateway nat-gw-us-east con i seguenti attributi:

    • Indirizzo IP di origine: 203.0.113.1, l'indirizzo IP esterno del server di aggiornamento
    • Porta di origine: 80, la risposta HTTP del server di aggiornamento
    • Indirizzo di destinazione: 192.0.2.50, corrispondente all'indirizzo IP di origine NAT originale del pacchetto di richiesta
    • Porta di destinazione: 34022, corrispondente alla porta di origine del pacchetto di richiesta
    • Protocollo: TCP, invariato
  • Il gateway nat-gw-us-east esegue la traduzione dell'indirizzo di rete di destinazione (DNAT) sul pacchetto di risposta, riscrivendo l'indirizzo di destinazione e la porta di destinazione del pacchetto in modo che venga consegnato alla VM:

    • Indirizzo IP di origine: 203.0.113.1, invariato
    • Porta di origine: 80, invariata
    • Indirizzo di destinazione: 10.240.0.4, l'indirizzo IP interno principale della VM
    • Porta di destinazione: 24000, corrispondente alla porta di origine temporanea originale del pacchetto di richiesta
    • Protocollo: TCP, invariato

NAT64 in Public NAT

NAT64 consente alle istanze VM solo IPv6 di comunicare con destinazioni IPv4 su internet. Public NAT supporta NAT64 sia per gli indirizzi IPv6 esterni sia per quelli interni. Se vuoi configurare NAT64, devi anche configurare DNS64.

La configurazione di DNS64 in Cloud DNS consente il seguente comportamento:

  • Quando un'istanza VM solo IPv6 invia una richiesta a internet, Cloud DNS controlla se esiste un record AAAA per la destinazione della richiesta. Se il record esiste, viene restituito un indirizzo IPv6 e l'istanza VM solo IPv6 può connettersi alla destinazione IPv6.
  • Se DNS64 è attivato e il record AAAA non viene trovato, il server DNS64 cerca i record A. Dopo aver trovato un record A, il server DNS64 sintetizza un indirizzo IPv6 anteponendo il prefisso 64:ff9b::/96 all'indirizzo IPv4 ottenuto dal record A.

    Ad esempio, se l'indirizzo IPv4 di destinazione è 203.0.113.1, il server restituisce 64:ff9b::cb00:7101, dove cb00:7101 è la rappresentazione esadecimale di 203.0.113.1.

Quando la richiesta raggiunge il gateway Cloud NAT con NAT64 abilitato, il gateway esegue SNAT nel seguente modo:

  • Sostituisce l'indirizzo IPv6 e la porta di origine con uno degli indirizzi IPv4 e delle porte esterni allocati al gateway.
  • Traduci l'indirizzo IPv6 di destinazione sintetizzato, ad esempio 64:ff9b::cb00:7101, nell'indirizzo IPv4 originale utilizzando gli ultimi 32 bit dell'indirizzo sintetizzato.

    Il gateway Cloud NAT utilizza anche gli ultimi 32 bit dell'indirizzo IPv6 sintetizzato per determinare in che modo il pacchetto di richiesta viene indirizzato a internet. Quando un'istanza VM solo IPv6 invia un pacchetto a una destinazione che inizia con il prefisso 64:ff9b::/96, il gateway applica la tabella di routing IPv4 della rete VPC all'indirizzo IPv4 di destinazione. Se la tabella di routing IPv4 contiene una route per l'indirizzo IPv4 di destinazione il cui hop successivo è il gateway internet predefinito, il pacchetto modificato viene inviato a internet.

Quando viene ricevuta la risposta, il gateway Cloud NAT esegue il DNAT come segue:

  • Anteponendo il prefisso 64:ff9b::/96 all'indirizzo IP di origine del pacchetto di risposta.
  • Riscrivere l'indirizzo di destinazione e la porta di destinazione del pacchetto di risposta in modo che il pacchetto venga consegnato alla VM.

Passaggi successivi