Azure IaaS: Configurare IP Pubblici e Privati nelle Virtual Machine

Microsoft Azure

Autore: Nicola Ferrini

 

In questo articolo vedremo come poter gestire i diversi indirizzi IP che possono avere le macchine virtuali su Microsoft Azure.

 

Le macchine virtuali hanno due indirizzi IP: un IP virtuale pubblico (Virtual IP o VIP) che viene assegnato al Servizio Cloud dove la macchina è stata creata e un indirizzo IP interno (Internal IP o DIP) che viene assegnato dal DHCP di Azure in modo tale che possa comunicare con le altre macchine all’interno della stessa rete virtuale. È possibile anche assegnare un Indirizzo IP pubblico ad ogni singola macchina virtuale, come mostra la figura 1.

 

2015_01_30_IaaS_ManageIP_01
Figura 1 – Schema VIP e DIP

 

Assegnare un Indirizzo IP Statico in una Rete Virtuale (DIP)

Supponiamo di aver creato su Azure una macchina virtuale che fa da Domain Controller, e DNS, e di volergli assegnare un indirizzo IP statico, in modo tale che l’indirizzo IP Interno rimanga associato alla macchina virtuale anche in caso di arresto o deprovisioning. È possibile specificare un DIP statico mediante PowerShell durante la creazione della macchina virtuale oppure aggiornare una macchina virtuale esistente. Per prima cosa verifichiamo che l’indirizzo da assegnare sia libero. Nel mio laboratorio ho una rete virtuale chiamata LAB con uno spazio di indirizzi 192.168.2.0/24. Voglio verificare che l’indirizzo 192.168.2.4 sia disponibile e per farlo lancio la seguente cmdlet:

 

Test-AzureStaticVNetIP –VNetName LAB –IPAddress 192.168.2.4

 

Il risultato è mostrato nella figura 2.

 

2015_01_30_IaaS_ManageIP_02
Figura 2 – Risultato cmdlet

 

Come si può vedere, l’indirizzo 192.168.2.4 non è disponibile, così come non è disponibile l’indirizzo 192.168.2.5 (entrambi già assegnati da me in precedenza), in quanto vengono riportati nella riga AvailableAddresses tutti gli indirizzi dal 192.168.2.6 in poi.

 

Assegnare un Indirizzo IP Interno Statico ad una Macchina Virtuale Esistente

Per assegnare un indirizzo IP interno statico ad una VM esistente è necessario usare PowerShell e lanciare la seguente cmdlet:

 

Get-AzureVM -Name NIC-EX1 –ServiceName nicferr-lab | Set-AzureStaticVNetIP –IPAddress 192.168.2.6 | Update-AzureVM

 

Se tutto è andato a buon fine riceverete il messaggio di OperationStatus = Succeeded. Potete verificare la nuova configurazione con la cmdlet:

 

Get-AzureVM -Name NIC-EX1 –ServiceName nicferr-lab

 

Il risultato è mostrato nella figura 3.

 

2015_01_30_IaaS_ManageIP_03
Figura 3 – Risultato cmdlet

 

Specificare un Indirizzo IP Interno Statico Durante la Creazione di una Macchina Virtuale

Per assegnare un indirizzo IP interno statico ad una VM durante la creazione è necessario usare PowerShell. Prima dell’esecuzione della cmdlet ricordarsi di modificare le variabili per le cmdlet in base ai valori necessari per il proprio ambiente:

 

New-AzureVMConfig -Name $vmname -ImageName $img –InstanceSize Small | Set-AzureStaticVNetIP -IPAddress 192.168.2.7 | New-AzureVM –ServiceName nicferr-lab –VNetName LAB

 

Per rimuovere un indirizzo IP interno statico da una macchina virtuale, è sufficiente lanciare il cmdlet:

 

Get-AzureVM -ServiceName nicferr.lab -Name NIC-EX1 | Remove-AzureStaticVNetIP | Update-AzureVM

 

Le cmdlet per poter gestire gli indirizzi IP interni sono: Get-AzureStaticVNetIP, Remove-AzureStaticVNetIP, Set-AzureStaticVNetIP e Test-AzureStaticVNetIP

 

Creare un Indirizzo IP Virtuale Pubblico (VIP)

Un indirizzo IP virtuale (VIP) è un indirizzo IP pubblico che è possibile usare per accedere alle risorse in Azure. Ogni volta che si crea un servizio cloud e si allocano risorse, al servizio viene automaticamente assegnato un VIP. Le VM all’interno del servizio cloud possono essere configurate in modo da ricevere le comunicazioni in ingresso tramite il VIP usando un numero di porta specificato (Endpoints).

 

Per poter fare in modo che il nostro Cloud Service ottenga sempre lo stesso indirizzo IP pubblico è necessario creare un Reserved IP Address. Ogni sottoscrizione di Azure ha diritto a 5 IP pubblici riservati. I vantaggi di avere un IP riservato sono dettati dalla possibilità di creare dei record statici nel nostro DNS pubblico per far riferimento ai servizi che esponiamo nel Cloud Azure oppure di poter filtrare con delle ACL l’ingresso del traffico attraverso il nostro firewall/proxy, aumentando quindi il livello di sicurezza della connessione tra Azure e l’On-Premise.

 

È necessario però prestare attenzione a 4 condizioni:

 

  • L’IP riservato può essere usato solo per le macchine virtuali del servizio cloud
  • Riservare l’indirizzo IP prima della creazione della macchina virtuale
  • Attualmente non è possibile associare un IP riservato ad una macchina esistente
  • L’IP riservato è supportato solo per le reti virtuali associati alle Region. Non è supportato per le reti virtuali associate a gruppi di affinità

 

Anche la creazione del Indirizzo IP virtuale pubblico (VIP) non può essere fatta dal portale ma dobbiamo utilizzare PowerShell lanciando la cmdlet:

 

New-AzureReservedIP –ReservedIPName “Laboratorio” –Label “Laboratorio” –Location “West Europe”

 

Il risultato, ottenuto con la cmdlet Get-AzureReservedIP è mostrato nella figura 4.

 

2015_01_30_IaaS_ManageIP_04
Figura 4 – Creazione VIP

 

Dal nuovo portale di Azure, disponibile all’indirizzo https://portal.azure.com/, facendo clic su Sfoglia -> Indirizzi IP Riservati è possibile visualizzare graficamente gli indirizzi creati, come mostra la figura 5.

 

2015_01_30_IaaS_ManageIP_05
Figura 5 – Gestione IP Riservati

 

Per rimuovere l’IP è sufficiente digitare il comando:

 

Remove-AzureReservedIP -ReservedIPName “Laboratorio” –Force

 

Oppure dal nuovo portale di Azure basta selezionare l’indirizzo e scegliere Elimina, come mostra la figura 6.

 

2015_01_30_IaaS_ManageIP_06
Figura 6 – Rimozione IP Riservato

 

Associare un IP Riservato ad una Nuova Macchina Virtuale

Per assegnare un indirizzo IP riservato ad una VM durante la creazione è necessario usare PowerShell. Prima dell’esecuzione della cmdlet ricordarsi di modificare le variabili per le cmdlet in base ai valori necessari per il proprio ambiente:

 

New-AzureVMConfig -Name $vmconfig -ImageName $img -InstanceSize | Add-AzureProvisioningConfig -Windows -AdminUsername admin -Password Password1! | New-AzureVM -ServiceName nicferr-lab –ReservedIPName Laboratorio -Location “West Europe”

 

Le cmdlet per poter gestire gli indirizzi IP interni sono: Get-AzureReservedIP, Remove-AzureReservedIP, Set-AzureReservedIP

 

Associare un IP Riservato ad una Macchina Virtuale già Esistente

Come già sottolineato prima, attualmente non è possibile associare un IP riservato ad una macchina esistente. Per ovviare a questo problema ho agito in questo modo:

 

  • Ho cancellato tutte le macchine virtuali del Servizio Cloud, conservando però i dischi virtuali collegati.
  • Ho cancellato tutti i gruppi di affinità che facevano riferimento al Servizio Cloud o alla rete virtuale.
  • Ho ricreato le macchine virtuali riutilizzando i dischi che avevo conservato utilizzando uno script Powershell e dichiarando durante la creazione della VM quale ReservedIP utilizzare.

 

Per conoscere nel dettaglio la procedura vi rimando alla lettura dell’articolo Assigning a Public Reserved IP to existing Azure Cloud Service.

 

 

Creazione di un Indirizzo IP a Livello di Istanza (PIP)

Un indirizzo IP pubblico a livello di istanza è un indirizzo IP pubblico che può essere assegnato direttamente alla macchina virtuale. Non sostituisce l’indirizzo VIP assegnato al Servizio Cloud in cui si trova la VM ma è un indirizzo IP aggiuntivo che può essere usato per la connessione diretta alla macchina virtuale. Anche la creazione del Indirizzo IP a livello di istanza non può essere fatta dal portale ma dobbiamo utilizzare PowerShell lanciando la cmdlet:

 

Get-AzureVM -Name NIC-EX1 –ServiceName nicferr-lab | Set-AzurePublicIP -PublicIPName Exchange | Update-AzureVM

 

Il risultato, ottenuto con la cmdlet Get-AzureReservedIP, è mostrato nella figura 7.

 

2015_01_30_IaaS_ManageIP_07
Figura 7 – Creazione PIP

 

Per rimuovere l’indirizzo PIP è sufficiente digitare il comando:

 

Get-AzureVM -Name NIC-EX1 –ServiceName nicferr-lab | Remove-AzurePublicIP | Update-AzureVM

 

 

Dal nuovo portale di Azure all’indirizzo https://portal.azure.com/ facendo clic su Sfoglia, selezionando la macchina virtuale e scegliendo Impostazioni è possibile visualizzare graficamente gli Indirizzi IP, come mostrato nella figura 8.

 

2015_01_30_IaaS_ManageIP_08
Figura 8 – Vistualizzazione Indirizzi IP

 

Le cmdlet per poter gestire gli indirizzi IP interni sono: Get-AzurePublicIP, Remove-AzurePublicIP, Set-AzurePublicIP

 

Intervalli IP utilizzati dai data center di Azure

È possibile scaricare il file xml Intervalli IP dei data center di Azure dall’Area Download del sito Microsoft Azure. Ogni sezione presente nel file specifica la regione geografica e gli intervalli di indirizzi IP associati a tale regione geografica.

 

Per approfondimenti vi rimando all’articolo https://msdn.microsoft.com/en-us/library/azure/dn376542.aspx