SNAT (Source Network Address Translation) con il gateway NAT di Azure
SNAT (Source Network Address Translation) consente al traffico da una rete virtuale privata di connettersi a Internet pur rimanendo completamente privato. SNAT riscrive l'indirizzo IP di origine e la porta del pacchetto di origine in una combinazione di ip pubblico e porta. Le porte vengono usate come identificatori univoci per distinguere le connessioni diverse l'una dall'altra. Internet usa un hash a cinque tuple (protocollo, ip/porta di origine, IP/porta di destinazione) per fornire questa distinzione.
SNAT consente anche a più istanze private all'interno di una rete virtuale di usare lo stesso singolo indirizzo IP pubblico o set di indirizzi IP (prefisso) per connettersi a Internet.
Il gateway NAT consente una funzionalità SNAT molti-a-uno. Molte istanze private in una subnet possono eseguire SNAT a un indirizzo IP pubblico collegato al gateway NAT per connettersi a Internet. Quando il gateway NAT effettua più connessioni allo stesso endpoint di destinazione, ogni nuova connessione usa una porta SNAT diversa in modo che le connessioni possano essere distinte l'una dall'altra.
L'esaurimento delle porte SNAT si verifica quando un endpoint di origine ha esaurito le porte SNAT disponibili per distinguere le nuove connessioni. Quando si verifica l'esaurimento delle porte SNAT, le connessioni hanno esito negativo.
Ridimensionare SNAT per il gateway NAT
Il ridimensionamento del gateway NAT è principalmente una funzione di gestione dell'inventario delle porte SNAT condiviso e disponibile.
L'inventario delle porte SNAT viene fornito dagli indirizzi IP pubblici, dai prefissi IP pubblici o da entrambi collegati al gateway NAT. L'inventario delle porte SNAT viene reso disponibile su richiesta per tutte le istanze all'interno di una subnet collegata al gateway NAT. Quando il carico di lavoro delle istanze private di una subnet viene ridimensionato, il gateway NAT alloca le porte SNAT in base alle esigenze.
Quando più subnet all'interno di una rete virtuale vengono collegate alla stessa risorsa gateway NAT, l'inventario delle porte SNAT fornito dal gateway NAT viene condiviso in tutte le subnet.
Un singolo gateway NAT può aumentare fino a 16 indirizzi IP. Ogni indirizzo IP pubblico del gateway NAT fornisce 64.512 porte SNAT per stabilire connessioni in uscita. Il gateway NAT può aumentare fino a oltre 1 milione di porte SNAT. TCP e UDP sono inventari delle porte SNAT separati e non sono correlati al gateway NAT.
Il gateway NAT alloca dinamicamente le porte SNAT
Il gateway NAT alloca in modo dinamico le porte SNAT tra le risorse private di una subnet, ad esempio le macchine virtuali. Tutte le porte SNAT disponibili vengono usate su richiesta da qualsiasi macchina virtuale nelle subnet configurate con il gateway NAT.
Figura: Allocazione delle porte SNAT
La preallocazione delle porte SNAT in ogni macchina virtuale è necessaria per altri metodi SNAT. Questa preallocazione delle porte SNAT può causare l'esaurimento delle porte SNAT in alcune macchine virtuali, mentre altre hanno ancora porte SNAT disponibili per la connessione in uscita.
Con il gateway NAT, la preallocazione delle porte SNAT non è necessaria, il che significa che le porte SNAT non vengono lasciate inutilizzate dalle macchine virtuali che non ne necessitano attivamente.
Dopo il rilascio di una porta SNAT, è disponibile per l'uso da parte di qualsiasi macchina virtuale all'interno di subnet configurate con il gateway NAT. L'allocazione su richiesta consente ai carichi di lavoro dinamici e divergenti nelle subnet di usare le porte SNAT in base alle esigenze. Se sono disponibili porte SNAT, i flussi SNAT hanno esito positivo.
Figura: Esaurimento delle porte SNAT
Selezione e riutilizzo delle porte SNAT del gateway NAT
Il gateway NAT seleziona una porta SNAT in modo casuale dall'inventario disponibile delle porte per creare nuove connessioni in uscita. Se il gateway NAT non trova porte SNAT disponibili, riutilizza una porta SNAT. La stessa porta SNAT può essere usata per connettersi contemporaneamente a più destinazioni diverse.
È possibile riutilizzare una porta SNAT per connettersi allo stesso endpoint di destinazione. Prima che la porta venga riutilizzata, il gateway NAT inserisce un timer di riutilizzo della porta SNAT per il raffreddamento sulla porta dopo la chiusura della connessione.
Il timer di riutilizzo delle porte SNAT consente di impedire che le porte vengano selezionate troppo rapidamente per la connessione alla stessa destinazione. Questo processo è utile quando gli endpoint di destinazione hanno firewall o altri servizi configurati che inseriscono un timer di raffreddamento sulle porte di origine. I timer di riutilizzo delle porte SNAT variano in base alla modalità di chiusura di un flusso di connessione. Per altre informazioni, vedere Port Reuse Timers .To learn more, see Port Reuse Timers.
Figura: Riutilizzo della porta SNAT
Flussi SNAT di esempio per il gateway NAT
Molti-a-uno SNAT con gateway NAT
Il gateway NAT offre una configurazione molti-a-uno in cui più istanze private all'interno di una subnet configurata dal gateway NAT possono usare lo stesso indirizzo IP pubblico per connettersi in uscita.
Nella tabella seguente due macchine virtuali diverse (10.0.0.1 e 10.2.0.1) effettuano connessioni all'INDIRIZZO https://microsoft.com IP di destinazione 23.53.254.142. Quando il gateway NAT è configurato con indirizzo IP pubblico 65.52.1.1, gli INDIRIZZI IP di origine di ogni macchina virtuale vengono convertiti nell'indirizzo IP pubblico del gateway NAT e in una porta SNAT:
Flow | Tupla di origine | Tupla di origine dopo SNAT | Tupla di destinazione |
---|---|---|---|
1 | 10.0.0.1:4283 | 65.52.1.1:1234 | 23.53.254.142:80 |
2 | 10.0.0.1:4284 | 65.52.1.1:1235 | 23.53.254.142:80 |
3 | 10.2.0.1:5768 | 65.52.1.1:1236 | 23.53.254.142:80 |
Il mascheramento ip o il mascheramento delle porte è l'atto di sostituire l'IP privato e la porta con l'INDIRIZZO IP pubblico e la porta prima di connettersi a Internet. È possibile mascherare più risorse private dietro lo stesso indirizzo IP pubblico del gateway NAT.
Il gateway NAT riutilizza una porta SNAT per connettersi a una nuova destinazione
Come accennato in precedenza, il gateway NAT può riutilizzare la stessa porta SNAT per connettersi simultaneamente a un nuovo endpoint di destinazione. Nella tabella seguente il gateway NAT converte il flusso 4 in una porta SNAT già in uso per altre destinazioni (vedere il flusso 1 della tabella precedente).
Flow | Tupla di origine | Tupla di origine dopo SNAT | Tupla di destinazione |
---|---|---|---|
4 | 10.0.0.1:4285 | 65.52.1.1:1234 | 26.108.254.155:80 |
La porta SNAT del gateway NAT si disattiva per il riutilizzo nella stessa destinazione
In uno scenario in cui il gateway NAT riutilizza una porta SNAT per stabilire nuove connessioni allo stesso endpoint di destinazione, la porta SNAT viene prima inserita in una fase di riutilizzo della porta SNAT per il raffreddamento. Il periodo di riutilizzo delle porte SNAT consente di garantire che le porte SNAT non vengano riutilizzate troppo rapidamente durante la connessione alla stessa destinazione. Questo riutilizzo della porta SNAT per il raffreddamento nel gateway NAT è utile negli scenari in cui l'endpoint di destinazione ha un firewall con il proprio timer di porta di origine per il raffreddamento sul posto.
Per illustrare questo comportamento di raffreddamento della porta SNAT, si esaminerà più in dettaglio il flusso 4 della tabella precedente. Il flusso 4 si connetteva a un endpoint di destinazione anteriore da un firewall con un timer di raffreddamento della porta di origine di 20 secondi.
Flow | Tupla di origine | Tupla di origine dopo SNAT | Tupla di destinazione | La connessione al tipo di pacchetto viene chiusa con | Timer del firewall di destinazione per il raffreddamento per la porta di origine |
---|---|---|---|---|---|
4 | 10.0.0.1:4285 | 65.52.1.1:1234 | 26.108.254.155:80 | TCP FIN | 20 secondi |
Connessione flusso 4 si chiude con un pacchetto TCP FIN. Poiché la connessione viene chiusa con un pacchetto TCP FIN, il gateway NAT inserisce la porta SNAT 1234 in modalità di raffreddamento per 65 secondi prima che possa essere riutilizzata. Poiché la porta 1234 è inattiva per più tempo rispetto alla durata del timer di raffreddamento della porta di origine del firewall di 20 secondi, il flusso di connessione 5 procede con il riutilizzo della porta SNAT 1234 senza problemi.
Flow | Tupla di origine | Tupla di origine dopo SNAT | Tupla di destinazione |
---|---|---|---|
5 | 10.2.0.1:5769 | 65.52.1.1:1234 | 26.108.254.155:80 |
Tenere presente che il gateway NAT inserisce porte SNAT in diversi timer di raffreddamento della porta SNAT a seconda della modalità di chiusura della connessione precedente. Per altre informazioni sui timer di riutilizzo delle porte SNAT, vedere Port Reuse Timers .For more information about SNAT port reuse timers, see Port Reuse Timers.
Non accettare una dipendenza dal modo specifico in cui le porte di origine vengono assegnate negli esempi precedenti. Le precedenti sono illustrazioni solo dei concetti fondamentali.