Disponibili gli IPv6 per le Azure Virtual Network (Preview)

È disponibile da pochissimo ed è attualmente ancora in preview la possibilità di assegnare indirizzi IPv6 nelle reti virtuali in Azure.

Poiché si stanno esaurendo gli IPv4 pubblici e c’è un proliferare dei dispositivi IoT e dei dispositivi mobili (smartphone, tablet, ecc.) molti Internet Service Provider stanno già utilizzando gli indirizzi IPv6 per permettere la connettività verso Internet. Per chi volesse approfondire l’argomento rimando alla lettura dell’articolo Saturazione di IPv4

Quindi giocoforza anche il Cloud pubblico sta correndo ai ripari per permettere la transizione da IPv4 a IPv6 e per rimediare all’indisponibilità perpetua di IPv4.

Adesso è possibile ospitare macchine virtuali in Azure con connettività IPv6 e IPv4 sia all’interno di una rete virtuale e da e verso Internet.

In realtà era già possibile ospitare delle macchine virtuali in Azure accessibili da Internet tramite IPv6, ma si poteva fare solo utilizzando Azure Load Balancer. La funzionalità era stata annunciata ad Ignite 2016 https://azure.microsoft.com/en-us/updates/ipv6-for-azure-vms/

Al link https://docs.microsoft.com/it-it/azure/load-balancer/load-balancer-ipv6-overview trovate tutte le indicazioni su come realizzare una connettività IPv6 nativa end-to-end tra client Internet pubblici e macchine virtuali di Azure tramite il servizio di bilanciamento del carico.

Figura 1: Funzionalità IPv6 per Azure Load Balancer.

Il servizio di bilanciamento del carico instrada i pacchetti IPv6 agli indirizzi IPv6 privati delle macchine virtuali tramite NAT (Network Address Translation). Il client Internet IPv6 non può comunicare direttamente con l’indirizzo IPv6 delle macchine virtuali.

D’ora in poi sarà possibile invece avere una distribuzione dual-stack (IPv4 e IPv6) per le reti virtuali in Azure.

I vantaggi dell’utilizzo di IPv6 in una rete virtuale di Azure sono:

  • Aiutare ad espandere la copertura di applicazioni e di macchine virtuali ospitate in Azure per via della crescita dei dispositivi mobili e Internet delle cose (IoT).
  • Le macchine virtuali con il dual-stack IPv4 e IPv6 offrono maggiore flessibilità. Ogni macchina può essere raggiunta da Internet sia attraverso l’IPv4 che attraverso l’IPv6.
  • La connettività IPv6 a Internet viene stabilita solo quando l’utente lo richiede in modo esplicito.

Figura 2: Diagramma del Dual-stack (Ipv4 e IPv6) in Azure Virtual Network

Il supporto ad IPv6 da parte delle reti virtuali in Azure permette anche di:

  • Definire il proprio IPv6 address space, in modo tale da poterlo integrare con il proprio spazio di indirizzi on-premises (se qualcuno già utilizza l’IPv6 nella propria rete aziendale)
  • Proteggere l’accesso alle risorse attraverso i Network Security Groups
  • Utilizzare le User-Defined Route per reindirizzare il traffico IPv6
  • Utilizzare Azure DNS per registrare i record AAAA
  • Aggiungere facilmente gli indirizzi IPv6 anche alle Virtual Network che adesso utilizzano solo IPv4

Attualmente, in fase di Preview, non è però possibile utilizzare il portale per creare delle reti virtuali che usino il Dual-Stack (IPv4 + IPv6). Utilizzeremo pertanto PowerShell ed in particolare io utilizzerò Azure Cloud Shell https://azure.microsoft.com/it-it/features/cloud-shell/

Come prima operazione sarà necessario abilitare la propria sottoscrizione Azure all’utilizzo di questa funzionalità in preview. Da Azure Cloud Shell ho digitato il comando

 

Figura 3: Registrazione della funzionalità di Dual-Stack in Azure Cloud Shell

Ci potrebbero volere fino a 30 minuti per abilitare la funzionalità. Potete verificare l’abilitazione utilizzando il comando

 

Figura 4: Verifica dell’abilitazione della funzionalità di Dual-Stack nella propria sottoscrizione

Dopo aver completato la registrazione eseguite il comando

 

Figura 5: Completamento della registrazione della funzionalità di Dual-Stack nella propria sottoscrizione

In questa demo verrà creata una virtual network che utilizzerà due address space distinti, uno per l’IPv4 ed un altro per l’IPv6. A questa virtual network verrà associata una macchina virtuale la cui scheda di rete avrà sia la configurazione IPv4 che la configurazione IPv6.

La macchina virtuale sarà raggiungibile anche da Internet tramite protocollo RDP utilizzando un indirizzo IPv6 attraverso un Network Load Balancer.

NOTA: Al momento della stesura di questa guida non è ancora possibile assegnare un IPv6 pubblico direttamente ad una VM

Nello Script PowerShell sotto avete a disposizione i commenti per capire tutti i passaggi necessari alla creazione del Load Balancer, delle regole di sicurezza e della macchina virtuale.

 

Terminata la creazione della VM e di tutti gli altri componenti è possibile verificare graficamente dal portale di Azure le configurazioni della virtual network e degli altri oggetti creati.

Figura 6: Oggetti creati dallo script in PowerShell

Figura 7: Address spaces della VNET

Figura 8: Configurazione della VNET

Figura 9: Configurazione degli indirizzi di FrontEnd del Load Balancer

Figura 10: Pool di Backend del Network Load Balancer

Potrete recuperare l’indirizzo IPv6 pubblico che è stato assegnato al bilanciatore semplicemente utilizzando il comando:

 

Figura 11: Recupero dell’indirizzo IP pubblico del Load balancer

Utilizzando il client RDP mi sono connesso all’indirizzo IPv6 del bilanciatore e sono riuscito a connettermi alla macchina virtuale creata in Azure.

NOTA: Per potervi connettere in RDP con l’IPv6 la vostra connessione Internet deve permettervi di ricevere degli indirizzi IPv6.

Nella figura sotto potete visualizzare l’indirizzo IP che ho ricevuto dal mio provider

Figura 12: Indirizzo IPv6 che ho ricevuto dal mio provider di connettività Internet

Dopo essermi collegato in RDP alla macchina virtuale in Azure, con il comando ipconfig ho anche visualizzato l’indirizzo IPv6 interno assegnato alla VM, in modo tale da verificare che la macchina sia stata configurata per il Dual-Stack.

Figura 13: Connessione RDP in IPv6 alla macchina Azure

Dal portale di Azure è anche possibile verificare graficamente la configurazione della scheda di rete della macchina virtuale creata.

Figura 14: Configurazione della scheda di rete della macchina virtuale

La stessa operazione può essere effettuata utilizzando Azure CLI

Nello script sotto sono riportati tutti i passaggi:

 

Figura 15: Oggetti creati dallo script CLI

Modifica di una rete virtuale esistente

Se volete modificare una VNet esistente dovete necessariamente farlo tramite PowerShell o CLI. Se infatti tentate di aggiungere un address space IPV6 nel portale di Azure riceverete il messaggio di errore mostrato in figura 17:

Figura 16: Configurazione della VNET esistente

Figura 17: Messaggio di errore quando si tenta di aggiungere un address space IPv6 dal portale di Azure

Per Aggiungere un address space ed una subnet ad una virtual network esistente vi basterà eseguire pochi comandi PowerShell:

 

Figura 18: Address space IPv6 aggiunto ad una rete virtual esistente

Figura 19: Subnet IPv6 aggiunta ad una rete virtuale esistente

NOTA: Non è possibile aggiungere il Dual-Stack IPv6 alle VNET che hanno effettuato il Peering con un’latra VNET

Conclusioni

Tanti sono i vantaggi nell’avere una configurazione Dual-Stack (IPv4 + IPv6) in Azure e, anche se al momento la funzionalità è in Preview e le configurazioni sono disponibili solo tramite PowerShell e CLI, ben presto potremo avere la possibilità di configurare le VM e gli altri servizi direttamente dal portale Azure. Nel momento in cui avremo la possibilità di assegnare gli indirizzi IPv6 pubblici alle VM, queste potranno essere accedute direttamente da Internet.