Indirizzi IP e porte

Questa pagina descrive come i gateway Cloud NAT utilizzano gli indirizzi IP e come 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 regionale instradabile su internet. Una VM senza un indirizzo IP esterno, che si trova in una sottorete servita 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 Public NAT, utilizza uno dei seguenti metodi:

  • Allocazione automatica di indirizzi IP NAT. Quando selezioni questo metodo o scegli i valori predefiniti di Google Cloud, Public NAT aggiunge automaticamente indirizzi IP esterni regionali al tuo 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

    La traduzione NAT pubblica rimuove automaticamente un indirizzo IP NAT anche quando non ha più bisogno di porte di origine su quell'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 (riservato) nel livello di rete 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, gli indirizzi IP esistenti per quel gateway vengono rilasciati e viene assegnato un nuovo insieme di indirizzi IP del livello selezionato.
    • Con l'allocazione automatica, non puoi prevedere l'indirizzo IP successivo assegnato. Se devi conoscere in anticipo l'insieme di possibili indirizzi IP NAT (ad esempio per creare una lista consentita), devi utilizzare l'assegnazione manuale degli indirizzi IP NAT.
    • Quando gli indirizzi IP NAT aggiunti automaticamente non sono più in uso, vengono rimossi. Tuttavia, Public NAT dealloca un indirizzo solo quando l'ultima VM assegnata all'indirizzo non utilizza più alcuna porta. Di conseguenza, quando il numero di VM che utilizzano Public NAT diminuisce, potresti non notare una riduzione degli IP . Il motivo è che Cloud NAT non rialloca dinamicamente le VM da un indirizzo IP a un altro perché la riallocazione interromperebbe le connessioni stabilite. Finché almeno una VM utilizza un indirizzo IP, questo 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 le assegnazioni manuali degli indirizzi IP NAT. L'assegnazione manuale degli indirizzi IP NAT consente di svuotare gli indirizzi IP NAT pubblici.

    • Se in un secondo momento passi all'assegnazione manuale dell'indirizzo IP NAT, gli indirizzi IP esterni regionali riservati automaticamente vengono eliminati. Per ulteriori informazioni, consulta la sezione Cambiare il metodo di assegnazione.

  • Assegnazione manuale dell'indirizzo IP NAT. Se selezioni questa opzione, crei e assegni manualmente indirizzi IP esterni regionali statici (prenotati) al tuo gateway NAT pubblico. Puoi assegnare manualmente gli indirizzi IP dal livello Premium, dal livello Standard o da entrambi, rispettando alcune condizioni.

    • Puoi aumentare o diminuire il numero di indirizzi IP NAT assegnati manualmente modificando il gateway Cloud NAT.
    • Quando utilizzi l'assegnazione manuale dell'indirizzo IP NAT, devi calcolare il numero di indirizzi IP esterni regionali di cui hai bisogno per il gateway Public NAT. Se il gateway esaurisce gli indirizzi IP NAT, il NAT pubblico perde i pacchetti. I pacchetti persi vengono registrati quando utilizzi il logging di Cloud NAT per attivare il logging degli errori.
    • Per esempi di calcoli, consulta l'esempio di prenotazione della porta.

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

Assegnare manualmente una combinazione di indirizzi IP di livello Premium e Standard

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

All'interno di una regola (inclusa la regola predefinita), tutti gli indirizzi IP assegnati agli intervalli attivi devono appartenere allo stesso livello di rete. Se provi a utilizzare indirizzi IP di livelli diversi all'interno della stessa regola, Google Cloud rifiuta la configurazione.

Cambia metodo di assegnazione

Puoi passare da un gateway NAT pubblico con assegnazione automatica dell'indirizzo IP NAT a un gateway con assegnazione manuale dell'indirizzo IP NAT. Tuttavia, gli indirizzi IP NAT non possono essere conservati. Anche se gli indirizzi IP NAT assegnati 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 poi utilizzare gli stessi indirizzi quando passi a indirizzi IP NAT assegnati manualmente.

L'insieme di indirizzi IP esterni regionali utilizzati da Public NAT per l'allocazione automatica degli indirizzi IP NAT è diverso dall'insieme di indirizzi IP esterni regionali che puoi scegliere manualmente.

Scaricare gli indirizzi IP NAT pubblici

Quando configuri un gateway Public NAT con l'assegnazione manuale degli indirizzi IP NAT, puoi scegliere cosa succede quando devi ridurre il numero di indirizzi IP NAT utilizzati dal gateway:

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

  • In alternativa, puoi scegliere di svuotare un indirizzo IP NAT assegnato manualmente. Lo svuotamento incarica il gateway NAT pubblico di interrompere l'utilizzo dell'indirizzo IP NAT per le nuove connessioni, ma di continuare a utilizzarlo per le connessioni stabilite. Le connessioni stabilite possono chiudersi 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

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

Dopo aver configurato un gateway Private NAT per fornire servizi NAT per una sottorete in una rete VPC, le VM con interfacce di rete in quella sottorete possono inviare pacchetti alle risorse situate in altre reti, ad esempio reti VPC collegate allo stesso hub Network Connectivity Center della rete che ospita il gateway Private NAT o reti esterne a Google Cloud collegate a Google Cloud tramite Cloud Interconnect o Cloud VPN. In uscita, Google Cloud modifica l'indirizzo IP di origine in un indirizzo IP della sottorete 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 Private NAT. Invece, quando crei una regola in un gateway NAT privato, specifichi manualmente la subnet o le subnet NAT private. Le subnet NAT private devono trovarsi nella stessa rete VPC e nella stessa regione del gateway. Il gateway utilizza solo gli indirizzi IP degli intervalli di indirizzi IPv4 principali delle subnet NAT private.
  • Per determinare quanti indirizzi IP NAT può fornire ogni subnet NAT privata, utilizza la seguente formula: 2(32 - PREFIX_LENGTH) - 4, dove PREFIX_LENGTH è la lunghezza della subnet mask dell'intervallo di indirizzi IPv4 primario della subnet NAT privata. Quattro indirizzi IP non sono utilizzabili nell'intervallo di indirizzi IPv4 principale 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 ben note (privilegiate).

Quando un gateway Cloud NAT esegue la Network Address Translation (SNAT) dell'origine 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 statica delle porte o l'allocazione dinamica delle porte. Puoi cambiare il metodo di allocazione delle porte dopo aver creato il gateway. Per informazioni su come la modifica del metodo di allocazione delle porte per un gateway Cloud NAT influisce sulle connessioni stabilite, consulta Modificare il metodo di allocazione delle porte.

Se hai assegnato manualmente più indirizzi IP esterni regionali statici (riservati) al tuo gateway NAT pubblico, una singola VM che utilizza il gateway può ottenere le porte richieste da uno qualsiasi degli indirizzi IP NAT assegnati, anche da più indirizzi IP NAT contemporaneamente.

Allocazione 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 VM, Google Cloud utilizza il valore predefinito.

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

Poiché a tutte le VM viene allocato lo stesso numero di porte, l'allocazione statica delle porte funziona al meglio se tutte le VM hanno un utilizzo in uscita simile. Quando è configurata l'allocazione delle porte statiche, il numero di porte allocate a ogni VM è fisso e non cambia se alcune VM utilizzano più porte di altre o se una VM esaurisce tutte le sue porte. Se l'utilizzo in uscita varia, valuta la possibilità di configurare l'allocazione dinamica delle porte.

Se vuoi configurare il mapping indipendente dagli endpoint sul tuo gateway Public NAT, devi utilizzare l'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. Public NAT utilizza l'allocazione statica delle porte per impostazione predefinita.

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

L'allocazione dinamica delle porte presenta 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 della porta o modificare la configurazione del gateway NAT.

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

Cambia il metodo di allocazione delle porte

Puoi passare dall'allocazione delle porte statiche all'allocazione delle porte dinamiche per un determinato gateway Cloud NAT.

Il passaggio al metodo di allocazione delle porte dinamiche interrompe le connessioni NAT esistenti solo se si verifica una delle seguenti condizioni:

  • Imposti 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 delle porte statica).

    Se nella configurazione precedente il numero minimo di porte per VM era impostato su un valore superiore a 1024 e se nella nuova configurazione specifichi 1024 come numero massimo di porte per VM, le connessioni esistenti vengono interrotte 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 disattivazione dell'allocazione dinamica delle porte e il passaggio all'allocazione statica delle porte comporta interruzione del servizio 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 di porta di origine per ogni VM servita dal gateway Cloud NAT (sia Public NAT che Private NAT).

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

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

    • Se il gateway Public NAT è configurato per eseguire la NAT per un intervallo di indirizzi IP secondario della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue la NAT per tutti gli intervalli IP alias dell'intervallo di indirizzi IP secondario della subnet.

    Poiché un gateway Private NAT è configurato per eseguire la 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 l'allocazione statica delle porte e il gateway esegue il NAT per intervalli IP di alias con più di un indirizzo (maschera di rete inferiore a /32), Cloud NAT regola il numero minimo di porte per VM in modo che sia il massimo di questi due valori:

    • Le porte minime per istanza VM specificate

    • Il numero 1024

    In tutte le altre situazioni, inclusa la configurazione dell'allocazione dinamica delle porte, il gateway Cloud NAT passa al passaggio successivo utilizzando come input le porte minime specificate per istanza VM. Se non specifichi il numero minimo di porte per istanza VM, viene utilizzato il valore predefinito: 64 per l'allocazione delle porte statiche e 32 per l'allocazione delle porte dinamiche.

  3. Cloud NAT riserva tuple di indirizzo IP di origine e porta di origine NAT per ogni VM. Il gateway Cloud NAT utilizza le porte minime per istanza VM specificate o aggiustate del passaggio precedente per calcolare il numero di tuple di indirizzo IP di origine e porta di origine NAT da assegnare alla VM.

    Per NAT pubblico, Google Cloud alloca l'indirizzo IP di origine e le tuple di porte di origine di NAT utilizzando potenze di 2 multiple, quindi il numero di tuple di porte di origine e di indirizzi IP di origine di NAT è maggiore o uguale al numero minimo di porte per istanza VM specificato.

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

    • Se il gateway Cloud NAT utilizza due o più indirizzi IP NAT, è possibile che le tuple di indirizzo IP di origine e porta di origine NAT coprono più di un indirizzo IP NAT. Un singolo indirizzo IP NAT potrebbe non avere porte di origine disponibili sufficienti per soddisfare il numero di tuple di indirizzi IP di origine e porte di origine NAT di cui una VM ha bisogno.

    • Il gateway Cloud NAT alloca tuple di indirizzo IP di origine e porta di origine a ogni VM.

      • Se hai configurato l'allocazione delle porte statiche, il numero di indirizzi IP di origine e di tuple di porte di origine è fisso. Ogni VM non può utilizzare più del numero di tuple di indirizzo IP di origine e porta di origine allocati, anche durante le esplosioni di traffico.

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

Aumentare le porte per VM

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

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

Tieni presente quanto segue quando aumenti il numero di porte per VM:

  • Quando utilizzi la traduzione NAT pubblica con l'assegnazione manuale degli indirizzi IP NAT, devi calcolare il numero di indirizzi IP di origine NAT di cui hai bisogno. 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, l'aumento del numero minimo di porte per VM fa sì che il gateway Public NAT acquisisca e lotti 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 il numero di porte per VM

Se hai configurato un gateway Cloud NAT con allocazione delle porte statica e riduci il numero minimo di porte per VM sul gateway, non viene eseguito il riassorbimento delle connessioni. 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 affermazioni sono vere:

  • La riduzione del numero minimo di porte per VM non interrompe le connessioni NAT esistenti o il traffico che passa attraverso il gateway NAT.
  • La riduzione del numero massimo di porte per VM interrompe immediatamente tutte le connessioni NAT esistenti e il numero di porte allocate per tutte le VM viene reimpostato temporaneamente sul valore specificato per il numero minimo di porte per VM.

Porte e connessioni

Il numero di tuple di indirizzo IP di origine e porta 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 3 tuple univoca composta da un indirizzo IP di destinazione, una porta di destinazione e un protocollo IP (ad esempio TCP o UDP).

  • Per connection si intende una 5 tuple univoca composta dall'indirizzo IP di origine NAT e dalla tuple della porta di origine combinata con una 3 tuple di destinazione univoca. Poiché il protocollo UDP è senza connessione, il concetto di connessione è ridotto a una tupla di 5 elementi 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 riserva 1024 combinazioni univoche di tuple di indirizzo IP di origine e porta di origine NAT per la VM. Il gateway Cloud NAT può elaborare 1024 connessioni simultanee a ogni tupla di tre elementi di destinazione univoca. Tuttavia, Cloud NAT considera le connessioni chiuse non utilizzabili per 120 secondi dopo la chiusura della connessione, il che può influire sul numero di connessioni in uso contemporaneamente.

Esempi:

  • Il gateway supporta 1024 connessioni simultanee all'indirizzo IP di destinazione203.0.113.99 sulla porta 80 utilizzando il protocollo TCP.

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

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

Riutilizzo simultaneo delle porte e mappatura indipendente dagli endpoint

Purché almeno una informazione nella tripla di destinazione cambi, ovvero l'indirizzo IP di destinazione, la porta di destinazione o il protocollo, la stessa tuple di indirizzo IP di origine e porta di origine NAT può essere utilizzata contemporaneamente per molte connessioni diverse.

NAT pubblico utilizza la mappatura indipendente dagli endpoint, come definito nella sezione 2.3 del documento RFC 5128. Di conseguenza, il numero di connessioni simultanee che una VM client può effettuare a una tripla di destinazione univoca potrebbe essere ridotto se il NAT pubblico assegna la stessa tripla di indirizzo IP di origine e porta di origine NAT a più indirizzi IP interni e porte di origine effimere di una VM client. Le probabilità che ciò accada aumentano se la VM client ha un numero elevato di indirizzi IP di origine interni ed esegue un numero elevato di connessioni alla stessa tupla di 3 elementi di destinazione. La prima volta che una VM client invia un pacchetto da un indirizzo IP interno e da una porta di origine temporanea, la NAT pubblica crea una mappatura molti-a-uno indipendente dall'endpoint tra quanto segue:

  • La coppia di indirizzo IP interno e porta di origine temporanea
  • Un indirizzo IP di origine NAT e una porta di origine univoci

Ad esempio, quando una VM client invia un pacchetto dal proprio 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 indirizzo IP di origine NAT e porta di origine viene poi utilizzata per tutte le connessioni successive da 10.0.0.2:10001 a qualsiasi tupla di 3 elementi di destinazione.

Se la stessa VM utilizza una porta di origine effimera diversa per inviare un pacchetto, ad esempio 10.0.0.2:20002, il NAT pubblico assegna anche un indirizzo IP di origine NAT e una tuple di porta di origine per tutte le connessioni successive da 10.0.0.2:20002 a qualsiasi tuple di destinazione. È possibile che Public NAT assegni la stessa tupla di indirizzo IP di origine e porta di origine NAT a entrambi questi indirizzi IP interni e tuple di porte di origine temporanee, causando un conflitto indipendente dall'endpoint in determinate situazioni.

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

Ridurre i conflitti indipendenti dagli endpoint

Puoi apportare modifiche alla configurazione per ridurre i conflitti indipendenti dall'endpoint. Per ulteriori informazioni, consulta Pacchetti persi con motivo Conflitto indipendente dall'endpoint.

Ritardo per il riutilizzo della porta di origine TCP

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

Se necessario, puoi ridurre questo ritardo modificando il valore predefinito del tempo di attesa 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ù tuple di indirizzo IP di origine e porta di origine NAT.

  • Se una VM deve aprire e chiudere rapidamente le connessioni TCP allo stesso indirizzo IP di destinazione e alla stessa porta di destinazione utilizzando lo stesso protocollo, anziché 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 fai affidamento sulla 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ù tuple di indirizzo IP di origine e porta di origine NAT. 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 quell'intervallo è sequenziale.

  • Assegna un indirizzo IP esterno alla VM invece di utilizzare Public NAT.

Esempi

Gli esempi riportati di seguito mostrano come Cloud NAT riserva indirizzi IP di origine e porte di origine NAT per una VM e come esegue il NAT per i pacchetti inviati a internet.

Prenotazione porta

Gli esempi riportati di seguito mostrano le applicazioni della procedura di prenotazione delle porte.

Supponiamo che tu stia configurando un gateway NAT pubblico per fornire la traduzione NAT per l'intervallo di indirizzi IP principale di una subnet e che le VM che utilizzano la subnet non abbiano intervalli IP alias dall'intervallo di indirizzi IP principale della subnet. Arrotonda per difetto il risultato di qualsiasi operazione di divisione al numero intero più vicino. ⌊⌋ è la funzione di frazione inferiore (intero maggiore), ovvero viene ignorato 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 devi supportare più di 1008 VM, puoi assegnare un secondo indirizzo IP NAT al gateway Cloud NAT. Con due indirizzi IP NAT, mantenendo invariato il numero minimo di porte per VM a 64, 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 indirizzo 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 della subnet che puoi creare è di otto indirizzi IPv4, ovvero una subnet mask di /29. Se configuri un gateway NAT privato con una sottorete 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 Private NAT 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 tuple di destinazione, anche quando è disponibile un numero sufficiente di tuple di porta e indirizzo IP di origine NAT per la VM client.

Supponiamo che tu abbia configurato un gateway Public NAT per fornire NAT per l'intervallo di indirizzi IP principale 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 è stato assegnato un indirizzo IP esterno alla sua interfaccia di rete.

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

    • Indirizzo IP interno e porta di origine: 10.0.0.2:10001
    • Tripla di destinazione: 203.0.113.1:80 tramite TCP
    • La traduzione NAT pubblica utilizza la seguente tuple di indirizzo IP di origine e porta di origine NAT: 192.0.2.10:30009
  2. La VM apre una seconda connessione con le seguenti caratteristiche:

    • Indirizzo IP interno e porta di origine: 10.0.0.2:10002
    • Tripla di destinazione: 203.0.113.2:80 tramite TCP
    • Il NAT pubblico potrebbe scegliere di utilizzare lo stesso indirizzo IP di origine NAT e la stessa tuple di porta di origine192.0.2.10:30009 anche per questa connessione. È possibile utilizzare la stessa tuple di indirizzo IP di origine NAT e porta di origine per un indirizzo IP di client e una porta di origine temporanea diversi.
  3. Quando sono attive sia la prima che la seconda connessione, Public NAT non può aprire una terza connessione TCP con le seguenti caratteristiche:

    • Stessa porta e stesso indirizzo IP interno di origine della prima connessione: 10.0.0.2:10001
    • Stessa tupla di tre elementi di destinazione della seconda connessione: 203.0.113.2:80 utilizzando 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 debbano utilizzare la stessa tupla di indirizzo IP di origine NAT e porta di origine, 192.0.2.10:30009. Tuttavia, 192.0.2.10:30009 è già in uso dalla seconda connessione TCP a 203.0.113.2:80.

  4. Per eliminare ogni ambiguità, un tentativo di connessione successivo in questo esempio è riuscito se è vera una delle seguenti condizioni:

    • La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove la mappatura indipendente dall'endpoint tra 10.0.0.2:10001 e 192.0.2.10:30009, pertanto la terza connessione può essere mappata a un indirizzo IP di origine NAT e a una tuple di porta di origine diversi per comunicare con 203.0.113.2:80 utilizzando TCP.
    • La seconda connessione TCP è stata chiusa. La chiusura della connessione consente a 10.0.0.2:10001 di utilizzare l'indirizzo IP di origine e la porta di origine NAT 192.0.2.10:30009 per comunicare con 203.0.113.2:80 tramite TCP.
    • Il terzo tentativo di connessione seleziona un'altra porta di origine temporanea (interna). In questo esempio, una mappatura indipendente dall'endpoint ha stabilito una mappatura molti a uno per gli indirizzi IP di origine e le porte di origine NAT interni 10.0.0.2:10001 e 10.0.0.2:10002 per utilizzare 192.0.2.10:30009 quando si comunica con 203.0.113.2:80 utilizzando TCP. Se il terzo tentativo di connessione utilizza una porta di origine temporanea diversa da 10001 e 10002, è possibile che per comunicare con 203.0.113.2:80 tramite TCP venga utilizzato un indirizzo IP di origine e una porta di origine NAT diversi.
    • Disattiva l'indipendenza dell'endpoint. Questa operazione consente alla nuova connessione da 10.0.0.2:10001 di non dover utilizzare 192.0.2.10:30009, ma di utilizzare un indirizzo IP e una porta di origine NAT diversi.

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

Passaggi successivi