Quando distribuiamo infrastrutture in Azure, possiamo trovare scenari in cui le nostre macchine virtuali IaaS non devono disporre di un IP pubblico, poiché non è necessario accedervi dall'esterno. Tuttavia, queste macchine necessitano dell'accesso a Internet per attività come il download e l'installazione di aggiornamenti.
Non avere un indirizzo IP pubblico assegnato alle nostre macchine, aumenta la loro sicurezza, dal momento che non saranno esposti su Internet a possibili attacchi come scoprire la password, DoS, ecc.
Dall'inizio di marzo 2020 è diventato disponibile uno strumento che facilita la diffusione di questo tipo di scenario: Virtual Network NAT.
https://docs.microsoft.com/en-us/azure/virtual-network/nat-overview
Ad oggi, è previsto in alcune regioni::
· Europa occidentale
· Giappone orientale
· Stati Uniti orientali 2
· Stati Uniti occidentali
· Stati Uniti occidentali 2
· Stati Uniti centro-occidentali
Vediamo come possiamo utilizzare questo nuovo strumento nelle nostre reti.
Il primo passo per utilizzare NAT della rete virtuale è registrarsi per l'anteprima. Quando sarà disponibile in generale, questo non sarà più necessario. È possibile registrarsi dall'interfaccia della riga di comando di Azure o da PowerShell. Se scegliamo PowerShell, faremo quanto segue:

Con il primo comando, registriamo il nostro abbonamento nell' anteprima pubblica e con il secondo comando attiviamo la registrazione.
Per utilizzare il NAT della rete virtuale, creeremo uno o più gateway NAT in una rete virtuale. Ogni sottorete di una rete virtuale può essere associata a un diverso gateway NAT o alla stessa.

Quando definiamo il gateway NAT da utilizzare in una sottorete, tutto il traffico TCP e UDP dalle macchine che si trovano in quella sottorete utilizzerà il gateway NAT per uscire all'esterno.
Partiremo dalla rete virtuale che abbiamo già creato con due sottoreti:

E abbiamo una macchina virtuale in ogni sottorete:

As we can see, none of the two virtual machines have a public IP.
Configuriamo il gateway NAT nella rete:

Gli daremo un nome e selezioneremo una regione:

Assegneremo un IP pubblico a questo gateway NAT. Potrebbe avere fino a 16 indirizzi o un prefisso di indirizzi IP pubblici. Creeremo un unico IP pubblico:

Successivamente dovremmo selezionare la rete e le sottoreti a cui verrà associato il gateway NAT:

Una volta terminata la creazione del gateway NAT, possiamo controllare le sottoreti associate:

Quando verificheremo che questo è configurato correttamente, ci accorgeremo che non possiamo accedere alle macchine perché non hanno un IP pubblico, quindi useremo un bastione per accedervi tramite SSH e verificeremo che abbiano accesso a Internet attraverso il NAT Gateway. Abbiamo già visto in un altro post come è configurato un bastione:
https://www.italyclouds.com/blog/azure-bastion-host
Se, ad esempio, andiamo alla macchina VM1, che non ha un IP pubblico, e accediamo tramite SSH attraverso il bastione:

E accediamo alla shell:

E quindi proviamo a connetterci a Internet, ad esempio, usando il comando "apt update":

Possiamo vedere che si connette senza problemi.
Tieni presente che NAT Gateway invia eventuali pacchetti TCP e UDP all'esterno, ma non ICMP, quindi se proviamo a eseguirne il ping, non funzionerà.