Indirizzi IP e porte
Questa pagina descrive come i gateway Cloud NAT utilizzano gli indirizzi IP e come allocano porte di origine alle istanze di macchine virtuali (VM) Compute Engine. e dai 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 un una subnet (subnet) gestita da un gateway Public NAT, utilizza un Indirizzo IP pubblico NAT quando invia pacchetti a una destinazione su internet.
Per assegnare gli indirizzi IP Network Address Translation (NAT) a un gateway Public NAT, utilizza uno dei utilizza i seguenti metodi:
Allocazione automatica degli indirizzi IP NAT. Quando selezioni questo metodo, oppure per scegliere le impostazioni predefinite di Google Cloud, Public NAT aggiunge automaticamente indirizzi IP esterni a livello di regione 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
Il servizio NAT pubblico rimuove automaticamente un indirizzo IP NAT quando non necessita più 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 (riservato) nel livello di rete selezionato al momento della configurazione del gateway. Ad esempio, se disponi selezionato al livello Premium, il gateway Public NAT crea in quel livello. I livelli di rete supportati sono il livello Premium (predefinito) ) e il livello 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 sono state assegnate. 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 applica il deal di un indirizzo solo quando l'ultima VM assegnata all'indirizzo non usa 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 esegue dinamicamente riallocare le VM da un indirizzo IP a un altro perché interrompere 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 seguito passi all'assegnazione manuale degli indirizzi IP NAT, vengono eliminati gli indirizzi IP esterni a livello di regione prenotati. Per ulteriori informazioni, consulta la sezione Cambiare il metodo di assegnazione.
Assegnazione manuale dell'indirizzo IP NAT. Quando selezioni questa opzione, crei e assegnare manualmente indirizzi IP esterni a livello di regione 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 degli indirizzi IP NAT, devi calcolare il numero di indirizzi IP esterni a livello di regione necessari per il Public NAT gateway VPN ad alta disponibilità. 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 diversi i livelli nell'ambito 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 allocati automaticamente statici, non possono essere spostati in un'assegnazione manuale di indirizzi IP NAT. Per ad esempio, non puoi iniziare a utilizzare un gateway Public NAT indirizzi IP NAT allocati e in seguito utilizzeranno gli stessi indirizzi quando agli indirizzi IP NAT assegnati manualmente.
Il set di indirizzi IP esterni a livello di regione utilizzato da Public NAT l'allocazione automatica degli indirizzi IP NAT è diversa dall'insieme indirizzi IP esterni 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 si interrompono 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 NAT privato è un indirizzo IPv4 interno regionale che proviene dall'intervallo di indirizzi IPv4 principale di una sottorete NAT privata situata nella stessa regione e nella stessa rete VPC di un gateway NAT privato. Un indirizzo IP Private NAT non è instradabile su internet. Indirizzi IP da intervalli di indirizzi IPv4 principali di
Le subnet Private NAT possono essere utilizzate solo
i gateway Private NAT. 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. Per il traffico in uscita, Google Cloud cambia indirizzo IP di origine a un indirizzo IP dalla subnet Private NAT associato 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 per il gateway Private NAT, devi specificare manualmente Subnet o subnet NAT private. NAT privato le subnet devono trovarsi nella stessa rete VPC e nella stessa regione il gateway. Il gateway utilizza solo gli indirizzi IP dell'indirizzo IPv4 principale delle subnet Private NAT.
- Per determinare quanti indirizzi IP NAT può fornire ogni subnet NAT privata, utilizza la seguente formula:
2(32 - PREFIX_LENGTH) - 4
, dovePREFIX_LENGTH
è la lunghezza della subnet mask dell'intervallo di indirizzi IPv4 primario della subnet NAT privata. Quattro indirizzi IP vengono inutilizzabile in ogni l'intervallo di indirizzi IPv4 principale della subnet.
Porte
Ogni indirizzo IP NAT su un gateway Cloud NAT (sia Public NAT sia 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 e la porta di origine del NAT del pacchetto.
Quando crei un gateway Cloud NAT, puoi scegliere se utilizzare l'allocazione statica delle porte o l'allocazione dinamica delle porte. Tu può modificare 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, devi specificare 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 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. Se alcune VM utilizzano più porte rispetto ad altre, le porte del gateway Cloud NAT potrebbero essere poco utilizzate. Se l'utilizzo del traffico in uscita varia. Valuta la possibilità di configurare porta dinamica allocazione.
Se vuoi configurare una mappatura indipendente dagli endpoint sul 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 valore 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 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 è chiusa esaurire tutte le porte allocate, il numero di porte assegnato alla VM è 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 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 la porta utilizzo o regolare 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 è possibile 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, potresti vedere timeout o latenza. Per conoscere le strategie utili a evitare i problemi di connessione, vedi Riduci le connessioni interrotte con la porta dinamica allocazione
Cambia metodo di allocazione delle porte
Puoi passare dall'allocazione statica delle porte all'allocazione dinamica delle porte per un del 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:
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 specifichi1024
come numero massimo di porte per VM, le connessioni esistenti vengono interrotte perché la prima condizione ha la precedenza.Imposti il numero massimo di porte per VM su un valore inferiore a
1024
.
A meno che non venga 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 sono operazioni che possono causare interruzioni e interrompono tutte le connessioni NAT attive.
Procedura di prenotazione delle porte
Cloud NAT utilizza la seguente procedura per il provisioning dell'indirizzo IP di origine NAT e tuple di porte di origine per ogni VM utilizzata da Cloud NAT (sia Public NAT) e Private NAT).
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 intervalli di indirizzi IP di subnet per cui il gateway è stato configurato.
Se il gateway Public NAT è configurato per eseguire NAT per dell'intervallo di indirizzi IP principali della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue la traduzione NAT sia per l'indirizzo IP interno principale della VM uno qualsiasi degli intervalli IP alias della VM dall'interfaccia nell'intervallo di indirizzi IP principali.
Se il gateway Public NAT è configurato per eseguire NAT per un dell'intervallo di indirizzi IP secondari della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue NAT per qualsiasi intervallo IP alias dall'istanza secondaria della subnet Intervallo di indirizzi IP.
Poiché un gateway Private NAT è configurato per eseguire NAT per tutti gli indirizzi IP di intervalli della subnet utilizzata dall'interfaccia di rete della VM, il gateway tramite NAT per tutti gli intervalli IP di quella subnet.
Cloud NAT regola il numero minimo di porte per istanza VM necessario. 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:Il numero minimo di porte 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 e32
per l'allocazione delle porte dinamiche.Cloud NAT prenota tuple di porte di origine e di indirizzo IP di origine NAT per ogni VM. Il gateway Cloud NAT utilizza il numero minimo specificato o modificato porte per istanza VM del passaggio precedente per calcolare il numero di NAT tuple di porte di origine e di indirizzo IP di origine da assegnare alla VM.
Per Public NAT, Google Cloud alloca l'IP di origine NAT di destinazione e tuple di porte di origine utilizzando multipli di potenze di due, quindi il numero L'indirizzo IP di origine NAT e le tuple di porte di origine sono maggiori o uguali al il 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 NAT privato che assegna indirizzi IP e le porte siano dimensionate correttamente.
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 disporre di un numero sufficiente porte di origine disponibili per contenere il numero di indirizzi IP di origine NAT e le tuple di porte di origine necessarie per una VM.
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 può utilizzare al massimo il suo di tuple di indirizzi IP di origine e di porte di origine, anche durante burst di traffico.
Se hai configurato l'allocazione dinamica delle porte, il numero di IP di origine e le tuple di porte di origine possono cambiare 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 il numero di porte per VM
Se hai configurato un gateway Cloud NAT con l'allocazione statica delle porte, quando si aumenta il numero minimo di porte per VM sul gateway, interruzione del traffico.
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.
Considera quanto segue quando aumenti il numero di porte della 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 un numero il numero di indirizzi IP NAT al gateway Public NAT.
Quando utilizzi Public NAT con allocazione automatica degli indirizzi IP NAT, aumentando numero minimo di porte per VM fa sì che il gateway Public NAT acquisisca e allocano automaticamente altri indirizzi IP esterni a livello di regione.
Quando utilizzi NAT privato, 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 si verifica alcun esaurimento 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 il servizio NAT esistente o interrompere il traffico che passa attraverso il gateway NAT.
- La riduzione del numero massimo di porte per VM breaks tutte le connessioni NAT esistenti e il numero di porte allocate per tutte le VM viene reimpostato temporaneamente al 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 connessione si intende una 5 tuple univoca costituita dall'indirizzo IP di origine NAT e tupla di porte di origine combinata con una tupla a 3 tuple di destinazione univoca. Poiché Il protocollo UDP è senza connessione, il concetto di connessione è ridotto a un 5 tuple associate a un datagramma UDP univoco.
Supponiamo che un gateway Cloud NAT calcoli 1024 per il numero fisso di porte per una VM seguendo la prenotazione delle porte di sicurezza. Il gateway Cloud NAT prenota 1024 combinazioni univoche di tuple di porte di origine e di indirizzo IP di origine NAT per la VM. Il gateway Cloud NAT può elaborare 1024 simultanei a ciascuna destinazione unica a 3 tuple. 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 destinazione
203.0.113.99
sulla porta80
utilizzando il protocollo TCP.Il gateway supporta altre 1024 connessioni simultanee allo stesso gateway sull'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 tripla 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. La possibilità di questo aumento se la VM client ha un elevato numero di origini interne indirizzi IP ed effettua numerose connessioni alla stessa destinazione A 3 tupla. 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
, il servizio NAT pubblico assegna
10.0.0.2:10001
. Vengono quindi utilizzate questo indirizzo IP di origine NAT e questa tupla di porte di origine
per tutte le connessioni successive da 10.0.0.2:10001
a qualsiasi destinazione a 3 tuple.
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 dagli endpoint.
Riduci i conflitti indipendenti degli 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 applica un ritardo prima che il gateway possa riutilizzare lo stesso indirizzo IP di origine NAT tupla di porte di origine con la stessa destinazione (indirizzo IP di destinazione, destinazione porta e protocollo). La durata del ritardo è controllata dalla funzione 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 tra l'indirizzo IP e la porta di destinazione utilizzando lo stesso protocollo, anziché Cloud NAT, assegna un indirizzo IP esterno VM e usare regole firewall per limitare il traffico in entrata non richiesto e connessioni a Internet.
Porte di origine e sicurezza
Se come misura di sicurezza ti affidi alla randomizzazione delle porte di origine, devi tieni in considerazione 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
I seguenti esempi dimostrano l'applicazione della prenotazione delle porte di sicurezza.
Supponiamo che tu stia configurando un gateway NAT pubblico per fornire la 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. Arrotondamento per difetto il risultato di qualsiasi operazione di divisione al numero intero più vicino. ⌊⌋ è la funzione di frazione inferiore (intero maggiore), ovvero ignora 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 IP NAT al gateway Cloud NAT. Con due indirizzi IP NAT, mantenendo 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, ciascun indirizzo IP NAT supportando 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 di configurare un gateway NAT privato per fornire NAT per tutti gli indirizzi IP di una subnet:
La dimensione minima della subnet che puoi creare è otto indirizzi IPv4, ovvero 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 impostare il numero minimo di porte per istanza VM su 64, il gateway può 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.
Supponi di aver configurato un gateway Public NAT per fornire NAT per
di indirizzi IP principali di una subnet. Hai creato una VM client con
interfaccia di rete il cui indirizzo IP interno principale è 10.0.0.2
una subnet. La VM di esempio non ha un indirizzo IP esterno assegnato alla sua
a riga di comando gcloud.
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
- Indirizzo IP interno e porta di origine:
La VM apre una seconda connessione con queste caratteristiche:
- Indirizzo IP interno e porta di origine:
10.0.0.2:10002
- 3 tuple di destinazione:
203.0.113.2:80
tramite TCP - Il NAT pubblico potrebbe scegliere di utilizzare la stessa tupla di indirizzo IP di origine e porta di origine NAT,
192.0.2.10:30009
anche per questa connessione. L'utilizzo del stesso indirizzo IP di origine NAT e tupla di porte di origine per un IP client diverso e una porta di origine temporanea.
- Indirizzo IP interno e porta di origine:
Mentre entrambe le connessioni sono attive, Public NAT non può aprire una terza connessione TCP con questi caratteristiche:
- Stessa porta e stesso indirizzo IP interno di origine della prima connessione:
10.0.0.2:10001
- Stessa destinazione a 3 tuple della seconda connessione:
203.0.113.2:80
tramite TCP
Questo terzo tentativo di connessione viene interrotto con un endpoint indipendente a causa dell'errore di conflitto poiché la mappatura indipendente dagli endpoint stabilita la prima connessione richiede che tutte le connessioni da
10.0.0.2:10001
debbano utilizzare stesso indirizzo IP di origine NAT e tupla di porte di origine,192.0.2.10:30009
. Tuttavia,192.0.2.10:30009
è già in uso dalla seconda connessione TCP a203.0.113.2:80
.- Stessa porta e stesso indirizzo IP interno di origine della prima connessione:
Per eliminare l'ambiguità, un successivo tentativo di connessione in questo esempio solo se una delle seguenti condizioni è vera:
- La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove la mappatura indipendente dall'endpoint tra
10.0.0.2:10001
e192.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 con203.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 NAT192.0.2.10:30009
per comunicare con203.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 dagli endpoint ha stabilito un
mappatura many-to-one per indirizzi IP e porte di origine NAT interni
10.0.0.2:10001
e10.0.0.2:10002
per utilizzare192.0.2.10:30009
quando comunicando con203.0.113.2:80
tramite TCP. Se il terzo tentativo di connessione utilizza una porta di origine temporanea diversa da10001
e10002
, è possibile che per comunicare con203.0.113.2:80
tramite TCP venga utilizzato un indirizzo IP di origine e una porta di origine NAT diversi. - Disattivare l'indipendenza dell'endpoint. Questa operazione consente alla nuova connessione da
10.0.0.2:10001
di non dover utilizzare192.0.2.10:30009
, ma di utilizzare un indirizzo IP e una porta di origine NAT diversi.
- La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove la mappatura indipendente dall'endpoint tra
Per le tecniche che puoi utilizzare per evitare conflitti, consulta Ridurre i conflitti indipendenti dall'endpoint.
Passaggi successivi
- Configura un gateway Public NAT.
- Configura un gateway NAT privato.
- Crea una configurazione di Compute Engine di esempio.
- Crea una configurazione GKE di esempio.
- Risolvi i problemi comuni.