NAT pubblico

Il NAT pubblico consente alle istanze di macchine virtuali (VM) 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 utilizza il gateway per creare connessioni in uscita a internet.

Configurazione e flusso di lavoro di NAT pubblico di base

Il seguente diagramma mostra una configurazione di base di NAT pubblico:

Esempio di traduzione NAT pubblica.
Esempio di traduzione Public NAT (fai clic per ingrandire).

In questo esempio:

  • Il gateway nat-gw-us-east è configurato per essere applicato all'intervallo di indirizzi IP principali subnet-1 nella regione us-east1. Una VM la cui interfaccia di rete non dispone di un indirizzo IP esterno può inviare traffico a internet utilizzando l'indirizzo IP interno principale o un intervallo IP alias dall'intervallo di indirizzi IP principali 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 NAT pubblico 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 subnet-3 nella regione europe-west1. Una VM la cui interfaccia di rete non dispone di un indirizzo IP esterno può inviare traffico a internet utilizzando l'indirizzo IP interno principale o un intervallo IP alias dall'intervallo di indirizzi IP principali subnet-3, 192.168.1.0/24.

Flusso di lavoro per NAT pubblico di esempio

Nel diagramma precedente, una VM con indirizzo IP interno principale 10.240.0.4 e senza 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
  • Due indirizzi IP NAT (Network Address Translation) assegnati manualmente: 192.0.2.50 e 192.0.2.60
  • NAT fornito 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 delle porte di origine per ciascuna delle VM nella rete. Ad esempio, il gateway NAT pubblico prenota 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, pertanto il gateway prenota il seguente set di 64 indirizzi IP di origine NAT e tuppi delle porte di origine per quella VM:

  • Da 192.0.2.50:34000 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 traduzione SNAT (Network Address Translation) di origine in uscita, riscrivendo l'indirizzo IP di origine 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. Una route predefinita soddisfa solitamente questo requisito.

    • Indirizzo IP di origine NAT: 192.0.2.50, da uno degli indirizzi IP di origine NAT riservati della VM e dalle tuple delle porte di origine
    • Porta di origine: 34022, una porta di origine inutilizzata 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, non modificato
  • Quando il server di aggiornamento invia un pacchetto di risposta, questo arriva al 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, non modificato
  • Il gateway nat-gw-us-east esegue la Network Address Translation di destinazione (DNAT) sul pacchetto di risposta, riscrivendo l'indirizzo 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, non modificata
    • 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, non modificato

Specifiche

Specifiche generali

Puoi configurare un gateway NAT pubblico in modo da fornire NAT a internet per i pacchetti inviati da:

  • L'indirizzo IP interno principale dell'interfaccia di rete della VM 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 la traduzione 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 requisiti di accesso a internet di Google Cloud. L'esistenza di un indirizzo IP esterno su un'interfaccia ha sempre la precedenza e esegue sempre il NAT one-to-one, senza utilizzare Public NAT.

  • 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 il servizio 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 il NAT one-to-one per gli indirizzi IP alias.

  • Per i cluster Google Kubernetes Engine (GKE), Public NAT 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 queste connessioni. Ogni gateway NAT pubblico esegue la NAT di origine in uscita e la NAT di destinazione per i pacchetti di risposta stabiliti.

La NAT pubblico non consente le richieste in entrata non richieste da internet, anche se le regole firewall sarebbero altrimenti consentite. Per maggiori informazioni, vedi RFC applicabili.

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

Route e regole firewall

Il servizio NAT pubblico si basa su route statiche personalizzate i cui hop successivi rappresentano il gateway internet predefinito. Per utilizzare al meglio un gateway NAT pubblico, la tua rete Virtual Private Cloud ha bisogno di una route predefinita il cui hop successivo è il gateway internet predefinito. Per maggiori informazioni, consulta la pagina relativa alle interazioni di routing.

Il servizio NAT pubblico non ha requisiti per le regole Cloud NGFW. Le regole firewall vengono applicate direttamente alle interfacce di rete delle VM di Compute Engine, non dei 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 delle subnet a cui applicare il gateway.

Puoi configurare un gateway NAT pubblico per fornire NAT per:

  • 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 della subnet delle VM idonee le cui interfacce di rete utilizzano una subnet nella regione. Puoi creare gateway NAT pubblici aggiuntivi 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 un numero illimitato di gateway NAT pubblico, in base alle quote e ai limiti di Public NAT. Puoi scegliere quali intervalli di indirizzi IP principali o secondari della subnet devono essere gestiti da ciascun gateway.

Più gateway NAT pubblici

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

  • 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 specifici utilizzando una mappatura Cloud NAT personalizzata.

Finché i gateway NAT mappati non si sovrappongono, puoi creare tutti i gateway NAT pubblici necessari, in base alle quote e ai limiti per NAT pubblico. Per ulteriori informazioni, consulta le limitazioni dei gateway Cloud NAT.

Larghezza di banda

L'utilizzo di un gateway NAT pubblico non modifica la quantità di larghezza di banda in uscita o in entrata che una VM può utilizzare. Per le specifiche relative alla larghezza di banda, che variano in base al tipo di macchina, consulta 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, 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 e ciò rende l'interfaccia non idonea per Public NAT, mentre un'altra delle sue interfacce può essere idonea per NAT se l'interfaccia non ha un indirizzo IP esterno e se hai configurato un gateway NAT pubblico per applicare l'intervallo di indirizzi IP della subnet appropriato.

Indirizzi IP e porte NAT

Quando crei un gateway NAT pubblico, puoi scegliere che il gateway assegni automaticamente gli indirizzi IP esterni a livello di regione. In alternativa, puoi assegnare manualmente un numero fisso di indirizzi IP esterni a livello di regione al gateway.

Per un gateway NAT pubblico con allocazione automatica di 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.

    Viene allocato automaticamente un nuovo insieme di indirizzi IP nel livello appena selezionato e vengono fornite nuove allocazioni delle 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 conditions.

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 Public NAT riserva a ogni VM per cui deve fornire i servizi NAT. Puoi configurare l'allocazione statica delle porte, con lo stesso numero di porte riservato a ogni VM, oppure l'allocazione dinamica delle porte, in cui il numero di porte prenotate può variare tra il limite minimo e massimo specificati.

Le VM per cui fornire NAT sono determinate dagli intervalli di indirizzi IP delle subnet che il gateway è configurato per gestire.

Per saperne di più sulle porte, consulta Porte.

RFC applicabili

Il 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 è disabilitata quando crei un gateway NAT.

Mappatura indipendente dagli endpoint significa che se una VM invia pacchetti da un determinato indirizzo IP interno e coppia di porte a più destinazioni diverse, il gateway mappa tutti i pacchetti alla stessa coppia di porte e indirizzo IP NAT, indipendentemente dalla destinazione dei pacchetti. Per i dettagli e le implicazioni pertinenti alla mappatura indipendente dagli endpoint, consulta Riutilizzo simultaneo delle porte e mappatura indipendente dagli endpoint.

Filtro dipendente dagli endpoint significa che i pacchetti di risposta da internet consentono di entrare 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 può essere configurata dall'utente.

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

Public NAT è un Port Restricted Cone NAT, come definito nel documento RFC 3489.

NAT Traversal

Se la mappatura indipendente dagli endpoint è abilitata, Public NAT è compatibile con i protocolli NAT Traversal 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 about NAT, RFC 5766) consente la comunicazione tra le VM dietro NAT tramite un terzo server, dove tale server ha un indirizzo IP esterno. Ogni VM si connette all'indirizzo IP esterno del server e questo server inoltra le comunicazioni tra le due VM. TURN è più solido, ma consuma più larghezza di banda e risorse.

Timeout NAT

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

Passaggi successivi