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) di Compute Engine e ai nodi Google Kubernetes Engine (GKE) che utilizzano i gateway.
Prima di esaminare queste informazioni, consulta la panoramica di Cloud NAT.
Indirizzi IP NAT pubblici
Un indirizzo IP NAT pubblico è un indirizzo IP esterno a livello di regione instradabile su internet. Una VM senza un indirizzo IP esterno, che si trova in una subnet (subnet) gestita da un gateway NAT pubblico, utilizza un indirizzo IP NAT pubblico quando invia pacchetti a una destinazione su internet.
Per assegnare indirizzi IP NAT (Network Address Translation) a un gateway NAT pubblico, utilizza uno dei seguenti metodi:
Allocazione automatica degli indirizzi IP NAT. Quando selezioni questo metodo o scegli le impostazioni predefinite di Google Cloud, Public NAT aggiunge automaticamente gli 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
Inoltre, il NAT pubblico rimuove automaticamente un indirizzo IP NAT quando non ha più bisogno di porte di origine su quell'indirizzo.
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 a livello di regione statico (riservato) nel livello di rete che hai selezionato al momento della configurazione del gateway. Ad esempio, se hai selezionato il livello Premium, il gateway NAT pubblico crea l'indirizzo IP in quel livello. I livelli di rete supportati sono il livello Premium (opzione predefinita) e il livello Standard.
Gli indirizzi IP NAT aggiunti automaticamente possono essere visualizzati nell'elenco di indirizzi IP esterni statici. Questi indirizzi vengono conteggiati nelle 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 preferisci 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, il NAT pubblico distribuisce un indirizzo solo quando l'ultima VM assegnata all'indirizzo non utilizza più alcuna porta. Di conseguenza, quando il numero di VM che utilizzano la NAT pubblico diminuisce, potresti non notare una riduzione dell'IP . Il motivo è che Cloud NAT non rialloca dinamicamente le VM da un indirizzo IP all'altro perché la riallocazione interromperebbe le connessioni stabilite. Finché almeno una VM utilizza un indirizzo IP, l'indirizzo IP rimane attivo e possono essere assegnate nuove VM.
Se vuoi poter riallocare manualmente le VM da un indirizzo IP a un altro per ridurre al minimo l'utilizzo degli indirizzi IP, usa l'assegnazione manuale 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 degli indirizzi IP NAT, gli indirizzi IP esterni a livello di regione prenotati automaticamente vengono eliminati. Per ulteriori informazioni, consulta la sezione Cambio del metodo di assegnazione.
Assegnazione manuale degli indirizzi IP NAT. Quando selezioni questa opzione, crei e assegni manualmente indirizzi IP esterni statici (prenotati) a livello di regione al gateway NAT pubblico. Puoi assegnare manualmente gli indirizzi IP dal livello Premium, dal livello Standard o da entrambi, in base a 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 gateway NAT pubblico. Se il gateway esaurisce gli indirizzi IP NAT, Public NAT elimina i pacchetti. I pacchetti eliminati vengono registrati quando utilizzi il logging di Cloud NAT per attivare il logging degli errori.
- Per calcoli di esempio, consulta l'esempio di prenotazione delle porte.
Per il numero massimo di indirizzi IP NAT allocati o assegnati manualmente, consulta Limiti di Cloud NAT.
Assegna manualmente una combinazione di indirizzi IP del livello Premium e del livello Standard
Quando crei un gateway NAT pubblico con il metodo di assegnazione manuale degli indirizzi IP NAT, puoi assegnare una combinazione di indirizzi IP di livello Premium e di livello Standard, purché gli indirizzi IP di livelli di rete diversi non appartengano alla stessa regola (inclusa la regola predefinita).
All'interno di una regola (compresa la regola predefinita), tutti gli indirizzi IP assegnati a intervalli attivi devono appartenere allo stesso livello di rete. Se provi a utilizzare indirizzi IP di livelli diversi nell'ambito della stessa regola, Google Cloud rifiuta la configurazione.
Cambia metodo di assegnazione
Puoi cambiare l'assegnazione di un gateway NAT pubblico dall'allocazione automatica degli indirizzi IP NAT all'assegnazione manuale degli indirizzi IP NAT. Tuttavia, gli indirizzi IP NAT non possono essere conservati. Anche se gli indirizzi IP NAT allocati automaticamente sono statici, non possono essere spostati manualmente in un'assegnazione di 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 agli indirizzi IP NAT assegnati manualmente.
Il set di indirizzi IP esterni a livello di regione utilizzato da Public NAT per l'allocazione automatica degli indirizzi IP NAT è diverso dal set di indirizzi IP esterni a livello di regione che puoi scegliere manualmente.
Svuota gli indirizzi IP NAT pubblici
Quando configuri un gateway NAT pubblico con l'assegnazione manuale degli indirizzi IP NAT, puoi scegliere cosa 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. Lo 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 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 IP interno a livello di regione non instradabile pubblicamente su internet. Per configurare NAT privato tra reti Virtual Private Cloud (VPC), ogni rete VPC deve essere configurata come spoke VPC in un hub di Network Connectivity Center. Prima di configurare Private NAT, devi creare una subnet con --purpose=PRIVATE_NAT
. Quando una VM in uno spoke VPC di Network Connectivity Center deve comunicare con una VM in un altro spoke, il gateway NAT privato utilizza un indirizzo IP NAT privato dalla subnet PRIVATE_NAT
per eseguire NAT sul traffico indirizzato alla VM di destinazione.
Di seguito sono riportate le caratteristiche degli indirizzi IP NAT privati:
- Non puoi assegnare automaticamente indirizzi IP NAT privati a un gateway NAT privato.
- Quando crei un gateway NAT privato, devi specificare manualmente l'intervallo di subnet
PRIVATE_NAT
da cui il gateway NAT privato assegna un indirizzo IP NAT privato al traffico NAT. - Il numero di indirizzi IP disponibili nell'intervallo di subnet
PRIVATE_NAT
è 2(32 -PREFIX_LENGTH
) - 4 perché Google Cloud riserva quattro indirizzi IP in una subnet. - L'intervallo di indirizzi IP della subnet
PRIVATE_NAT
può essere utilizzato solo dal gateway NAT privato e non per altre risorse.
Porte
Ogni indirizzo IP NAT su un gateway Cloud NAT (sia NAT pubblico sia NAT privato) offre 64.512 porte di origine TCP e 64.512 porte di origine UDP. I protocolli TCP e UDP supportano ciascuno 65.536 porte per indirizzo IP, ma Cloud NAT non utilizza le prime 1024 porte note (con privilegi).
Quando un gateway Cloud NAT esegue la Network Address Translation (SNAT) su un pacchetto inviato da una VM, modifica l'indirizzo IP e la porta di origine NAT del pacchetto.
Quando crei un gateway Cloud NAT, scegli se utilizzare l'allocazione statica delle porte o l'assegnazione dinamica delle porte. Quando modifichi la modalità di assegnazione delle porte, tutte le connessioni esistenti che utilizzano il gateway NAT pubblico vengono chiuse e devono essere ristabilite.
Allocazione delle 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 VM, Google Cloud utilizza il valore predefinito.
L'allocazione statica delle porte è abilitata per impostazione predefinita per il NAT pubblico. Il NAT privato, invece, utilizza l'allocazione dinamica delle porte per impostazione predefinita.
Poiché a tutte le VM è allocato lo stesso numero di porte, l'allocazione statica delle porte funziona meglio se tutte le VM hanno un utilizzo in uscita simile. Se alcune VM utilizzano più porte di altre, le porte nel gateway Cloud NAT potrebbero essere sottoutilizzate. Se l'utilizzo in uscita varia, valuta la possibilità di configurare l'allocazione dinamica delle porte.
Se vuoi configurare la mappatura indipendente dagli endpoint sul gateway NAT pubblico, devi utilizzare un'allocazione delle porte statica. 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 il NAT privato. Per NAT pubblico, devi configurare manualmente l'allocazione dinamica delle porte.
La configurazione dell'allocazione dinamica delle porte consente allo stesso gateway Cloud NAT di allocare un numero diverso di porte per VM, in base all'utilizzo della VM. Inizialmente, a una VM viene allocato il numero minimo di porte per istanza VM. Se una VM sta per esaurire tutte le porte allocate, il numero di porte assegnate alla VM viene raddoppiato. La VM può richiedere ripetutamente più porte fino al numero massimo di porte per istanza VM. Quando l'utilizzo delle porte diminuisce in modo significativo, le porte vengono distribuite e possono essere allocate ad altre VM che utilizzano lo stesso gateway NAT.
L'allocazione dinamica delle porte offre i seguenti vantaggi:
Viene ridotto il numero di porte allocate ma non utilizzate.
Il gateway NAT monitora l'utilizzo delle porte di ogni VM e modifica il numero di porte allocate a ogni VM in base alle esigenze. Non è necessario monitorare l'utilizzo delle porte o regolare la configurazione del gateway NAT.
Prima di utilizzare l'allocazione dinamica delle porte, tieni presente quanto segue:
Se la mappatura indipendente dagli endpoint è abilitata sul gateway Cloud NAT, non puoi configurare l'allocazione dinamica delle porte. Se hai bisogno di una mappatura indipendente dagli endpoint, utilizza l'allocazione statica delle porte.
Mentre vengono allocate porte aggiuntive alle VM, potresti notare timeout o latenza della connessione. Per le strategie utili a prevenire i cali delle connessioni, consulta Ridurre le connessioni perse con l'allocazione dinamica delle porte
Procedura di prenotazione delle porte
Cloud NAT utilizza la seguente procedura per eseguire il provisioning dell'indirizzo IP di origine NAT e delle tuple delle porte di origine per ogni VM gestita dal gateway Cloud NAT (sia Public NAT sia Private NAT).
Cloud NAT determina gli indirizzi IP interni della VM per i quali eseguire NAT. Gli indirizzi IP interni della VM sono determinati dagli intervalli di indirizzi IP delle subnet che il gateway è stato configurato per la gestione.
Se il gateway NAT pubblico è configurato per eseguire la NAT per l'intervallo di indirizzi IP principali della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue la NAT per sia l'indirizzo IP interno principale della VM sia per qualsiasi intervallo IP alias della VM dall'intervallo di indirizzi IP principali della subnet.
Se il gateway NAT pubblico è configurato per eseguire la NAT per un intervallo di indirizzi IP secondari della subnet utilizzata dall'interfaccia di rete della VM, esegue NAT per tutti gli intervalli IP alias dall'intervallo di indirizzi IP secondari di quella subnet.
Poiché un gateway NAT privato è configurato per eseguire la NAT per tutti gli intervalli di indirizzi IP della subnet utilizzata dall'interfaccia di rete della VM, il gateway esegue NAT per tutti gli intervalli IP di quella subnet.
Cloud NAT regola il numero minimo di porte per istanza VM, se necessario. Se è configurata un'allocazione statica delle porte e il gateway esegue la NAT per gli intervalli IP alias che hanno più di un indirizzo (netmask più piccoli di
/32
), Cloud NAT regola il numero minimo di porte per VM affinché sia il massimo di questi due valori:Il numero minimo di porte per istanza VM specificato.
Il numero 1024
In tutte le altre situazioni, anche quando è configurata l'allocazione dinamica delle porte, il gateway Cloud NAT procede al passaggio successivo utilizzando come input il numero minimo di porte specificato per istanza VM. Se non specifichi il numero minimo di porte per istanza VM, viene utilizzato il valore predefinito:
64
per l'allocazione statica delle porte e32
per l'allocazione dinamica delle porte.Cloud NAT prenota le tuple delle porte di origine e dell'indirizzo IP di origine NAT per ogni VM. Il gateway Cloud NAT utilizza il numero minimo di porte per istanza VM specificate o adeguato nel passaggio precedente per calcolare il numero di tuple di porte di origine e di indirizzi IP di origine NAT da assegnare alla VM.
Per Public NAT, Google Cloud alloca l'indirizzo IP di origine NAT e le tuple delle porte di origine utilizzando multipli di due alimentazioni. In questo modo, il numero di tuple di porte di origine e di indirizzi IP di origine NAT è maggiore o uguale al numero minimo di porte per istanza VM specificata.
Per NAT privato, Google Cloud alloca il doppio del numero minimo di porte richieste per VM per garantire l'affidabilità. Assicurati che la subnet da cui il NAT privato assegna indirizzi IP e porte abbia le dimensioni appropriate.
Se il gateway Cloud NAT utilizza due o più indirizzi IP NAT, è possibile che l'indirizzo IP di origine NAT e le tuple della porta di origine copra più di un indirizzo IP NAT. Un singolo indirizzo IP NAT potrebbe non disporre di un numero sufficiente di porte di origine per supportare il numero di indirizzi IP di origine NAT e le tuple delle porte di origine necessarie a una VM.
Il gateway Cloud NAT alloca l'indirizzo IP e le porte di origine a ogni VM.
Se hai configurato l'allocazione statica delle porte, il numero di indirizzi IP e tuple delle porte di origine è fisso. Ogni VM può utilizzare un massimo del numero allocato di indirizzi IP di origine e tuple di porte di origine, anche in caso di burst di traffico.
Se hai configurato l'allocazione dinamica delle porte, il numero di indirizzi IP di origine e le tuple delle porte di origine può cambiare in base alla domanda. Se una VM sta per esaurire l'attuale allocazione delle porte, Cloud NAT assegna altre porte, fino al valore del numero massimo di porte per istanza VM specificato. 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.
Aumenta porte per VM
Se hai configurato un gateway Cloud NAT con allocazione statica delle porte, quando aumenti il numero minimo di porte per VM sul gateway, il traffico non subisce interruzioni.
Se hai configurato un gateway Cloud NAT con allocazione dinamica delle porte, ulteriori modifiche alla configurazione potrebbero interrompere il traffico. Quando viene apportata una modifica alla configurazione, il numero di porte attualmente allocate a ogni VM potrebbe essere reimpostato temporaneamente sul numero minimo configurato.
Tieni presente quanto segue quando aumenti il numero di porte su VM:
Se utilizzi Public NAT con assegnazione manuale degli indirizzi IP NAT, devi calcolare il numero di indirizzi IP di origine NAT necessari. Prima di aumentare il numero minimo di porte per VM, assegna almeno quel numero di indirizzi IP NAT al gateway NAT pubblico.
Quando utilizzi Public NAT con l'allocazione automatica degli indirizzi IP NAT, aumentando il numero minimo di porte per VM, il gateway NAT pubblico acquisirà e alloca automaticamente più indirizzi IP esterni regionali.
Quando utilizzi il NAT privato, assicurati che la subnet da cui il gateway alloca gli indirizzi IP abbia un numero adeguato di indirizzi IP.
Riduci le porte per VM
Se hai configurato un gateway Cloud NAT con allocazione statica delle porte e riduci il numero minimo di porte per VM sul gateway, non viene svuotato la connessione. Le connessioni NAT consolidate vengono interrotte immediatamente e i client devono stabilire nuove connessioni TCP.
Se hai configurato un gateway Cloud NAT con allocazione dinamica delle porte, ulteriori modifiche alla configurazione potrebbero interrompere il traffico. Quando viene apportata una modifica alla configurazione, il numero di porte attualmente allocate a ogni VM potrebbe essere reimpostato temporaneamente sul numero minimo configurato.
Porte e connessioni
Il numero di tuple di porte di origine e di indirizzi IP di origine NAT che un gateway Cloud NAT prenota per una VM limita il numero di connessioni che la VM può effettuare a una destinazione univoca:
Per destinazione univoca si intende un tre tuple univoco composto da un indirizzo IP di destinazione, una porta di destinazione e un protocollo IP (come TCP o UDP).
Per connessione si intende una 5 tupla univoca composta dall'indirizzo IP di origine NAT e dalla tupla della porta di origine combinata con una tupla a 3 tupla di destinazione univoca. Poiché il protocollo UDP è senza connessione, il concetto di connessione viene ridotto a 5 tuple associate a un datagramma UDP univoco.
Supponiamo che un gateway Cloud NAT calcoli 1024 come numero fisso di porte per una VM seguendo la procedura di prenotazione delle porte. Il gateway Cloud NAT prenota 1024 combinazioni univoche di tuple di porte di origine e indirizzi IP di origine NAT 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 come inutilizzabili per 120 secondi dopo la chiusura della connessione, il che può influire sul numero di connessioni in uso alla volta.
Esempi:
Il gateway supporta 1024 connessioni simultanee all'indirizzo IP di destinazione
203.0.113.99
sulla porta80
utilizzando il protocollo TCP.Il gateway supporta altre 1024 connessioni simultanee allo stesso indirizzo IP di destinazione sulla porta
443
, anch'esso tramite il protocollo TCP.Il gateway supporta altre 1024 connessioni simultanee a un indirizzo IP di destinazione diverso sulla porta
80
, anch'esso tramite il protocollo TCP.
Riutilizzo simultaneo delle porte e mappatura indipendente dagli endpoint
Se cambia almeno un'informazione nelle tre tuple di destinazione (indirizzo IP di destinazione, porta di destinazione, protocollo), lo stesso indirizzo IP di origine NAT e la stessa tupla di porte di origine possono essere utilizzati contemporaneamente per molte connessioni diverse.
Public NAT 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 tupla di destinazione univoca potrebbe essere ridotto se Public NAT assegna lo stesso indirizzo IP di origine e la stessa tupla di porte di origine a più di un indirizzo IP interno e di una porta di origine temporanea di una VM client. Le probabilità che questo accada aumentano se la VM client ha un numero elevato di indirizzi IP di origine interni ed effettua un numero elevato di connessioni alla stessa tupla di destinazione. La prima volta che una VM client invia un pacchetto da un indirizzo IP interno e da una porta di origine temporanea, Public NAT crea una mappatura indipendente dagli endpoint many-to-one tra i seguenti:
- L'indirizzo IP interno e la tupla della porta di origine temporanea
- Un indirizzo IP di origine NAT univoco e una tupla di porte di origine
Ad esempio, quando una VM client invia un pacchetto dall'indirizzo IP interno 10.0.0.2
utilizzando la porta di origine temporanea 10001
, Public NAT assegna 10.0.0.2:10001
. La tupla dell'indirizzo IP e della porta di origine NAT viene quindi utilizzata per tutte le connessioni successive da 10.0.0.2:10001
a qualsiasi tupla a 3 tuple di destinazione.
Se la stessa VM utilizza una porta di origine temporanea diversa per inviare un pacchetto, ad esempio 10.0.0.2:20002
, Public NAT assegna anche un indirizzo IP di origine NAT e una tupla di porte di origine per tutte le connessioni successive da 10.0.0.2:20002
a qualsiasi tupla a 3 tupla di destinazione. È possibile che Public NAT assegni lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine a entrambi questi indirizzi IP interni e tuple di porte di origine temporanee, causando un conflitto indipendente degli endpoint in determinate situazioni.
Per un esempio più dettagliato, consulta l'esempio di conflitto di mappatura indipendente dagli endpoint.
Riduci i conflitti indipendenti degli endpoint
Puoi apportare modifiche alla configurazione per ridurre i conflitti indipendenti degli endpoint. Per ulteriori informazioni, consulta la sezione Pacchetti ignorati con causa del conflitto indipendente dell'endpoint.
Ritardo per il riutilizzo della porta di origine TCP
Dopo che un gateway Cloud NAT chiude una connessione TCP, Google Cloud applica un ritardo prima che il gateway possa riutilizzare lo stesso indirizzo IP di origine NAT e la stessa tupla di 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 o apportare una delle seguenti modifiche:
Aumenta il numero minimo di porte per istanza VM in modo che la procedura di prenotazione delle porte assegni alla VM più indirizzi IP di origine NAT e tuple di porte di origine.
Se una VM deve aprire e chiudere rapidamente le connessioni TCP allo stesso indirizzo IP e alla stessa porta di destinazione utilizzando lo stesso protocollo, invece di Cloud NAT, assegna un indirizzo IP esterno alla VM e utilizza le regole firewall per limitare le connessioni in entrata non richieste.
Porte di origine e sicurezza
Se fai affidamento sulla randomizzazione delle porte di origine come misura di sicurezza, devi considerare quanto segue:
Aumenta il numero minimo di porte per istanza VM in modo che la procedura di prenotazione delle porte assegni alla VM più indirizzi IP di origine NAT e tuple di porte di origine. L'aumento del numero minimo di porte per istanza VM assegna un intervallo di porte in modo casuale a ogni VM; tuttavia, la porta di origine scelta in questo intervallo è sequenziale.
Assegna un indirizzo IP esterno alla VM anziché utilizzare la NAT pubblico.
Esempi
Gli esempi riportati di seguito mostrano come Cloud NAT prenota gli indirizzi IP e le porte di origine NAT per una VM e come esegue NAT per i pacchetti inviati a internet.
Prenotazione trasferimento
I seguenti esempi mostrano applicazioni della procedura di prenotazione delle porte.
Supponiamo che tu stia configurando un gateway NAT pubblico per fornire NAT per l'intervallo di indirizzi IP principali di una subnet e che le VM che utilizzano quella subnet non abbiano intervalli IP alias provenienti dall'intervallo di indirizzi IP principali della subnet. Arrotonda per difetto il risultato di qualsiasi operazione di divisione al numero intero più vicino. ⌊⌋ è la funzione minimo (numero intero più grande), vale a dire 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 e mantenendo 64 il numero minimo di porte per VM, puoi supportare 2016 VM:
⌊(2 indirizzi IP NAT) × (64.512 porte per indirizzo) / (64 porte per VM)⌋ = 2016 VM
Se imposti il numero minimo di porte per VM su 4096, ogni indirizzo IP NAT può supportare 15 VM. Questo calcolo viene arrotondato per difetto al numero intero più vicino:
⌊(1 indirizzi IP NAT) × (64.512 porte per indirizzo) / (4096 porte per VM)⌋ = 15 VM
Supponiamo che tu stia configurando un gateway NAT privato per fornire NAT per tutti gli indirizzi IP di una subnet:
La dimensione minima di una subnet che puoi creare è di otto indirizzi IPv4, ovvero una subnet mask di
/29
. Se configuri un gateway NAT privato con una subnet NAT di dimensione minima e imposti il numero minimo di porte per istanza VM su 64, il gateway può fornire servizi NAT per un massimo di 2016 VM:⌊(2(32-29) - 4) Indirizzi IP NAT × (64.512 porte per indirizzo) / (64 porte per VM × 2)⌋ = 2016 VM
Nell'esempio precedente, se imposti il numero minimo di porte per istanza VM su 1024, il gateway può fornire servizi NAT per un massimo di 126 VM:
⌊(2(32-29) - 4) Indirizzi IP NAT × (64.512 porte per indirizzo) / (1024 porte per VM × 2)⌋ = 126 VM
Se configuri un gateway NAT privato con una subnet mask NAT di
/28
e imposti il numero minimo di porte per istanza VM su 64, il gateway può fornire servizi NAT per un massimo di 6048 VM:⌊(2(32-28) - 4) Indirizzi IP NAT × (64.512 porte per indirizzo) / (64 porte per VM × 2)⌋ = 6048 VM
Conflitto di mappatura indipendente dagli endpoint
L'esempio seguente illustra come la mappatura indipendente dagli endpoint potrebbe ridurre il numero di connessioni simultanee da una VM client alla stessa tupla a 3 tuple di destinazione, anche quando è disponibile un numero sufficiente di indirizzi IP di origine NAT gratuiti e tuple di porte di origine per la VM client.
Supponi di aver configurato un gateway NAT pubblico per fornire NAT per l'intervallo di indirizzi IP principali di una subnet. Hai creato una VM client con un'interfaccia di rete il cui indirizzo IP interno principale è 10.0.0.2
in quella subnet. Alla VM di esempio non è assegnato un indirizzo IP esterno alla sua interfaccia di rete.
La VM apre una connessione con le seguenti caratteristiche:
- Porta e indirizzo IP interni di origine:
10.0.0.2:10001
- Tupla a 3 destinazioni:
203.0.113.1:80
tramite TCP - Il NAT pubblico utilizza la seguente tupla della porta di origine e l'indirizzo IP di origine NAT:
192.0.2.10:30009
- Porta e indirizzo IP interni di origine:
La VM apre una seconda connessione con le seguenti caratteristiche:
- Porta e indirizzo IP interni di origine:
10.0.0.2:10002
- Tupla a 3 destinazioni:
203.0.113.2:80
tramite TCP - Per questa connessione,NAT pubblico potrebbe scegliere di utilizzare lo stesso indirizzo IP di origine NAT e la tupla di porte di origine,
192.0.2.10:30009
. È possibile utilizzare lo stesso indirizzo IP di origine NAT e la stessa tupla della porta di origine per un indirizzo IP client e una porta di origine temporanea diversi.
- Porta e indirizzo IP interni di origine:
Anche se la prima e la seconda connessione sono attive, il NAT pubblico non può aprire una terza connessione TCP con le seguenti caratteristiche:
- Stesso indirizzo IP interno di origine e stessa porta della prima connessione:
10.0.0.2:10001
- 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é la mappatura indipendente dagli endpoint stabilita dalla prima connessione impone a tutte le connessioni da
10.0.0.2:10001
di utilizzare lo stesso indirizzo IP di origine NAT e la stessa tupla di porta di origine,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 dissipare le ambiguità, un successivo tentativo di connessione in questo esempio ha esito positivo a condizione che una delle seguenti condizioni sia vera:
- La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove la mappatura indipendente dagli endpoint tra
10.0.0.2:10001
e192.0.2.10:30009
, quindi la terza connessione può essere mappata a un indirizzo IP di origine NAT e a una tupla di porte di origine diversi per comunicare con203.0.113.2:80
tramite TCP. - La seconda connessione TCP è stata chiusa. Se chiudi la connessione, viene liberato
10.0.0.2:10001
per l'utilizzo dell'indirizzo IP di origine NAT e della porta di origine192.0.2.10:30009
per comunicare con203.0.113.2:80
tramite TCP. - Il terzo tentativo di connessione seleziona una porta di origine temporanea (interna) diversa. In questo esempio, una mappatura indipendente dagli endpoint ha stabilito una mappatura many-to-one per gli indirizzi IP di origine NAT interni e le porte di origine
10.0.0.2:10001
e10.0.0.2:10002
per utilizzare192.0.2.10:30009
durante la comunicazione con203.0.113.2:80
mediante TCP. Se il terzo tentativo di connessione utilizza una porta di origine temporanea diversa da10001
e10002
, è possibile che un indirizzo IP di origine NAT e una porta di origine diversi vengano utilizzati per comunicare con203.0.113.2:80
tramite TCP. - Disattiva l'indipendenza dell'endpoint. L'attivazione/disattivazione consente alla nuova connessione da
10.0.0.2:10001
di non dover utilizzare192.0.2.10:30009
, consentendo l'utilizzo di un indirizzo IP e una porta di origine NAT diversi.
- La prima connessione TCP è stata chiusa. La chiusura della connessione rimuove la mappatura indipendente dagli endpoint tra
Per le tecniche che puoi utilizzare per evitare conflitti, consulta Ridurre i conflitti indipendenti degli endpoint.
Passaggi successivi
- Configura un gateway NAT pubblico.
- Configura un gateway NAT privato.
- Crea una configurazione di Compute Engine di esempio.
- Crea una configurazione GKE di esempio.
- Risolvi i problemi comuni.