Indirizzi IP e porte

Questa pagina descrive come i gateway Cloud NAT utilizzano gli indirizzi IP e in che modo allocano le porte di origine alle istanze di macchine virtuali (VM) Compute Engine e ai nodi Google Kubernetes Engine (GKE) che utilizzano i gateway.

Prima di esaminare queste informazioni, consulta la panoramica di Cloud NAT.

Indirizzi IP NAT pubblici

Un indirizzo IP NAT pubblico è un indirizzo IP esterno a livello di regione instradabile su internet. Una VM senza un indirizzo IP esterno, che si trova in una subnet (subnet) gestita da un gateway NAT pubblico, utilizza un indirizzo IP NAT pubblico quando invia pacchetti a una destinazione su internet.

Per assegnare indirizzi IP NAT (Network Address Translation) a un gateway NAT pubblico, utilizza uno dei seguenti metodi:

  • Allocazione automatica degli indirizzi IP NAT. Quando selezioni questo metodo o scegli le impostazioni predefinite di Google Cloud, Public NAT aggiunge automaticamente indirizzi IP esterni regionali al gateway in base a quanto segue:

    • Il livello di rete selezionato
    • Il numero di VM che utilizzano il gateway
    • Il numero di porte riservate per ogni VM

    Anche il servizio NAT pubblico rimuove automaticamente un indirizzo IP NAT quando non ha più bisogno di porte di origine sull'indirizzo IP NAT.

    Di seguito sono riportate le caratteristiche dell'allocazione automatica degli indirizzi IP NAT:

    • Quando un gateway NAT pubblico aggiunge un indirizzo IP NAT, crea un indirizzo IP esterno regionale statico (prenotato) nel livello di rete che hai selezionato al momento della configurazione del gateway. Ad esempio, se hai selezionato il livello Premium, il gateway NAT pubblico crea l'indirizzo IP in quel livello. I livelli di rete supportati sono Premium (opzione predefinita) e Standard.

      Gli indirizzi IP NAT aggiunti automaticamente possono essere visualizzati nell'elenco di indirizzi IP esterni statici. Questi indirizzi non vengono conteggiati ai fini delle quote per progetto.

    • Se modifichi il livello di rete di un gateway NAT pubblico, vengono rilasciati gli indirizzi IP esistenti per il gateway e viene assegnato un nuovo insieme di indirizzi IP del livello selezionato.
    • Con l'allocazione automatica, non puoi prevedere il successivo indirizzo IP allocato. Se è necessario conoscere in anticipo l'insieme di possibili indirizzi IP NAT (ad esempio per creare una lista consentita), utilizza l'assegnazione manuale degli indirizzi IP NAT.
    • Quando gli indirizzi IP NAT aggiunti automaticamente non sono più in uso, vengono rimossi. Tuttavia, Public NAT posiziona un indirizzo solo quando l'ultima VM assegnata all'indirizzo non utilizza più porte. Di conseguenza, quando il numero di VM che utilizzano Public NAT diminuisce, potresti non notare una riduzione dell'IP . Il motivo è che Cloud NAT non rialloca dinamicamente le VM da un indirizzo IP a un altro perché la riassegnazione interromperebbe le connessioni stabilite. Finché almeno una VM utilizza un indirizzo IP, l'indirizzo IP rimane attivo e possono essere assegnate nuove VM.

      Se vuoi poter riallocare manualmente le VM da un indirizzo IP a un altro per ridurre al minimo l'utilizzo degli indirizzi IP, utilizza l'assegnazione manuale degli indirizzi IP NAT. L'assegnazione manuale degli indirizzi IP NAT consente di scaricare gli indirizzi IP NAT pubblici.

    • Se passi all'assegnazione manuale degli indirizzi IP NAT in un secondo momento, gli indirizzi IP esterni a livello di regione prenotati automaticamente vengono eliminati. Per ulteriori informazioni, consulta la sezione Cambio del metodo di assegnazione.

  • Assegnazione manuale degli indirizzi IP NAT. Quando selezioni questa opzione, crei e assegni manualmente indirizzi IP esterni statici (prenotati) regionali al tuo gateway NAT pubblico. Puoi assegnare manualmente gli indirizzi IP dal livello Premium, dal livello Standard o da entrambi, in base a conditions.

    • Puoi aumentare o diminuire il numero di indirizzi IP NAT assegnati manualmente modificando il gateway Cloud NAT.
    • Quando utilizzi l'assegnazione manuale di indirizzi IP NAT, devi calcolare il numero di indirizzi IP esterni regionali necessari per il gateway NAT pubblico. Se il gateway esaurisce gli indirizzi IP NAT, il servizio NAT pubblico elimina i pacchetti. I pacchetti eliminati vengono registrati quando utilizzi il logging di Cloud NAT per attivare il logging degli errori.
    • Per calcoli di esempio, consulta l'esempio di prenotazione di porte.

Per il numero massimo di indirizzi IP NAT allocati automaticamente o assegnati manualmente, consulta i limiti di Cloud NAT.

Assegna manualmente una combinazione di indirizzi IP del livello Premium e del livello Standard

Quando crei un gateway NAT pubblico con il metodo di assegnazione manuale degli indirizzi IP NAT, puoi assegnare una combinazione di indirizzi IP di livello Premium e di livello Standard a condizione che gli indirizzi IP di diversi livelli di rete non appartengano alla stessa regola (compresa la regola predefinita).

All'interno di una regola (compresa la regola predefinita), tutti gli indirizzi IP assegnati a intervalli attivi devono avere lo stesso livello di rete. Se provi a utilizzare indirizzi IP di livelli diversi nell'ambito della stessa regola, Google Cloud rifiuta la configurazione.

Cambia metodo di assegnazione

Puoi cambiare un gateway NAT pubblico dall'allocazione automatica degli indirizzi IP NAT all'assegnazione manuale degli indirizzi IP NAT. Tuttavia, gli indirizzi IP NAT non possono essere conservati. Anche se gli indirizzi IP NAT allocati automaticamente sono statici, non possono essere spostati in un'assegnazione manuale degli indirizzi IP NAT. Ad esempio, non puoi iniziare a utilizzare un gateway NAT pubblico con indirizzi IP NAT allocati automaticamente e in seguito utilizzare gli stessi indirizzi quando passi agli indirizzi IP NAT assegnati manualmente.

Il set di indirizzi IP esterni regionali che Public NAT utilizza per l'allocazione automatica degli indirizzi IP NAT è diverso dal set di indirizzi IP esterni regionali che puoi scegliere manualmente.

Svuota gli indirizzi IP NAT pubblici

Quando configuri un gateway NAT pubblico con l'assegnazione manuale degli indirizzi IP NAT, puoi scegliere cosa fare quando devi ridurre il numero di indirizzi IP NAT che il gateway utilizza:

  • Se rimuovi un indirizzo IP NAT assegnato manualmente, le connessioni NAT stabilite vengono interrotte immediatamente.

  • In alternativa, puoi scegliere di scaricare un indirizzo IP NAT assegnato manualmente. Lo svuotamento indica al gateway NAT pubblico di smettere di utilizzare l'indirizzo IP NAT per le nuove connessioni, ma di continuare a utilizzarlo per le connessioni stabilite. Le connessioni stabilite possono essere chiuse normalmente anziché essere terminate bruscamente. Per svuotare un indirizzo IP associato a un gateway NAT pubblico che non utilizza regole NAT, consulta Svuotare gli indirizzi IP esterni associati a NAT. Per svuotare un indirizzo IP associato a un gateway NAT che utilizza regole NAT, consulta Aggiornare le regole NAT.

Indirizzi IP NAT privati

Il servizio NAT privato richiede due reti Virtual Private Cloud (VPC), ciascuna configurata come spoke VPC sullo stesso hub di Network Connectivity Center. Per ulteriori informazioni sugli spoke VPC e su Network Connectivity Center, consulta la panoramica sugli spoke VPC.

Un indirizzo NAT privato è un indirizzo IPv4 interno a livello di regione che proviene dall'intervallo di indirizzi IPv4 principale di una subnet Private NAT situata nella stessa regione e nella stessa rete VPC di un gateway NAT privato. Un indirizzo IP NAT privato non è instradabile su internet. Gli indirizzi IP da intervalli di indirizzi IPv4 principali delle subnet NAT private possono essere utilizzati solo dai gateway NAT privato. Per creare una subnet NAT privato, aggiungi una subnet solo IPv4 utilizzando Google Cloud CLI e il flag --purpose=PRIVATE_NAT.

Dopo aver configurato un gateway NAT privato per fornire i servizi NAT per una subnet in una rete VPC connessa a un hub di Network Connectivity Center, le VM con interfacce di rete nella subnet possono inviare pacchetti alle risorse che si trovano in altri spoke VPC dell'hub. Al traffico in uscita, Google Cloud cambia l'indirizzo IP di origine in un indirizzo IP della subnet Private NAT associata al gateway.

Di seguito sono riportate le caratteristiche degli indirizzi IP Private NAT:

  • Non puoi assegnare automaticamente indirizzi IP Private NAT a un gateway NAT privato. Quando crei una regola in un gateway Private NAT, devi invece specificare manualmente le subnet NAT Private NAT. Le subnet NAT private devono trovarsi nella stessa rete VPC e nella stessa regione del gateway. Il gateway utilizza gli indirizzi IP solo dagli intervalli di indirizzi IPv4 principali delle subnet NAT privato.
  • Per determinare il numero di indirizzi IP NAT forniti da ogni subnet Private NAT, utilizza la seguente formula: 2(32 - PREFIX_LENGTH) - 4, dove PREFIX_LENGTH è la lunghezza della subnet mask dell'intervallo di indirizzi IPv4 principali della subnet Private NAT. Sono inutilizzabili quattro indirizzi IP nell'intervallo di indirizzi IPv4 principali di ogni subnet.

Porte

Ogni indirizzo IP NAT su un gateway Cloud NAT (sia Public NAT che Private NAT) offre 64.512 porte di origine TCP e 64.512 porte di origine UDP. TCP e UDP supportano ciascuno 65.536 porte per indirizzo IP, ma Cloud NAT non utilizza le prime 1024 porte note (con privilegi).

Quando un gateway Cloud NAT esegue Network Address Translation di origine (SNAT) su un pacchetto inviato da una VM, modifica l'indirizzo IP di origine NAT e la porta di origine del pacchetto.

Quando crei un gateway Cloud NAT, scegli se utilizzare l'allocazione delle porte statica o l'assegnazione dinamica delle porte. Quando modifichi la modalità di assegnazione delle porte, tutte le connessioni esistenti che utilizzano il gateway NAT pubblico vengono chiuse e devono essere ristabilite.

Se hai assegnato manualmente più indirizzi IP esterni a livello di regione statici (prenotati) al gateway NAT pubblico, una singola VM che utilizza il gateway può ottenere le porte richieste da qualsiasi indirizzo IP NAT assegnato, anche da più indirizzi IP NAT contemporaneamente.

Allocazione delle porte statica

Quando configuri l'allocazione statica delle porte, specifichi un numero minimo di porte per istanza VM. Se non specifichi il numero minimo di porte per la VM, Google Cloud utilizza il valore predefinito.

L'allocazione statica delle porte è abilitata per impostazione predefinita per Public NAT. Private NAT, invece, utilizza l'allocazione dinamica delle porte per impostazione predefinita.

Poiché a tutte le VM è allocato lo stesso numero di porte, l'allocazione statica delle porte funziona meglio se tutte le VM hanno un utilizzo del traffico in uscita simile. Se alcune VM utilizzano più porte di altre, il gateway Cloud NAT potrebbe essere sottoutilizzato. Se l'utilizzo in uscita varia, valuta la possibilità di configurare l'allocazione dinamica delle porte.

Se vuoi configurare la mappatura indipendente dagli endpoint sul gateway NAT pubblico, devi utilizzare un'allocazione statica delle porte. La mappatura indipendente dagli endpoint non è disponibile per i gateway NAT privati.

Allocazione dinamica delle porte

Quando configuri l'allocazione dinamica delle porte, specifichi un numero minimo di porte per istanza VM e un numero massimo di porte per istanza VM.

L'allocazione dinamica delle porte è abilitata per impostazione predefinita per Private NAT. Per Public NAT, devi configurare manualmente l'allocazione dinamica delle porte.

La configurazione dell'allocazione dinamica delle porte consente allo stesso gateway Cloud NAT di assegnare un numero diverso di porte per VM, in base all'utilizzo della VM. Inizialmente, a una VM viene allocato il numero minimo di porte per istanza VM. Se una VM sta per esaurire tutte le porte allocate, il numero di porte assegnate alla VM viene raddoppiato. La VM può richiedere ripetutamente più porte fino al numero massimo di porte per istanza VM. Quando l'utilizzo delle porte diminuisce in modo significativo, le porte vengono distribuite e possono essere allocate ad altre VM che utilizzano lo stesso gateway NAT.

L'allocazione dinamica delle porte offre i seguenti vantaggi:

  • Il numero di porte allocate ma non utilizzate viene ridotto.

  • Il gateway NAT monitora l'utilizzo delle porte di ogni VM e modifica il numero di porte allocate a ogni VM, in base alle esigenze. Non è necessario monitorare l'utilizzo delle porte o modificare la configurazione del gateway NAT.

Prima di utilizzare l'allocazione dinamica delle porte, considera quanto segue:

  • Se la mappatura indipendente degli endpoint è abilitata sul gateway Cloud NAT, non puoi configurare l'allocazione dinamica delle porte. Se hai bisogno di una mappatura indipendente dagli endpoint, utilizza l'allocazione statica delle porte.

  • Mentre vengono allocate porte aggiuntive alle VM, si potrebbero verificare timeout di connessione o latenza. Per le strategie volte a evitare interruzioni delle connessioni, consulta Ridurre le connessioni perse con l'allocazione dinamica delle porte

Cambia metodo di allocazione delle porte

Puoi passare dall'allocazione statica delle porte all'allocazione dinamica delle porte per un determinato gateway Cloud NAT.

Il passaggio al metodo di allocazione dinamica delle porte interrompe le connessioni NAT esistenti solo se viene soddisfatta una delle seguenti condizioni:

  • Puoi impostare il numero massimo di porte per VM su un valore inferiore al numero minimo di porte per VM specificato nella configurazione NAT precedente (con allocazione statica delle porte).

    Se nella configurazione precedente, il numero minimo di porte per VM era stato impostato su un valore superiore a 1024 e se specifichi 1024 come numero massimo di porte per VM nella nuova configurazione, le connessioni esistenti si interrompono perché la prima condizione ha la precedenza.

  • Hai impostato il numero massimo di porte per VM su un valore inferiore a 1024.

A meno che non sia soddisfatta una delle condizioni precedenti, il passaggio all'allocazione dinamica delle porte non interrompe le connessioni NAT esistenti.

La disabilitazione dell'allocazione dinamica delle porte e il passaggio all'allocazione statica delle porte causa problemi e interrompe tutte le connessioni NAT attive.

Procedura di prenotazione delle porte

Cloud NAT utilizza la seguente procedura per eseguire il provisioning dell'indirizzo IP di origine NAT e delle tuple delle porte di origine per ogni VM gestita dal gateway Cloud NAT (sia Public NAT che Private NAT).

  1. Cloud NAT determina gli indirizzi IP interni delle VM per i quali deve essere eseguito NAT. Gli indirizzi IP interni della VM sono determinati dagli intervalli di indirizzi IP delle subnet che il gateway è stato configurato per gestire.

    • Se il gateway NAT pubblico è configurato per eseguire NAT per l'intervallo di indirizzi IP principali della subnet utilizzata dall'interfaccia di rete della VM, esegue NAT per sia l'indirizzo IP interno principale della VM sia per qualsiasi intervallo IP alias della VM dall'intervallo di indirizzi IP principali della subnet.

    • Se il gateway NAT pubblico è configurato per eseguire NAT per un intervallo di indirizzi IP secondari della subnet utilizzata dall'interfaccia di rete della VM, esegue NAT per qualsiasi intervallo IP alias dall'intervallo di indirizzi IP secondari di quella subnet.

    Poiché un gateway NAT privato è configurato per eseguire NAT per tutti gli intervalli di indirizzi IP della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue la NAT per tutti gli intervalli IP di quella subnet.

  2. Se necessario, Cloud NAT regola il numero minimo di porte per istanza VM. Se è configurata un'allocazione statica delle porte e il gateway esegue la funzione NAT per intervalli IP alias che hanno più di un indirizzo (netmask inferiore a /32), Cloud NAT regola il numero minimo di porte per VM in modo che corrisponda al massimo di questi due valori:

    • Il numero minimo di porte per istanza VM specificato.

    • Il numero 1024

    In tutte le altre situazioni, anche quando è configurata l'allocazione dinamica delle porte, il gateway Cloud NAT procede al passaggio successivo utilizzando come input il numero minimo di porte specificate per istanza VM. Se non specifichi il numero minimo di porte per istanza VM, viene utilizzato il valore predefinito: 64 per l'allocazione statica delle porte e 32 per l'allocazione dinamica delle porte.

  3. Cloud NAT prenota l'indirizzo IP di origine NAT e le tuple delle porte di origine per ogni VM. Il gateway Cloud NAT utilizza il numero minimo di porte specificate o modificate per istanza VM nel passaggio precedente per calcolare il numero di tuple di porte IP di origine e di porte di origine NAT da assegnare alla VM.

    Per Public NAT, Google Cloud alloca l'indirizzo IP di origine NAT e le tuple delle porte di origine utilizzando multipli di due opzioni. In questo modo, il numero di tuple di indirizzi IP di origine e di porte di origine NAT è maggiore o uguale al numero minimo di porte per istanza VM specificato.

    Per Private NAT, Google Cloud alloca per ogni VM il doppio del numero di porte minime richieste per garantire l'affidabilità. Assicurati che la subnet da cui Private NAT assegna indirizzi IP e porte sia dimensionata in modo appropriato.

    • Se il gateway Cloud NAT utilizza due o più indirizzi IP NAT, è possibile che le tuple dell'indirizzo IP di origine e della porta di origine NAT coprano più di un indirizzo IP NAT. Un singolo indirizzo IP NAT potrebbe non disporre di un numero sufficiente di porte di origine per supportare il numero di indirizzi IP di origine NAT e le tuple delle porte di origine necessarie a una VM.

    • Il gateway Cloud NAT alloca l'indirizzo IP di origine e le tuppi delle porte di origine a ogni VM.

      • Se hai configurato l'allocazione statica delle porte, il numero di indirizzi IP e di tuple delle porte di origine è fisso. Ogni VM può utilizzare un numero massimo di indirizzi IP allocati e tuple di porte di origine, anche durante i burst del traffico.

      • Se hai configurato l'allocazione dinamica delle porte, il numero di indirizzi IP di origine e di tuple delle porte di origine può variare in base alla domanda. Se una VM sta per esaurire l'attuale allocazione delle porte, Cloud NAT assegna porte aggiuntive, fino al valore del numero massimo di porte per istanza VM specificato. Quando l'utilizzo delle porte della VM è sceso al di sotto di una soglia, le porte vengono rilasciate e possono essere allocate ad altre VM.

Aumenta porte per VM

Se hai configurato un gateway Cloud NAT con allocazione statica delle porte, quando aumenti il numero minimo di porte per VM sul gateway, il traffico non viene interrotto.

Se hai configurato un gateway Cloud NAT con allocazione dinamica delle porte, l'aumento del numero minimo, massimo o di entrambe le porte per VM non interrompe le connessioni NAT esistenti né interrompe il traffico che passa attraverso il gateway NAT.

Quando aumenti il numero di porte per la VM, considera quanto segue:

  • Quando utilizzi Public NAT con assegnazione manuale degli indirizzi IP NAT, devi calcolare il numero di indirizzi IP di origine NAT necessari. Prima di aumentare il numero minimo di porte per VM, assegna almeno questo numero di indirizzi IP NAT al gateway NAT pubblico.

  • Quando utilizzi Public NAT con l'allocazione automatica degli indirizzi IP NAT, aumentando il numero minimo di porte per VM consenti al gateway NAT pubblico di acquisire e allocare automaticamente più indirizzi IP esterni regionali.

  • Quando utilizzi Private NAT, assicurati che la subnet da cui il gateway alloca gli indirizzi IP abbia un numero adeguato di indirizzi IP.

Riduci le porte per VM

Se hai configurato un gateway Cloud NAT con allocazione statica delle porte e riduci il numero minimo di porte per VM sul gateway, non viene svuotato alcuna connessione. Le connessioni NAT stabilite vengono interrotte immediatamente e i client devono stabilire nuove connessioni TCP.

Se hai configurato un gateway Cloud NAT con allocazione dinamica delle porte, le seguenti istruzioni sono vere:

  • La riduzione del numero minimo di porte per VM non interrompe le connessioni NAT esistenti né interrompe il traffico che passa attraverso il gateway NAT.
  • La riduzione del numero massimo di porte per VM comporta l'interruzione immediata di tutte le connessioni NAT esistenti. Inoltre, il numero di porte allocate per tutte le VM viene temporaneamente reimpostato sul valore specificato per il numero minimo di porte per VM.

Porte e connessioni

Il numero di tuple di indirizzi IP e porte di origine NAT che un gateway Cloud NAT riserva per una VM limita il numero di connessioni che la VM può effettuare a una destinazione univoca:

  • Per destinazione univoca si intende una terza tupla univoca costituita da un indirizzo IP di destinazione, una porta di destinazione e un protocollo IP (ad esempio TCP o UDP).

  • Una connessione indica una tupla univoca a 5 tuple composta dall'indirizzo IP di origine NAT e dalla tupla della porta di origine combinata con una tupla di destinazione univoca. Poiché il protocollo UDP è senza connessione, il concetto di connessione si riduce a una tupla di 5 tuple associata a un datagramma UDP univoco.

Supponiamo che un gateway Cloud NAT calcoli 1024 per il numero fisso di porte per una VM seguendo la procedura di prenotazione delle porte. Il gateway Cloud NAT prenota 1024 combinazioni univoche di indirizzi IP di origine NAT e tuple delle porte di origine per la VM. Il gateway Cloud NAT può elaborare 1024 connessioni simultanee a ciascuna destinazione univoca a 3 tuple. Tuttavia, Cloud NAT considera le connessioni chiuse come inutilizzabili per 120 secondi dopo la chiusura della connessione, il che può influire sul numero di connessioni in uso alla volta.

Esempi:

  • Il gateway supporta 1024 connessioni simultanee all'indirizzo IP di destinazione 203.0.113.99 sulla porta 80 tramite il protocollo TCP.

  • Il gateway supporta altre 1024 connessioni simultanee allo stesso indirizzo IP di destinazione sulla porta 443, utilizzando anch'essa il protocollo TCP.

  • Il gateway supporta altre 1024 connessioni simultanee a un indirizzo IP di destinazione diverso sulla porta 80, anche utilizzando il protocollo TCP.

Riutilizzo simultaneo delle porte e mappatura indipendente dagli endpoint

Se almeno un'informazione nelle tre tuple di destinazione cambia (l'indirizzo IP di destinazione, la porta di destinazione, il protocollo), lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine possono essere utilizzati contemporaneamente per molte connessioni diverse.

Il servizio NAT pubblico utilizza la mappatura indipendente degli endpoint, come definito nella Sezione 2.3 di RFC 5128. Di conseguenza, il numero di connessioni simultanee che una VM client può effettuare su una tupla di destinazione univoca potrebbe essere ridotto se Public NAT assegna lo stesso indirizzo IP di origine e la stessa tupla della porta di origine NAT a più di un indirizzo IP interno e di una porta di origine temporanea di una VM client. Le probabilità che ciò avvenga aumentano se la VM client ha un numero elevato di indirizzi IP di origine interni e crea un gran numero di connessioni alla stessa tupla di destinazione. La prima volta che una VM client invia un pacchetto da un indirizzo IP interno e una porta di origine temporanea, il servizio NAT pubblico crea una mappatura indipendente dagli endpoint tra i seguenti:

  • L'indirizzo IP interno e la tupla della porta di origine temporanea
  • Un indirizzo IP di origine NAT univoco e una tupla della porta di origine

Ad esempio, quando una VM client invia un pacchetto dal suo indirizzo IP interno 10.0.0.2 utilizzando la porta di origine temporanea 10001, Public NAT assegna 10.0.0.2:10001. Questa tupla di indirizzi IP e porte di origine NAT viene quindi utilizzata per tutte le connessioni successive da 10.0.0.2:10001 a qualsiasi tupla a 3 tuple di destinazione.

Se la stessa VM utilizza una porta di origine temporanea diversa per inviare un pacchetto, ad esempio 10.0.0.2:20002, Public NAT assegna anche un indirizzo IP di origine NAT e una tupla di porte di origine per tutte le connessioni successive da 10.0.0.2:20002 a qualsiasi tupla a 3 tupla di destinazione. È possibile che Public NAT possa assegnare lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine a entrambi questi indirizzi IP interni e tuple delle porte di origine temporanee, causando un conflitto indipendente tra endpoint in determinate situazioni.

Per un esempio più dettagliato, consulta Esempio di conflitto di mappatura indipendente dagli endpoint.

Riduci i conflitti indipendenti degli endpoint

Puoi apportare modifiche alla configurazione per ridurre i conflitti indipendenti degli endpoint. Per maggiori informazioni, consulta Pacchetti eliminati con conflitto indipendente degli endpoint.

Ritardo per il riutilizzo della porta di origine TCP

Dopo che un gateway Cloud NAT chiude una connessione TCP, Google Cloud applica un ritardo prima che il gateway possa riutilizzare lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine con la stessa destinazione (indirizzo IP di destinazione, porta di destinazione e protocollo). La durata del ritardo è controllata dall'impostazione Timeout TCP TIME_WAIT.

Se necessario, puoi ridurre questo ritardo modificando il valore predefinito del timeout TCP TIME_WAIT. Per informazioni su come modificare i timeout NAT, consulta Modificare i timeout NAT. In alternativa, puoi apportare una delle seguenti modifiche:

  • Aumenta il numero minimo di porte per istanza VM in modo che la procedura di prenotazione delle porte assegni alla VM più indirizzi IP di origine NAT e tuple delle porte di origine.

  • Se una VM deve aprire e chiudere rapidamente le connessioni TCP nello stesso indirizzo IP e nella stessa porta di destinazione utilizzando lo stesso protocollo, invece di Cloud NAT, assegna un indirizzo IP esterno alla VM e utilizza le regole firewall per limitare le connessioni in entrata non richieste.

Porte di origine e sicurezza

Se dipendi dalla randomizzazione della porta di origine come misura di sicurezza, devi considerare quanto segue:

  • Aumenta il numero minimo di porte per istanza VM in modo che la procedura di prenotazione delle porte assegni alla VM più indirizzi IP di origine NAT e tuple delle porte di origine. L'aumento del numero minimo di porte per istanza VM assegna un intervallo di porte in modo casuale a ogni VM; tuttavia, la porta di origine scelta da questo intervallo è sequenziale.

  • Assegna un indirizzo IP esterno alla VM anziché utilizzare Public NAT.

Esempi

I seguenti esempi dimostrano come Cloud NAT prenota gli indirizzi IP e le porte di origine NAT per una VM e come esegue la traduzione NAT per i pacchetti inviati a internet.

Prenotazione porte

I seguenti esempi mostrano le applicazioni della procedura di prenotazione delle porte.

Supponiamo che tu stia configurando un gateway NAT pubblico per fornire NAT per l'intervallo di indirizzi IP principali di una subnet e che le VM che utilizzano quella subnet non abbiano intervalli IP alias dall'intervallo di indirizzi IP principali della subnet. Arrotonda per difetto il risultato di qualsiasi operazione di divisione al numero intero più vicino. ⌊⌋ è la funzione minimo (numero intero più grande), ovvero scarta qualsiasi risultato frazionario della divisione.

  • Se configuri il gateway NAT pubblico con un singolo indirizzo IP NAT utilizzando l'assegnazione manuale e imposti il numero minimo di porte per istanza VM su 64, il gateway può fornire servizi NAT per un massimo di 1008 VM:

    ⌊(1 indirizzo IP NAT) × (64.512 porte per indirizzo) / (64 porte per VM)⌋ = 1008 VM

  • Se hai bisogno di supportare più di 1008 VM, puoi assegnare un secondo indirizzo IP NAT al gateway Cloud NAT. Con due indirizzi IP NAT, mantenendo 64 il numero minimo di porte per VM, puoi supportare 2016 VM:

    ⌊(2 indirizzi IP NAT) × (64.512 porte per indirizzo) / (64 porte per VM)⌋ = 2016 VM

  • Se imposti il numero minimo di porte per VM su 4096, ogni indirizzo IP NAT può supportare 15 VM. Questo calcolo viene arrotondato per difetto al numero intero più vicino:

    ⌊(1 indirizzi IP NAT) × (64.512 porte per indirizzo) / (4096 porte per VM)⌋ = 15 VM

Supponiamo che tu stia configurando un gateway NAT privato per fornire NAT per tutti gli indirizzi IP di una subnet:

  • La dimensione minima che puoi creare per una subnet è otto indirizzi IPv4, ovvero una subnet mask di /29. Se configuri un gateway NAT privato con una subnet NAT di dimensioni minime e imposti il numero minimo di porte per istanza VM su 64, il gateway può fornire servizi NAT per un massimo di 2016 VM:

    ⌊(2(32-29) - 4) indirizzi IP NAT × (64.512 porte per indirizzo) / (64 porte per VM × 2)⌋ = 2016 VM

    Nell'esempio precedente, se imposti il numero minimo di porte per istanza VM su 1024, il gateway può fornire servizi NAT per un massimo di 126 VM:

    ⌊(2(32-29) - 4) indirizzi IP NAT × (64.512 porte per indirizzo) / (1024 porte per VM × 2)⌋ = 126 VM

  • Se configuri un gateway NAT privato con una subnet mask NAT di /28 e imposti il numero minimo di porte per istanza VM su 64, il gateway può fornire servizi NAT per un massimo di 6048 VM:

    ⌊(2(32-28) - 4) indirizzi IP NAT × (64.512 porte per indirizzo) / (64 porte per VM × 2)⌋ = 6048 VM

Conflitto di mappatura indipendente dagli endpoint

L'esempio seguente illustra in che modo la mappatura indipendente dagli endpoint potrebbe ridurre il numero di connessioni simultanee da una VM client alla stessa tupla di destinazione, anche quando è disponibile un numero sufficiente di tuple di indirizzi IP di origine NAT e tuple di porte di origine per la VM client.

Supponi di aver configurato un gateway NAT pubblico per fornire NAT per l'intervallo di indirizzi IP principali di una subnet. Hai creato una VM client con un'interfaccia di rete il cui indirizzo IP interno principale è 10.0.0.2 in quella subnet. Alla VM di esempio non è assegnato un indirizzo IP esterno alla propria interfaccia di rete.

  1. La VM apre una connessione con le seguenti caratteristiche:

    • Porta e indirizzo IP interno di origine: 10.0.0.2:10001
    • Tupla di destinazione: 203.0.113.1:80 tramite TCP
    • Il servizio NAT pubblico utilizza il seguente indirizzo IP di origine NAT e la seguente tupla della porta di origine: 192.0.2.10:30009
  2. La VM apre una seconda connessione con le seguenti caratteristiche:

    • Porta e indirizzo IP interno di origine: 10.0.0.2:10002
    • Tupla di destinazione: 203.0.113.2:80 tramite TCP
    • Il servizio NAT pubblico potrebbe scegliere di utilizzare lo stesso indirizzo IP di origine NAT e la tupla della porta di origine,192.0.2.10:30009 anche per questa connessione. È possibile utilizzare lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine per un indirizzo IP client diverso e una porta di origine temporanea.
  3. Sebbene sia la prima che la seconda connessione siano attive, Public NAT non può aprire una terza connessione TCP con le seguenti caratteristiche:

    • Stesso indirizzo IP interno di origine e stessa porta della prima connessione: 10.0.0.2:10001
    • A 3 tuple di destinazione uguale alla seconda connessione: 203.0.113.2:80 tramite TCP

    Questo terzo tentativo di connessione viene ignorato con un errore di conflitto indipendente dall'endpoint perché la mappatura indipendente dagli endpoint stabilita dalla prima connessione impone che tutte le connessioni da 10.0.0.2:10001 utilizzino lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine, 192.0.2.10:30009. Tuttavia, 192.0.2.10:30009 è già utilizzato dalla seconda connessione TCP a 203.0.113.2:80.

  4. Per chiarire le ambiguità, un successivo tentativo di connessione in questo esempio ha esito positivo a condizione che una delle seguenti condizioni sia vera:

    • La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove la mappatura indipendente dagli endpoint tra 10.0.0.2:10001 e 192.0.2.10:30009, quindi la terza connessione può essere mappata a un indirizzo IP di origine NAT e a una tupla di porte di origine diversi per comunicare con 203.0.113.2:80 tramite TCP.
    • La seconda connessione TCP è stata chiusa. Se chiudi la connessione, 10.0.0.2:10001 potrà utilizzare l'indirizzo IP di origine NAT e la porta di origine 192.0.2.10:30009 per comunicare con 203.0.113.2:80 mediante TCP.
    • Il terzo tentativo di connessione seleziona una porta di origine temporanea (interna) diversa. In questo esempio, una mappatura indipendente dagli endpoint ha stabilito una mappatura many-to-one per gli indirizzi IP di origine NAT interni e le porte di origine 10.0.0.2:10001 e 10.0.0.2:10002 per utilizzare 192.0.2.10:30009 durante la comunicazione con 203.0.113.2:80 mediante TCP. Se il terzo tentativo di connessione utilizza una porta di origine temporanea diversa sia da 10001 sia da 10002, è possibile che un indirizzo IP di origine NAT e una porta di origine diversi possano essere utilizzati per comunicare con 203.0.113.2:80 tramite TCP.
    • Disattivare l'indipendenza degli endpoint. L'attivazione/disattivazione consente alla nuova connessione da 10.0.0.2:10001 di non dover utilizzare 192.0.2.10:30009, il che consente di utilizzare un indirizzo IP di origine NAT e una porta diversi.

Per le tecniche che puoi utilizzare per evitare conflitti, consulta Ridurre i conflitti indipendenti degli endpoint.

Passaggi successivi