NAT pubblico
Il NAT pubblico consente alle istanze di macchine virtuali (VM) di Google Cloud che non hanno indirizzi IP pubblici di comunicare con Internet, utilizzando un set di indirizzi IP pubblici condivisi. Cloud NAT utilizza un gateway NAT pubblico che alloca un insieme di indirizzi IP esterni e porte di origine a ogni VM che lo utilizza per creare connessioni in uscita verso Internet.
Flusso di lavoro e configurazione di NAT pubblico di base
Il seguente diagramma mostra una configurazione di base di NAT pubblico:
In questo esempio:
Il gateway
nat-gw-us-east
è configurato per essere applicato all'intervallo di indirizzi IP principali disubnet-1
nell'area geograficaus-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 principali 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é a nessun intervallo di indirizzi IP pubblici si applica qualsiasi intervallo di indirizzi IP della subnet.Il gateway
nat-gw-eu
è configurato per essere applicato all'intervallo di indirizzi IP principali disubnet-3
nell'area geograficaeurope-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 principali disubnet-3
,192.168.1.0/24
.
Esempio di flusso di lavoro NAT pubblico
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
- Assegnati manualmente due indirizzi IP con Network Address Translation (NAT):
192.0.2.50
e192.0.2.60
- Fornito NAT per l'intervallo di indirizzi IP principali di
subnet-1
Il servizio NAT pubblico segue la procedura di prenotazione delle porte per prenotare i seguenti indirizzi IP di origine NAT e tuple di porta di origine 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 prenotate, quindi il gateway riserva il seguente set di 64 coppie di indirizzi IP e porte di origine NAT per la VM:
- Da
192.0.2.50
:34000
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 richieste 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
, indirizzo IP esterno del server di aggiornamento - Porta di destinazione:
80
, la porta di destinazione del traffico HTTP verso il server di aggiornamento - Protocollo:
TCP
- Indirizzo IP di origine:
Il gateway
nat-gw-us-east
esegue Network Address Translation (SNAT) di origine sul traffico in uscita, riscrivendo l'indirizzo IP NAT e la porta di origine del pacchetto di richieste. 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. Un percorso predefinito, in genere, soddisfa questo requisito.- Indirizzo IP di origine NAT:
192.0.2.50
, da uno degli indirizzi IP di origine e di origine NAT della VM riservati e tuple di porta di origine - Porta di origine:
34022
, una porta di origine inutilizzata da una delle tuple di porta di origine riservata 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, quel pacchetto arriva sul gateway
nat-gw-us-east
con i seguenti attributi:- Indirizzo IP di origine:
203.0.113.1
, 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 dell'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) nel pacchetto di risposta, riscrivendo l'indirizzo di destinazione e la porta di destinazione del pacchetto di risposta in modo che il pacchetto 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:
L'indirizzo IP interno principale dell'interfaccia di rete della VM di Compute Engine, a condizione che all'interfaccia di rete non sia assegnato un indirizzo IP esterno. Se all'interfaccia di rete è assegnato un indirizzo IP esterno, Google Cloud esegue automaticamente il NAT personalizzato per i pacchetti le cui origini corrispondono all'indirizzo IP interno principale dell'interfaccia perché quest'ultima soddisfa i requisiti di accesso a Internet di Google Cloud. L'esistenza di un indirizzo IP esterno su un'interfaccia ha sempre la precedenza ed è sempre in grado di eseguire una NAT 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 NAT pubblico per fornire NAT ai 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), il servizio NAT pubblico può fornire servizio anche se, in determinate circostanze, il cluster ha indirizzi IP esterni. Per maggiori dettagli, consulta Interazione con GKE.
Il servizio NAT pubblico consente le connessioni in uscita e le risposte in entrata a tali connessioni. Ogni gateway di NAT pubblico esegue NAT di origine sul traffico in uscita e NAT di destinazione per i pacchetti di risposta stabiliti.
Il servizio NAT pubblico non consente richieste in entrata dall'account Internet non richieste, anche se tali regole lo consentirebbero altrimenti. Per ulteriori informazioni, consulta la sezione RFC.
Ogni gateway NAT pubblico è associato a una singola rete VPC, a una singola regione e a un router Cloud. Il gateway Public NAT e il router Cloud forniscono un piano di controllo, ovvero non sono coinvolti nel piano dati, quindi i pacchetti non passano attraverso il gateway Cloud NAT o il router Cloud.
Route e regole firewall
Il NAT pubblico si basa su route statiche personalizzate i cui hop successivi sono il gateway Internet predefinito. Per utilizzare al meglio un gateway NAT pubblico, la rete Cloud privata virtuale richiede una route predefinita il cui hop successivo è il gateway Internet predefinito. Per ulteriori informazioni, consulta Interazioni con i percorsi.
Il NAT pubblico non ha requisiti delle regole firewall firewall. Le regole firewall si applicano direttamente alle interfacce di rete delle VM di Compute Engine, non ai gateway NAT pubblici.
Non è necessario creare regole firewall speciali che consentano le connessioni da o verso gli indirizzi IP NAT. Quando un gateway NAT pubblico fornisce NAT per l'interfaccia di rete di una VM, le regole firewall in uscita applicabili vengono valutate come pacchetti per l'interfaccia di rete prima di NAT. Le regole firewall in entrata 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 che fornisca NAT per l'indirizzo IP interno principale dell'interfaccia di rete VM, gli intervalli IP alias o entrambi. Per effettuare questa configurazione, scegli gli intervalli di indirizzi IP di subnet a cui applicare il gateway.
Puoi configurare un gateway NAT pubblico per fornire NAT per quanto segue:
-
Intervalli di indirizzi IP principali e secondari di tutte le subnet nella regione. Un singolo gateway NAT pubblico 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 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 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 gateway gateway NAT pubblici nella regione per fornire NAT per intervalli IP alias da intervalli di indirizzi IP secondari della subnet delle VM idonee.
-
Elenco di subnet personalizzate. Un singolo gateway NAT pubblico 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 da un elenco di subnet specificate.
-
Intervalli di indirizzi IP di subnet personalizzati. Puoi creare tutti i gateway NAT pubblici necessari, in base alle quote e ai limiti di NAT NAT. Sei tu a scegliere quali intervalli di indirizzi IP principali o secondari della subnet devono essere pubblicati da ciascun gateway.
Larghezza di banda
L'uso di un gateway NAT pubblico non cambia 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 a seconda del tipo di macchina, consulta Larghezza di banda di rete nella documentazione di Compute Engine.
VM con più interfacce di rete
Se configuri una VM per avere più interfacce di rete, ogni interfaccia deve trovarsi in una rete VPC separata. Di conseguenza, si verifica quanto segue:
- Un gateway NAT pubblico può essere applicato a una sola 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 la rende non idonea per la NAT pubblica, mentre un'altra interfaccia può essere idonea per NAT se questa interfaccia 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 che il gateway allochi automaticamente gli indirizzi IP esterni a livello di regione. In alternativa, puoi assegnare manualmente un numero fisso di indirizzi IP esterni a livello di area geografica al gateway.
Per un gateway NAT pubblico con allocazione automatica degli indirizzi IP NAT, considera quanto segue:
- Puoi selezionare Network Service Tiers (livello Premium o standard) da cui il gateway NAT pubblico assegna gli indirizzi IP.
Quando modifichi il livello per un gateway NAT pubblico che ha allocato automaticamente indirizzi IP NAT, Google Cloud rilascia tutti gli indirizzi IP assegnati per quel gateway e ritira tutte le allocazioni delle porte.
Un nuovo set di indirizzi IP dal livello appena selezionato viene allocato automaticamente e vengono fornite nuove allocazioni di porte a tutti gli endpoint.
Per un determinato gateway NAT pubblico, puoi anche assegnare manualmente gli indirizzi IP dal livello Premium o dal livello Standard o da entrambi, in base a determinate condizioni.
Per maggiori dettagli sull'assegnazione degli indirizzi IP NAT, consulta Indirizzi IP NAT pubblici.
Puoi configurare il numero di porte di origine che ogni gateway NAT NAT riserva su ogni VM per cui deve fornire i servizi NAT. Puoi configurare l'allocazione statica delle porte, in cui è riservato lo stesso numero di porte per ogni VM, oppure l'allocazione dinamica delle porte, in cui il numero di porte prenotate può variare tra i limiti minimo e massimo specificati.
Le VM per le quali deve essere fornita la NAT sono determinate dagli intervalli di indirizzi IP di subnet che il gateway è configurato per la gestione.
Per ulteriori informazioni sulle porte, consulta la pagina Porte.
RFC applicabili
Il servizio NAT pubblico supporta la mappatura indipendente dagli endpoint e il filtro dipendente dagli endpoint come definito in RFC 5128. Puoi abilitare o disabilitare la mappatura indipendente dagli endpoint. Per impostazione predefinita, la mappatura indipendente degli endpoint viene disattivata quando crei un gateway NAT.
Mapping indipendente dagli endpoint significa che se una VM invia pacchetti da una determinata coppia di indirizzi IP e porta interni a più destinazioni diverse, il gateway mappa tutti questi pacchetti sullo stesso indirizzo IP e coppia di porte NAT, indipendentemente dalla destinazione dei pacchetti. Per dettagli e implicazioni relativi alla mappatura indipendente dagli endpoint, consulta Riutilizzo simultaneo delle porte e mappatura indipendente degli endpoint.
Filtro dipendente dagli endpoint significa che i pacchetti di risposta da Internet possono essere inseriti solo se provengono da un indirizzo IP e da una porta a cui una VM aveva 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.
Il NAT pubblico è un NAT del cono limitato della porta come definito nel documento RFC 3489.
Attraversamento NAT
Se il mapping indipendente dagli endpoint è abilitato, il servizio 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 VM dietro NAT quando viene stabilito un canale di comunicazione.
- turn (Traversal Using Relay around NAT, RFC 5766) consente la comunicazione tra le VM protette da NAT tramite un terzo server in cui il server ha un indirizzo IP esterno. Ogni VM si connette all'indirizzo IP esterno del server e il server inoltra la comunicazione tra le due VM. turn è più robusto, ma richiede più larghezza di banda e risorse.
Timeout NAT
I gateway NAT pubblici utilizzano i seguenti timeout. Puoi modificare i valori di timeout predefiniti per ridurre o aumentare la frequenza di riutilizzo delle porte. Ogni valore di timeout è un equilibrio tra l'utilizzo efficiente delle risorse NAT pubblica e la possibile interruzione di connessioni, flussi o sessioni attive.
Timeout | Descrizione | NAT pubblico predefinito | Configurabile |
---|---|---|---|
Timeout di inattività della mappatura UDP RFC 4787 REQ-5 |
Specifica il tempo in secondi dopo il quale i flussi UDP devono interrompere l'invio del traffico agli endpoint in modo che le mappature Public NAT vengano rimosse. Il timeout per inattività della mappatura UDP influisce su due endpoint che smettono di inviare traffico l'uno all'altro. Influisce anche sugli endpoint con tempi di risposta più lunghi o in caso di maggiore latenza di rete. Puoi aumentare il valore di timeout specificato per ridurre la frequenza con cui le porte possono essere riutilizzate. Se il valore di timeout è maggiore, le porte vengono mantenute per connessioni più lunghe e proteggono dalle pause nel traffico su un socket UDP specifico. |
30 secondi | Sì |
Timeout di inattività della connessione stabilita TCP RFC 5382 REQ-5 |
Specifica il tempo in secondi per cui una connessione è inattiva prima che le mappature NAT pubbliche vengano rimosse. Il timeout per inattività della connessione stabilita TCP influisce sugli endpoint che richiedono tempi di risposta più lunghi o in caso di maggiore latenza di rete. Puoi aumentare il valore di timeout quando vuoi aprire le connessioni TCP e tenerle aperte per molto tempo senza che sia presente un meccanismo di keepalive. |
1200 secondi (20 minuti) | Sì |
Timeout di inattività della connessione transitoria TCP RFC 5382 REQ-5 |
Specifica il tempo in secondi durante il quale le connessioni TCP possono rimanere in stato di semiapertura prima di poter eliminare le mappature NAT pubblica. Il timeout per inattività della connessione TCP transitoria influisce su un endpoint quando un endpoint esterno richiede un periodo più lungo rispetto all'ora specificata o quando la latenza di rete è maggiore. A differenza del timeout di inattività della connessione stabilita TCP, il timeout per inattività della connessione transitoria TCP influisce solo sulle connessioni semiaperte.
|
30 secondi Nota: indipendentemente dal valore impostato per questo timeout, il servizio NAT pubblico potrebbe richiedere fino a 30 secondi in più prima che un indirizzo IP di origine e una tupla di porta di origine NAT possano essere utilizzati per elaborare una nuova connessione. |
Sì |
Timeout TCP_WAIT RFC 5382 REQ-5 |
Specifica l'intervallo di tempo in secondi per cui una connessione TCP completamente chiusa viene mantenuta nelle mappature NAT pubblica dopo la scadenza della connessione. Il timeout TIME_WAIT TCP protegge i tuoi endpoint interni dalla ricezione di pacchetti non validi che appartengono a una connessione TCP chiusa e che vengono ritrasmessi. Puoi ridurre il valore di timeout per migliorare il riutilizzo delle porte Public NAT, con la possibilità di ricevere pacchetti ritrasmessi da una connessione non collegata in precedenza. |
120 secondi Nota: indipendentemente dal valore impostato per questo timeout, il servizio NAT pubblico potrebbe richiedere fino a 30 secondi in più prima che un indirizzo IP di origine e una tupla di porta di origine NAT possano essere utilizzati per elaborare una nuova connessione. |
Sì |
Timeout di inattività della mappatura ICMP RFC 5508 REQ-2 |
Specifica il tempo in secondi dopo il quale le mappature Public NAT di Internet Control Message Protocol (ICMP) senza flussi di traffico vengono chiuse. Il timeout di inattività della mappatura ICMP interessa un endpoint quando quest'ultimo impiega più tempo per rispondere rispetto al tempo specificato o in caso di maggiore latenza di rete. |
30 secondi | Sì |
Passaggi successivi
- Scopri di più sulle interazioni con i 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 di esempio di Compute Engine.
- Crea un esempio di configurazione di Google Kubernetes Engine.
- Risolvere i problemi comuni.