Public NAT

La NAT pubblica consente alle istanze di macchine virtuali (VM) Compute Engine di comunicare con internet allocando un insieme di indirizzi IPv4 esterni condivisi e porte di origine a ogni VM che utilizza la NAT pubblica per creare connessioni in uscita a internet.

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

Specifiche

NAT pubblico supporta Network Address Translation (NAT) per quanto segue:

  • Da IPv4 a IPv4 o NAT44. Per saperne di più, consulta NAT44 in Public NAT.

  • Da IPv6 a IPv4 o NAT64 (anteprima). NAT64 è disponibile per le istanze VM di Compute Engine. Per i nodi Google Kubernetes Engine (GKE), gli endpoint serverless e i gruppi di endpoint di rete internet regionali, NAT pubblico converte solo gli indirizzi IPv4. Per maggiori informazioni, vedi NAT64 in NAT pubblico.

Specifiche generali

  • Public NAT consente le connessioni in uscita e le risposte in entrata a queste connessioni. Ogni gateway Cloud NAT per Public NAT esegue il source NAT sul traffico in uscita e il destination NAT per i pacchetti di risposta stabiliti.

  • La NAT pubblica non consente richieste in entrata non richieste da internet, anche se le regole firewall altrimenti le consentirebbero. Per ulteriori informazioni, consulta la sezione RFC applicabili.

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

    Anche se un gateway Cloud NAT per Public NAT è gestito da un router Cloud, Public NAT non utilizza né dipende dal Border Gateway Protocol.

  • Per NAT44, Public NAT può fornire NAT per i pacchetti in uscita inviati da:

    • L'indirizzo IP interno principale dell'interfaccia di rete della VM, a condizione che all'interfaccia di rete non sia assegnato un indirizzo IP esterno: se all'interfaccia di rete è assegnato un indirizzo IP esterno, Trusted Cloud esegue automaticamente NAT one-to-one per i pacchetti le cui origini corrispondono all'indirizzo IP interno principale dell'interfaccia perché l'interfaccia di rete soddisfa i Trusted Cloud requisiti di accesso a internet. L'esistenza di un indirizzo IP esterno su un'interfaccia ha sempre la precedenza ed esegue sempre NAT uno a uno, senza utilizzare NAT pubblico.

    • Un intervallo IP alias assegnato all'interfaccia di rete della VM: anche se all'interfaccia di rete è assegnato un indirizzo IP esterno, puoi configurare un gateway Cloud NAT per NAT pubblico 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 one-to-one per gli indirizzi IP alias.

    • Cluster GKE: NAT pubblico può fornire servizio anche se il cluster ha indirizzi IP esterni in determinate circostanze. Per maggiori dettagli, vedi Interazione con GKE.

  • Per NAT64 (anteprima), Public NAT può fornire NAT per i pacchetti in uscita inviati da:

    • L'intervallo di indirizzi /96 interno dell'interfaccia di rete solo IPv6 della VM.
    • L'intervallo di indirizzi /96 esterno dell'interfaccia di rete solo IPv6 della VM.

Route e regole firewall

NAT pubblico si basa su route statiche locali i cui hop successivi sono il gateway internet predefinito. Una route predefinita in genere soddisfa questo requisito. Per maggiori informazioni, consulta la sezione Interazioni con gli itinerari.

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

Quando un gateway Cloud NAT per NAT pubblico fornisce NAT per l'interfaccia di rete di una VM, le regole firewall di uscita applicabili vengono valutate come pacchetti per quell'interfaccia di rete prima di NAT. Le regole firewall di ingresso vengono valutate dopo che i pacchetti sono stati elaborati da NAT. Non è necessario creare regole firewall specifiche per NAT.

Tuttavia, se vuoi abilitare NAT64 in una rete VPC che ha una regola firewall di negazione del traffico in uscita per una destinazione IPv4, ti consigliamo di creare un'ulteriore regola firewall di negazione del traffico in uscita per l'indirizzo IPv6 incorporato in IPv4 della destinazione. In questo modo, il traffico delle VM che utilizzano NAT64 non può ignorare la regola firewall IPv4. Ad esempio, se la destinazione nella regola IPv4 è 1.2.3.4/32, la destinazione nella regola IPv6 deve essere 64:ff9b:0102:0304/128. Per saperne di più sugli indirizzi IPv6 incorporati in IPv4, vedi NAT64.

Applicabilità dell'intervallo di indirizzi IP della subnet

NAT pubblico può fornire NAT per intervalli di subnet IPv4, intervalli di subnet IPv6 o entrambi:

  • Per gli intervalli di subnet IPv4, puoi utilizzare le seguenti opzioni per configurare NAT per gli intervalli di indirizzi IP primari, gli intervalli IP alias o entrambi:

    • Intervalli di indirizzi IPv4 primari e secondari di tutte le subnet nella regione: un singolo gateway Cloud NAT fornisce NAT per gli indirizzi IP interni principali e 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 nella 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 della subnet delle VM idonee le cui interfacce di rete utilizzano una subnet IPv4 nella regione. Puoi creare gateway Cloud NAT aggiuntivi per NAT pubblico nella regione per fornire NAT per gli intervalli IP alias dagli intervalli di indirizzi IP secondari delle subnet delle VM idonee.

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

    • Intervalli di indirizzi IPv4 della subnet personalizzata: puoi creare tutti i gateway Cloud NAT per NAT pubblico necessari, in base alle quote e ai limiti di NAT pubblico. Scegli quali intervalli di indirizzi IP primari o secondari della subnet devono essere gestiti da ciascun gateway.

  • Per gli intervalli di subnet IPv6, puoi utilizzare le seguenti opzioni per configurare NAT per gli intervalli di indirizzi IP interni, gli intervalli di indirizzi IP esterni o entrambi:

    • Intervalli di indirizzi IPv6 interni ed esterni di tutte le subnet nella regione: un singolo gateway Cloud NAT fornisce NAT per tutti gli intervalli di indirizzi IP interni ed esterni nella regione.
    • Elenco di subnet personalizzato: un singolo gateway Cloud NAT fornisce NAT per gli intervalli di indirizzi IP interni ed esterni delle VM idonee le cui interfacce di rete utilizzano una subnet da un elenco di subnet specificate.

Più gateway Cloud NAT

Puoi avere più gateway Cloud NAT per NAT pubblico nella stessa regione di una rete VPC se si verifica 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.

Finché i gateway NAT mappati non si sovrappongono, puoi creare tutti i gateway Cloud NAT per NAT pubblico necessari, nel rispetto delle quote e dei limiti di NAT pubblico. Per ulteriori informazioni, consulta Limitazioni 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 uscita o in entrata che una VM può utilizzare. Per le specifiche della larghezza di banda, che variano in base al tipo di macchina, vedi Larghezza di banda di rete nella documentazione di Compute Engine.

VM con più interfacce di rete

Se configuri una VM in modo che abbia più interfacce di rete, ogni interfaccia deve trovarsi in una rete VPC separata. Di conseguenza, si verifica 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 la rende non idonea per NAT pubblico, mentre un'altra delle sue interfacce può essere idonea per NAT se non ha un indirizzo IPv4 esterno e se hai configurato un gateway Cloud NAT per l'applicazione di NAT pubblico all'intervallo di indirizzi IP della subnet appropriata. Per IPv6, sono supportati sia gli indirizzi IPv6 interni che esterni.

Indirizzi IP e porte NAT

Quando crei un gateway Cloud NAT per NAT pubblico, puoi scegliere di fare in modo che il gateway allochi automaticamente 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 dell'indirizzo IP NAT, considera quanto segue:

  • Puoi selezionare Network Service Tiers (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 allocato automaticamente gli indirizzi IP NAT, Trusted Cloud rilascia tutti gli indirizzi IP assegnati per quel gateway e ritira tutte le allocazioni di porte.

    Viene allocato automaticamente un nuovo insieme di indirizzi IP dal 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 di livello Premium o Standard o di entrambi, in base a 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 viene riservato per ogni VM, oppure 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 subnet che il gateway è configurato per gestire.

Per saperne di più sulle porte, consulta Porte.

RFC applicabili

NAT pubblico supporta il mapping indipendente dall'endpoint e il filtraggio dipendente dall'endpoint, come definito nel documento RFC 5128. Puoi attivare o disattivare la mappatura indipendente dagli endpoint. Per impostazione predefinita, il mapping indipendente dagli endpoint è disattivato quando crei un gateway NAT.

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

Il filtraggio dipendente dall'endpoint significa che i pacchetti di risposta da internet possono entrare solo se provengono da un indirizzo IP e una porta a cui una VM aveva già inviato pacchetti. Il filtraggio dipende dall'endpoint indipendentemente dal tipo di mappatura degli endpoint. Questa funzionalità è sempre attiva e non è configurabile dall'utente.

Per saperne di più sulla relazione tra porte e connessioni, vedi Porte e connessioni e l'esempio di flusso NAT.

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

Attraversamento NAT

Se il mapping indipendente dagli endpoint è abilitato, Public NAT è 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 in cui questo server ha un indirizzo IP esterno. Ogni VM si connette all'indirizzo IP esterno del server e quest'ultimo inoltra la comunicazione tra le due VM. TURN è più robusto, ma consuma più larghezza di banda e risorse.

Timeout NAT

Il NAT pubblico 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 NAT pubblica di base per il traffico IPv4:

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

In questo esempio:

  • Il gateway nat-gw-us-east è configurato per essere applicato all'intervallo di indirizzi IP principali 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 suo indirizzo IP interno principale o un intervallo IP alias dall'intervallo di indirizzi IP principali 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 nessun intervallo di indirizzi IP di quella subnet.

  • Il gateway nat-gw-eu è configurato per essere applicato all'intervallo di indirizzi IP principali 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 suo 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 nel seguente modo:

  • Numero minimo di porte per istanza: 64
  • Due indirizzi IP NAT assegnati manualmente: 192.0.2.50 e 192.0.2.60
  • NAT fornito per l'intervallo di indirizzi IP primari di subnet-1

NAT pubblico segue la procedura di prenotazione delle porte per prenotare le seguenti tuple di indirizzo IP di origine NAT e porta di origine 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 NAT e porta di origine per quella VM:

  • 192.0.2.50:34000 - 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 questi attributi:

    • Indirizzo IP di origine: 10.240.0.4, l'indirizzo IP interno principale della VM
    • Porta di origine: 24000, la porta di origine effimera 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 verso il server di aggiornamento
    • Protocollo: TCP
  • Il gateway nat-gw-us-east esegue la Network Address Translation dell'origine (SNAT) in uscita, riscrivendo l'indirizzo IP di origine NAT e la porta di origine 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. Un percorso predefinito soddisfa comunemente questo requisito.

    • Indirizzo IP di origine NAT: 192.0.2.50, da una delle tuple di porta di origine e indirizzo IP di origine NAT riservate della VM
    • Porta di origine: 34022, una porta di origine non utilizzata da 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 pacchetto arriva sul gateway nat-gw-us-east con questi attributi:

    • Indirizzo IP di origine: 203.0.113.1, l'indirizzo IP esterno del server di aggiornamento
    • Porta di origine: 80, la risposta HTTP dal 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 Network Address Translation di destinazione (DNAT) sul pacchetto di risposta, riscrivendo l'indirizzo di destinazione e la porta di destinazione del pacchetto di risposta in modo che il pacchetto venga recapitato 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 effimera originale del pacchetto di richiesta
    • Protocollo: TCP, invariato

NAT64 in Public NAT

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

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

  • Quando un'istanza VM solo IPv6 avvia una richiesta per risolvere il nome di una destinazione internet che ha solo un indirizzo IPv4, il server DNS64 cerca i record A.
  • Se viene trovato un record A, il server DNS64 sintetizza un indirizzo IPv6 incorporato in IPv4 anteponendo il prefisso 64:ff9b::/96 all'indirizzo IPv4 di destinazione 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.

    Per saperne di più, vedi DNS64.

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 esterni e delle porte allocati al gateway.
  • Converte 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 il modo in cui il pacchetto di richiesta viene instradato a internet. Quando un'istanza VM solo IPv6 invia un pacchetto a una destinazione 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 ha 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 DNAT nel seguente modo:

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

Prima di configurare NAT64, consulta Route e regole firewall.

Passaggi successivi