Creare una rete Hub & Spoke in Microsoft Azure con Virtual Network Manager

Il Networking all’interno di Azure può sembrare complesso e non molto intuitivo ad un primo approccio, specialmente se si viene come esperienza dal mondo On-Premises.

Con il tempo però sono nati all’interno della piattaforma tutta una serie di strumenti che consentono di gestire e automattizare la gestione delle Virtual Network in modo semplice e strutturato.

Figura 1: Disegno infrastrutturale di una rete Hub & Spoke in Azure

Uno di questi esempi è il Virtual Network Manager di Azure che consente di creare topologie di Rete all’interno della piattaforma Cloud di Microsoft in contesti multi Subscription e perfino Multi-Tenant.

La topologia che verrà presa in esame all’interno di questa guida è la Hub & Spoke, composta appunto da un Hub centrale che contiene le risorse condivise e di gestione come il Firewall, Azure Bastion, la parte di Virtual Network Gateway, ecc… e le spoke, che vengono utilizzate per segregare e governare i vari Workload appoggiati su di esse.

Requisiti

Per eseguire la configurazione proposta sarà necessario avere quanto segue:

  • Tenant Entra ID
  • Azure Subscription
  • VS Code
  • Powershell 7 con Bicep e Az-Cli

Creazione delle virtual Network

Per la creazione delle Virtual Network consiglio di utlizzare degli script Bicep, che consentono di creare velocemente tutte le reti necessarie alla topologia Hub and Spoke senza la necessità di utilizzare il portale.

Di seguito vengono riportati gli script necessari e i comandi Powershell per distribuire le risorse all’interno di Microsoft Azure.

Al seguente LINK lascio il mio repository GitHub con il codice.

Resource Group:

Virtul Network Hub:

Virtual Network Spoke-01:

Virtual Network Spoke-02:

Una volta clonato il repository consiglio di utilizzare il terminale Powershell presente in VS Code per spostarsi nella cartella dove avete appoggiato gli script:

Figura 2: Terminale di VS Code utilizzato per impostare il path nella cartella con gli script BICEP

A questo punto è possibile utilizzare i comandi Powershell di cui sotto per eseguire prima il login al proprio Tenat di destinazione e successviamente distribuire le risorse in Azure attraverso il comando “az deployment“:

Powershell in VS Code:

A beneficio della chiarezza, i passaggi eseguiti dello script sono 3:

  • Login in Azure
  • Creazione dei Resource Group nella region Italy North
  • Creazione delle Virtual Network nei Resource Group di cui al punto precedente

Una volta eseguiti gli script è possibile fare accesso al portale Azure per verificare il risultato:

Figura 3: Verifica della creazione dei Resource Group

Controlliamo ora che le Vnet siano state distribuite e con le giuste configurazioni:

Figura 4: Verifica della creazione della VNET di Hub

Figura 5: Verifica aggiunta delle Subnet nella VNET di Hub

Implementazione Virtual Network Manager

Come visto nei punti precedenti, in questo momento abbiamo distribuito tre differenti Vnet, con le relative Subnet.

Ora però è il momento di creare una topologia di tipo Hub & Spoke attraverso l’utilizzo di Azure Virtual Network Manager.

Lo strumento creerà in autonomia i peering necessari alla comunicazione o, qualora presenti, si adatterà alla configurazione esistente.

Questo significa che potete utilizzarlo da subito nelle configurazioni già esistenti ma che magari necessatino delle funzionalità aggiuntive come le Security Admin Rules e/o la Direct Connectivity.

Eseguita la login al portale di Azure possiamo fare click nel campo di ricerca e digitare il nome del servizio “Virtual Network Manager”, successivamente fate click sul risultato corretto:

Figura 6: Ricerca del servizio Virtual Network Manager

Fare click a questo punto su “Get Started” e successivamente su “Create a network manager

Figura 7: Fare click su “Create a network manager”

Compilare i vari campi presenti utilizzando il Resource Group dedicato alla rete di HUB, in questo caso “RG-WPC-HUB-ITN-01“, scegliere il nome e la region ed infine selezionare le “Features” che si desidera abilitare, in questo caso “Connectivity” e “Security admin“:

Figura 8: Selezionare le funzionalità di cui abbiamo bisogno

Una volta compilati tutti i campi fate click su “Next: Management Scope“:

Figura 9: Fare click su “Next: Management scope” per selezionare il Tenant e la Subscription da gestire

All’interno di questa sezione, selezionate “Add” per aggiungere le Subscription dove sono contenute le vostre Vnet:

Figura 10: Selezionare “Add” per aggiungere la Subscription corretta

Selezionate la Subscription dove sono presenti le vostre Vnet, quindi fate click su “Select“:

Figura 11: Selezionata la Subscription corretta fare click su “Select”

Verificate che l’aggiunta della Subscription target sia avvenuta correttamente, poi fate click su “Tags“:

Figura 12: Fare Click su “Next” per aggiungere i tag

Fare click su “Review + Create“:

Figura 13: Fare click su “Review + create”

Contrallate che le impostazioni siano corretta e poi fate click su “Create“:

Figura 14: Fare click su “Create” per procedere alla creazione della risorsa Azure

Una volta completata la distribuzione della risorsa è possibile fare click su “Go to resource” per raggiungere la pagina dedicata al Virtual Network Manager:

Figura 15: Fare click su “Go to resource” per verificare il risultato

Arrivati alla schermata del Virtual Network Manager fate click su “View Network Groups” per iniziare la creazione della topologia di rete Hub & Spoke:

Figura 16: Fare click su “View network Groups” per passare alla creazione dei Network Group

Fare click su “Create” per iniziare la creazione del Network Group:

Figura 17: Fare click su “Create” per creare il primo Network Group

Assegniamo un nome e il tipo di membership come da “figura 18“, successivamente fate click su “Create“:

Figura 18: Aggiungere un Nome e la tipologia di membership, poi fare click su “Create”

Una volta creata il nuovo Network Group, fare click sopra l’oggetto per aggiungere le Vnet che ne faranno parte:

Figura 19: Fare click nel nuovo oggetto per passare all’aggiunta delle Virtual Network

Fare click su “Add virtual Networks” per iniziare la procedura di aggiunta delle Vnet:

Figura 20: Fare click su “Add virtual networks” per aggiungere le Vnet

Aggiungere solo le Vnet di Spoke, quindi fare click su “Add“:

Figura 21: Selezionare le sole Vnet di Spoke e fare click su “Add”

Verificare che il numero delle Vnet che avete aggiunto corrisponda a quanto inserito al punto precedente:

Figura 22: Verificare che il numero delle Vnet che fanno parte del Network Group siano coerenti con le scelte fatte

A questo punto fare click su “Configurations” nella colonna di sinistra, quindi su “Create connectivity configuration“:

Figura 23: Spostarsi nel tab “Configurations” e fare click su “Create Connectivity Configuration”

Compilare con il nome desiderato e fare click su “Next: Topology“:

Figura 24: Inserire un nome e fare click su “Next: Topology”

All’interno della sezione topology, selezionare “Hub and spoke” e successivamente “Select a hub“:

Figura 25: Fare click su “Hub and spoke” e successivamente su “Select a Hub”

Selezionare la Vnet di Hub, quindi fare click su “Select“:

Figura 26: Selezionare la Vnet di Hub e fare click su “Select”

Spostandoci nella sezione inferiore possiamo fare click su “Add” e su “Add network groups“:

Figura 27: Fare click su “Add” e poi “Add network Groups”

Selezionare a questo punto il Network Group creato in precedenza e successivamente fare click su “Select“:

Figura 28: Aggiungere il Network group creato in precedenza e fare click su “Select”

Verificate le informazioni inserite e una volta pronti fate click su “Next Visualization“:

Figura 29: Fare click su “Next: Visualization” per verificare le configurazioni appena inserite

Presa visione della nuova topologia che verrà creata è possibile fare click su “Next: Review + create” per procedere nel setup:

Figura 30: Presa visione della nuova topologia è possibile fare click su “Review + Create”

Verificate tutte le informazioni potete fare click su “Create“:

Figura 31: Presa visione delle configurazioni fate click su “Create”

Spostarsi a questo punto nel Tab “Configurations” per verificare la configurazione appena creata:

Figura 32: Spostarsi nel tab Configurations per verificare se l’oggetto è stato creato correttamente

Infine spostarsi su “Deployments” per la fase finale:

Figura 33: Spostarsi nella colonna “Deployment”

All’interno del Tab “Deployments” fare click su “Deploy Configurations” quindi su “Connectivity Configurations“:

Figura 34: Fare click su “Deploy configurations” e poi su “Connectivity configuration”

Nella sezione “Goal state” selezionate la “Connectivity Configurations” corretta e la “Region” target del vostro deployment, in questo caso “Italy North“.
Al termine, fare click su “Next“:

Figura 35: Selezionare la configurazione e la region corretta, poi fare click su “Next”

Verificate la nuova configurazione, quindi fate click su “Deploy” per distribuire la nuova configurazione, ultimando così la configurazione:

Figura 36: Presa visione della nuova configurazione fare click su “Deploy”

Nella sezione “Deployments” del Virtual Network Manager è possibile verificare lo status del deployment, che ora risulta “Succeded“:

Figura 37: Al termine dell’operazione spostarsi in deployments e verificare che lo status sia “Succeded”

A questo punto, spostandoci nella rete di HUB è possibile verificare che sono stati creati due Peering per le spoke che fanno parte del “Network Group“:

Figura 38: Spostandoci nella Virtual Network di Hub è possibile verificare l’aggiunta dei Peering da parte del Vnet Manager

Conclusioni

Azure Virtual Network manager è un acceleratore dei nostri deployment all’interno di Microsoft Azure.
Esso garantisce un controllo sulle Virtual Network granulare, il vero single pane of glass nella gestione del Networking, consentondoci non solo di distribuire topologie di rete, ma anche configurazioni NSG tramite le Security Admin rule, oppure svolgere il ruolo di IPAM, questo ad oggi ancora in preview.

Quando utilizzare questo strumento? Come sempre la risposta è dipende dalla vostre esigenze, ma quando le Subscription crescono di numero e la complessità del vostro Networking aumenta, uno strumento del genere risolve davvero tanti problemi.

Vi lascio qualche link utile per approfondire questi temi:

https://learn.microsoft.com/en-us/azure/architecture/networking/architecture/hub-spoke

https://learn.microsoft.com/en-us/azure/virtual-network-manager/overview

https://www.ictpower.it/cloud/configurare-le-reti-virtuali-con-azure-virtual-network-manager-preview.htm