Public NAT
Public NAT consente alle istanze di macchine virtuali (VM) Google Cloud che non hanno indirizzi IP pubblici di comunicare con internet utilizzando un insieme di indirizzi IP pubblici condivisi. Cloud NAT utilizza un gateway Public NAT che alloca un insieme di indirizzi IP esterni e porte di origine a ogni VM che utilizza il gateway per creare connessioni in uscita a internet.
Configurazione e flusso di lavoro di base di Public NAT
Il seguente diagramma mostra una configurazione di NAT pubblico di base:
In questo esempio:
Il gateway
nat-gw-us-east
è configurato per essere applicato all'intervallo di indirizzi IP principale disubnet-1
nella regioneus-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 primario disubnet-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 NAT pubblico si applica a qualsiasi intervallo di indirizzi IP di quella subnet.Il gateway
nat-gw-eu
è configurato per essere applicato all'intervallo di indirizzi IP principale disubnet-3
nella regioneeurope-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 primario disubnet-3
,192.168.1.0/24
.
Esempio di flusso di lavoro Public NAT
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 (Network Address Translation):
192.0.2.50
e192.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 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 a192.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
- Indirizzo IP di origine:
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 destinazione203.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
- Indirizzo IP di origine NAT:
Quando il server di aggiornamento invia un pacchetto di risposta, questo pacchetto 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
- Indirizzo IP di origine:
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 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
- Indirizzo IP di origine:
Specifiche
Specifiche generali
Puoi configurare un gateway NAT pubblico per fornire NAT a internet 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 è stato 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 principale dell'interfaccia perché l'interfaccia di rete soddisfa i requisiti di accesso a internet di Google Cloud. 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 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 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.
Il NAT pubblico consente le connessioni in uscita e le risposte in entrata a queste connessioni. Ogni gateway 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 consentirebbero altrimenti queste richieste. Per ulteriori informazioni, consulta le RFC applicabili.
Ogni gateway NAT pubblico è associato a una singola rete VPC, regione e router Cloud. Il gateway NAT pubblico e il router Cloud forniscono un piano di controllo, non sono coinvolti nel piano dati, pertanto i pacchetti non passano attraverso il gateway NAT pubblico o il router Cloud.
Route e regole firewall
Public NAT si basa su route statiche personalizzate i cui hop successivi sono il gateway internet predefinito. Per utilizzare completamente un gateway NAT pubblico, la rete Virtual Private Cloud deve avere una route predefinita il cui hop successivo sia il gateway internet predefinito. Per ulteriori informazioni, consulta la sezione Interazioni con le route.
Public NAT non ha requisiti per le regole Cloud NGFW. Le regole firewall vengono applicate direttamente alle interfacce di rete delle VM Compute Engine, non ai gateway NAT pubblici.
Non devi creare regole firewall speciali che consentano connessioni a o da indirizzi IP NAT. Quando un gateway NAT pubblico fornisce NAT per l'interfaccia di rete di una VM, le regole del firewall di uscita applicabili vengono valutate come pacchetti per l'interfaccia di rete prima del NAT. Le regole del firewall di ingresso vengono valutate dopo che i pacchetti sono stati elaborati da NAT.
Applicabilità dell'intervallo di indirizzi IP della subnet
Puoi configurare il gateway NAT pubblico in modo da fornire NAT per l'indirizzo IP interno principale o per gli intervalli IP alias dell'interfaccia di rete della VM. Puoi eseguire questa configurazione scegliendo gli intervalli di indirizzi IP della subnet a cui deve essere applicato il gateway.
Puoi configurare un gateway Public NAT per fornire la NAT per quanto segue:
-
Intervalli di indirizzi IP principali e secondari di tutte le subnet nella regione. Un singolo gateway NAT pubblico fornisce la traduzione 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 nella regione. Questa opzione utilizza esattamente un gateway NAT per regione.
-
Intervalli di indirizzi IP principali di tutte le subnet nella regione. Un singolo gateway NAT pubblico fornisce la 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 nella regione. Puoi creare altri gateway NAT pubblici nella regione per fornire NAT per gli intervalli IP alias dagli intervalli di indirizzi IP secondari della subnet delle VM idonee.
-
Elenco di subnet personalizzate. Un singolo gateway NAT pubblico fornisce la traduzione 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 da un elenco di subnet specificate.
-
Intervalli di indirizzi IP delle subnet personalizzate. Puoi creare tutti i gateway 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.
Più gateway NAT pubblici
Puoi avere più gateway NAT pubblici 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 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 NAT pubblici necessari, rispettando le quote e i limiti di NAT pubblico. Per ulteriori informazioni, consulta Limiti dei gateway Cloud NAT.
Larghezza di banda
L'utilizzo di un gateway NAT pubblico 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 NAT pubblico può essere applicato solo a una singola interfaccia di rete di una VM. Gateway NAT pubblici separati 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 IP 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 IP esterno e hai configurato un gateway NAT pubblico da applicare all'intervallo di indirizzi IP della subnet appropriato.
Indirizzi IP e porte NAT
Quando crei un gateway NAT pubblico, puoi scegliere di lasciare che il gateway assegni automaticamente indirizzi IP esterni regionali. In alternativa, puoi assegnare manualmente un numero fisso di indirizzi IP esterni regionali al gateway.
Per un gateway NAT pubblico con allocazione automatica dell'indirizzo IP NAT, tieni presente quanto segue:
- Puoi selezionare Network Service Tiers (livello Premium o livello Standard) da cui il gateway NAT pubblico alloca gli indirizzi IP.
Quando modifichi il livello di un gateway NAT pubblico che ha indirizzi IP NAT allocati automaticamente, Google Cloud rilascia tutti gli indirizzi IP assegnati per quel gateway e ritira 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 NAT pubblico, puoi anche assegnare manualmente gli indirizzi IP del livello Premium o del livello 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 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 interni 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 documento 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.
Passaggi successivi
- Scopri di più sulle interazioni dei prodotti Cloud NAT.
- Scopri di più su indirizzi e porte Cloud NAT.
- Configura Cloud NAT.
- Scopri di più sulle regole di Cloud NAT.
- Crea una configurazione Compute Engine di esempio.
- Crea un'esempio di configurazione di Google Kubernetes Engine.
- Risolvi i problemi comuni.