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 ai nodi Google Kubernetes Engine (GKE) che utilizzano i gateway.
Prima di esaminare queste informazioni, acquisisci familiarità con 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 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 Public NAT, utilizza uno dei seguenti metodi:
Allocazione automatica dell'indirizzo IP NAT. Quando selezioni questo metodo o scegli i valori predefiniti, NAT pubblico aggiunge automaticamente indirizzi IP esterni regionali al gateway in base a quanto segue: Trusted Cloud by S3NS
- Il livello di rete che selezioni
- Il numero di VM che utilizzano il gateway
- Il numero di porte riservate per ogni VM
La NAT pubblica rimuove automaticamente anche un indirizzo IP NAT 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 Public NAT aggiunge un indirizzo IP NAT, crea un indirizzo IP esterno statico (riservato) a livello regionale 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 il livello Premium (opzione predefinita) e il livello Standard.
Gli indirizzi IP NAT aggiunti automaticamente possono essere visualizzati nell'elenco degli 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 il successivo indirizzo IP allocato. 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ù porte. Pertanto, quando il numero di VM che utilizzano NAT pubblico 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 riallocazione interromperebbe le connessioni stabilite. Finché almeno una VM utilizza un indirizzo IP, quest'ultimo rimane attivo e possono essere assegnate nuove VM.
Se vuoi essere in grado di riassegnare 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 lo svuotamento degli 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, vedi Cambiare il metodo di assegnazione.
Assegnazione manuale dell'indirizzo IP NAT. Quando selezioni questa opzione, crei e assegni manualmente indirizzi IP esterni statici (riservati) regionali al tuo gateway NAT pubblico. Puoi assegnare manualmente indirizzi IP dal livello Premium, dal livello Standard o da entrambi, in base alle 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 regionali necessari per il gateway NAT pubblico. Se il gateway esaurisce gli indirizzi IP NAT, la NAT pubblica elimina i pacchetti. I pacchetti eliminati vengono registrati quando utilizzi il logging Cloud NAT per attivare la registrazione degli errori.
- Per esempi di calcoli, consulta l'esempio di prenotazione di porte.
Per il numero massimo di indirizzi IP NAT assegnati automaticamente o manualmente, consulta Limiti di Cloud NAT.
Assegna manualmente un mix di indirizzi IP di livello Premium e Standard
Quando crei un gateway NAT pubblico con il metodo di assegnazione manuale dell'indirizzo IP NAT, puoi assegnare un mix di indirizzi IP di livello Premium e Standard, a condizione che gli indirizzi IP di diversi livelli di rete non appartengano alla stessa regola (inclusa la regola predefinita).
All'interno di una regola (inclusa quella predefinita), tutti gli indirizzi IP assegnati a intervalli attivi devono essere dello stesso livello di rete. Se provi a utilizzare indirizzi IP di livelli diversi nell'ambito della stessa regola, Trusted Cloud la configurazione viene rifiutata.
Cambia metodo di assegnazione
Puoi passare dall'allocazione automatica dell'indirizzo IP NAT all'assegnazione manuale dell'indirizzo IP NAT per un gateway NAT pubblico. 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 di 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 a 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.
Esegui il drain degli indirizzi IP NAT pubblici
Quando configuri un gateway Public NAT con l'assegnazione manuale dell'indirizzo 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.
Puoi scegliere di svuotare un indirizzo IP NAT assegnato manualmente. Il svuotamento indica al 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 interrotte 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 subnet
Private NAT che si trova nella stessa regione e nella stessa rete VPC di un
gateway Private NAT. Un indirizzo IP NAT privato non è instradabile su internet. Gli indirizzi IP degli intervalli di indirizzi IPv4 principali delle subnet NAT privata possono essere utilizzati solo dai gateway NAT privata. 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 subnet in una rete VPC, le VM con interfacce di rete in quella subnet possono inviare pacchetti a risorse che si trovano 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 Trusted Cloud che sono connesse a Trusted Cloud tramite Cloud Interconnect o Cloud VPN. In uscita, Trusted Cloud modifica 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 NAT privati:
- Non puoi assegnare automaticamente indirizzi IP Private NAT a un gateway Private NAT. Al contrario, quando crei una regola in un gateway NAT privato, devi specificare manualmente la subnet o le subnet NAT private. Le subnet NAT privata devono trovarsi nella stessa rete VPC e nella stessa regione del gateway. Il gateway utilizza indirizzi IP solo dagli intervalli di indirizzi IPv4 principali delle subnet NAT privata.
- 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 principali della subnet NAT privata. Quattro indirizzi IP sono inutilizzabili in ogni intervallo di indirizzi IPv4 principale della subnet.
Porte
Ogni indirizzo IP NAT su un gateway Cloud NAT (sia NAT pubblica che NAT privata) offre 64.512 porte di origine TCP e 64.512 porte di origine UDP. TCP e UDP supportano 65.536 porte per indirizzo IP. Cloud NAT non utilizza le porte note (con privilegi) (da 0 a 1023).
Quando un gateway Cloud NAT esegue la Network Address Translation dell'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 statica delle porte o l'allocazione dinamica delle porte. Puoi 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 Cambiare il metodo di allocazione delle porte.
Se hai assegnato manualmente più indirizzi IP esterni statici (riservati) regionali al tuo gateway Public NAT, 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 statica delle porte
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, Trusted 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 meglio se tutte le VM hanno un utilizzo in uscita simile. Quando l'allocazione statica delle porte è configurata, 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 porte. Se l'utilizzo dell'uscita varia, valuta la possibilità di configurare l'allocazione dinamica delle porte.
Se vuoi configurare il mapping indipendente dagli endpoint sul gateway Public NAT, devi utilizzare l'allocazione statica delle porte. Il mapping 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 di 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 allocate, 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 in modo significativo, 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 ciascuna VM in base alle necessità. 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 il mapping indipendente dagli endpoint è abilitato sul gateway Cloud NAT, non puoi configurare l'allocazione dinamica delle porte. Se hai bisogno del mapping indipendente dagli endpoint, utilizza l'allocazione statica delle porte.
Mentre vengono allocate porte aggiuntive alle VM, potresti notare timeout o latenza della connessione. Per strategie che aiutano a prevenire le interruzioni delle connessioni, vedi Ridurre le interruzioni delle connessioni 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 si verifica una delle seguenti condizioni:
Hai impostato 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 impostato su un valore superiore a
1024
e se specifichi1024
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 disattivazione dell'allocazione dinamica delle porte e il passaggio all'allocazione statica delle porte è interruttiva e interrompe tutte le connessioni NAT attive.
Procedura di prenotazione delle porte
Cloud NAT utilizza la seguente procedura per eseguire il provisioning di tuple di indirizzi IP di origine NAT e porte di origine per ogni VM gestita dal gateway Cloud NAT (sia NAT pubblico che NAT privato).
Cloud NAT determina gli indirizzi IP interni delle VM per i quali deve essere eseguito il NAT. Gli indirizzi IP interni della VM sono determinati dagli intervalli di indirizzi IP della subnet che il gateway è stato configurato per gestire.
Se il gateway NAT pubblico è configurato per eseguire NAT per un intervallo di indirizzi IP secondario della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue NAT per tutti gli intervalli IP alias dall'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.
Se necessario, Cloud NAT regola il numero minimo di porte per istanza VM. Se è configurata l'allocazione statica delle porte e il gateway esegue NAT per intervalli IP alias con più di un indirizzo (maschera di rete più piccola di
/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 che specifichi
Il numero 1024
In tutte le altre situazioni, inclusa la configurazione dell'allocazione dinamica delle porte, il gateway Cloud NAT procede al passaggio successivo utilizzando il numero minimo specificato di porte per istanza VM come input. Se non specifichi il numero minimo di porte per istanza VM, viene utilizzato il valore predefinito:
64
per l'allocazione statica delle porte e32
per l'allocazione dinamica delle porte.Cloud NAT riserva le tuple di indirizzo IP di origine NAT e porta di origine per ogni VM. Il gateway Cloud NAT utilizza il numero minimo di porte per istanza VM specificato o modificato nel passaggio precedente per calcolare il numero di tuple di indirizzi IP di origine e porte di origine NAT da assegnare alla VM.
Per NAT pubblico, Trusted Cloud alloca tuple di indirizzi IP di origine NAT e porte di origine utilizzando multipli di potenze di due, quindi il numero di tuple di indirizzi IP di origine NAT e porte di origine è maggiore o uguale al numero minimo di porte per istanza VM specificato.
Per NAT privato, Trusted Cloud alloca il doppio del numero di porte minime richieste per VM per garantire l'affidabilità. Assicurati che la subnet da cui Private NAT assegna indirizzi IP e porte abbia le dimensioni appropriate.
Se il gateway Cloud NAT utilizza due o più indirizzi IP NAT, è possibile che le tuple di indirizzo IP di origine NAT e porta di origine si estendano su più di un indirizzo IP NAT. Un singolo indirizzo IP NAT potrebbe non avere porte di origine disponibili sufficienti per ospitare 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 statica delle porte, il numero di tuple di indirizzi IP di origine e porte di origine è fisso. Ogni VM non può utilizzare più del numero assegnato di tuple di indirizzi IP di origine e porte di origine, anche durante i picchi di traffico.
Se hai configurato l'allocazione dinamica delle porte, il numero di tuple di indirizzi IP di origine e 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 numero massimo specificato per valore di porte per istanza VM. Quando l'utilizzo delle porte della VM scende 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 statica delle porte, quando aumenti il numero minimo di porte per VM sul gateway, non si verifica alcuna 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é il traffico che scorre attraverso il gateway NAT.
Quando aumenti il numero di porte per VM, tieni presente quanto segue:
Quando utilizzi NAT pubblico con l'assegnazione manuale dell'indirizzo IP NAT, devi calcolare il numero di indirizzi IP di origine NAT di cui hai bisogno. Prima di aumentare le porte minime per VM, assegna almeno altrettanti 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 allochi automaticamente più indirizzi IP esterni regionali.
Quando utilizzi NAT privato, assicurati che la subnet da cui il gateway alloca gli indirizzi IP disponga di un numero adeguato di indirizzi IP.
Ridurre 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 si verifica lo svuotamento 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 né 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 temporaneamente reimpostato sul valore specificato per il numero minimo di porte per VM.
Porte e connessioni
Il numero di tuple di indirizzo IP di origine NAT e porta di origine che un gateway Cloud NAT riserva per una VM limita il numero di connessioni che la VM può stabilire con una destinazione univoca:
Una destinazione univoca indica una 3-tupla univoca composta da un indirizzo IP di destinazione, una porta di destinazione e un protocollo IP (ad esempio TCP o UDP).
Una connessione indica un 5 tuple univoco composto dal tuple di indirizzo IP di origine NAT e porta di origine combinato con un 3 tuple di destinazione univoco. Poiché il protocollo UDP non prevede connessioni, il concetto di connessione è ridotto a una tupla a 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 uniche di tuple di indirizzo IP di origine NAT e porta di origine per la VM. Il gateway Cloud NAT può elaborare 1024 connessioni simultanee a ogni tupla di destinazione univoca. Tuttavia, Cloud NAT considera le connessioni chiuse inutilizzabili 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 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
Se almeno un'informazione nella tupla di destinazione cambia (l'indirizzo IP di destinazione, la porta di destinazione, il protocollo), la stessa tupla di indirizzo IP di origine e porta di origine NAT può essere utilizzata contemporaneamente per molte connessioni diverse.
NAT pubblico utilizza la mappatura indipendente degli endpoint, come definito nella sezione 2.3 del documento RFC 5128. Di conseguenza, il numero di connessioni simultanee che una VM client può stabilire con una tupla di destinazione univoca a 3 tuple potrebbe essere ridotto se NAT pubblico assegna la stessa tupla 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 e stabilisce un numero elevato di connessioni alla stessa tupla a 3 elementi di destinazione. La prima volta che una VM client invia un pacchetto da un indirizzo IP interno e una porta di origine temporanea, Public NAT crea una mappatura molti-a-uno indipendente dall'endpoint tra:
- La tupla di indirizzo IP interno e porta di origine temporanea
- Una tupla univoca di indirizzo IP di origine NAT e 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 indirizzo IP di origine NAT e porta di origine viene quindi utilizzata
per tutte le connessioni successive da 10.0.0.2:10001
a qualsiasi tupla di destinazione a 3 elementi.
Se la stessa VM utilizza una porta di origine effimera diversa per inviare un pacchetto, ad esempio 10.0.0.2:20002
, NAT pubblico assegna anche una tupla di porta e indirizzo IP di origine NAT per tutte le connessioni successive da 10.0.0.2:20002
a qualsiasi tupla di destinazione a 3 elementi. È possibile che NAT pubblico assegni la stessa tupla di indirizzo IP di origine NAT e porta di origine a entrambe queste tuple di indirizzo IP interno e porta di origine temporanea, causando un conflitto indipendente dall'endpoint in determinate situazioni.
Per un esempio più dettagliato, vedi 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 maggiori informazioni, consulta Pacchetti eliminati con motivo di conflitto indipendente dall'endpoint.
Ritardo per il riutilizzo della porta di origine TCP
Dopo che un gateway Cloud NAT chiude una connessione TCP, Trusted Cloud impone un ritardo prima che il gateway possa riutilizzare la stessa tupla di indirizzo IP di origine NAT e 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 TIME_WAIT TCP. Per informazioni su come modificare i timeout NAT, vedi 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 NAT e porta di origine.
Se una VM deve aprire e chiudere rapidamente connessioni TCP allo stesso indirizzo IP di destinazione e alla stessa porta di destinazione utilizzando lo stesso protocollo, allora, anziché Cloud NAT, assegna un indirizzo IP esterno alla VM e utilizza regole firewall per limitare le connessioni in entrata non richieste.
Porte di origine e sicurezza
Se ti affidi alla randomizzazione della porta di origine come misura di sicurezza, devi tenere presente 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 NAT e porta 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
Gli esempi riportati di seguito mostrano come Cloud NAT riserva gli indirizzi IP di origine NAT e le porte di origine per una VM e come esegue NAT per i pacchetti inviati a internet.
Prenotazione della porta
Gli esempi seguenti 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 principale di una subnet e che le VM che utilizzano quella 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 floor (il più grande numero intero), che 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 devi supportare più di 1008 VM, puoi assegnare un secondo indirizzo 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, 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 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 è di otto indirizzi IPv4, ovvero una subnet mask di
/29
. Se configuri un gateway Private NAT 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 Private NAT con una maschera di subnet 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 come la mappatura indipendente degli 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 indirizzo IP di origine NAT e porta di origine gratuite per la VM client.
Supponiamo di aver configurato un gateway Public NAT per fornire NAT per l'intervallo di indirizzi IP primario 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 sua interfaccia di rete non è assegnato un indirizzo IP esterno.
La VM apre una connessione con queste caratteristiche:
- Indirizzo IP interno e porta di origine:
10.0.0.2:10001
- Tupla a 3 elementi di destinazione:
203.0.113.1:80
utilizzando TCP - NAT pubblico utilizza la seguente tupla di indirizzo IP di origine NAT e porta di origine:
192.0.2.10:30009
- Indirizzo IP interno e porta di origine:
La VM apre una seconda connessione con le seguenti caratteristiche:
- Indirizzo IP interno e porta di origine:
10.0.0.2:10002
- Tupla a 3 elementi di destinazione:
203.0.113.2:80
utilizzando TCP - 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. È possibile utilizzare la stessa tupla di indirizzo IP di origine NAT e porta di origine per un indirizzo IP client e una porta di origine effimera diversi.
- Indirizzo IP interno e porta di origine:
Mentre la prima e la seconda connessione sono attive, Public NAT non può aprire una terza connessione TCP con queste caratteristiche:
- Stesso indirizzo IP interno di origine e stessa porta della prima connessione:
10.0.0.2:10001
- La stessa tupla di destinazione della seconda connessione:
203.0.113.2:80
tramite TCP
Questo terzo tentativo di connessione viene interrotto con un errore di conflitto indipendente dall'endpoint perché il mapping indipendente dall'endpoint stabilito dalla prima connessione impone che tutte le connessioni da
10.0.0.2:10001
utilizzino la stessa tupla di porta e indirizzo IP di origine NAT,192.0.2.10:30009
. Tuttavia,192.0.2.10:30009
è già utilizzato dalla seconda connessione TCP a203.0.113.2:80
.- Stesso indirizzo IP interno di origine e stessa porta della prima connessione:
Per evitare ambiguità, un successivo tentativo di connessione in questo esempio va a buon fine se si verifica una delle seguenti condizioni:
- La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove il mapping indipendente degli endpoint tra
10.0.0.2:10001
e192.0.2.10:30009
, quindi la terza connessione può essere mappata a una diversa tupla di indirizzo IP di origine NAT e porta di origine per comunicare con203.0.113.2:80
utilizzando TCP. - La seconda connessione TCP è stata chiusa. La chiusura della connessione libera
10.0.0.2:10001
per utilizzare l'indirizzo IP di origine NAT e la porta di origine192.0.2.10:30009
per comunicare con203.0.113.2:80
utilizzando TCP. - Il terzo tentativo di connessione seleziona una porta di origine effimera (interna) diversa. In questo esempio, una mappatura indipendente dall'endpoint ha stabilito una mappatura molti-a-uno per gli indirizzi IP di origine NAT interni e le porte di origine
10.0.0.2:10001
e10.0.0.2:10002
per utilizzare192.0.2.10:30009
quando comunicano con203.0.113.2:80
utilizzando TCP. Se il terzo tentativo di connessione utilizza una porta di origine effimera diversa sia da10001
sia da10002
, è possibile che un indirizzo IP di origine NAT e una porta di origine diversi possano essere utilizzati per comunicare con203.0.113.2:80
utilizzando TCP. - Disattivazione dell'indipendenza dell'endpoint. La disattivazione consente alla nuova
connessione da
10.0.0.2:10001
di non dover utilizzare192.0.2.10:30009
, consentendo di utilizzare un indirizzo IP e una porta di origine NAT diversi.
- La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove il mapping indipendente degli endpoint tra
Per le tecniche che puoi utilizzare per evitare conflitti, consulta Riduzione dei conflitti indipendenti dagli endpoint.
Passaggi successivi
- Configura un gateway Public NAT.
- Configura un gateway NAT privato.
- Crea una configurazione Compute Engine di esempio.
- Crea una configurazione GKE di esempio.
- Risolvi i problemi più comuni.