Azure IaaS: Configurare le Multi-NIC

Microsoft Azure

Autore: Nicola Ferrini

 

Una delle funzionalità più interessanti per le machine virtuali da creare su Azure è quella di poterle realizzare con diverse schede di rete. Da un po’ di tempo è possibile averle e non si paga un costo aggiuntivo! La funzionalità Multi-NIC fornisce una migliore gestione del traffico di rete, che include l’isolamento del traffico tra una NIC di front-end e le NIC di back-end, oppure la creazione di una DMZ.

 

2015_07_24_AzurevNIC_01
Figure 1 – Schema VM con 3 Schede

 

Le dimensioni della macchina virtuale determinano il numero di NIC che è possibile creare. Nella tabella seguente sono elencati il massimo numero di schede di rete consentito corrispondente alle dimensioni delle macchine virtuali:

 

DIMENSIONI MACCHINA VIRTUALE(tipo STANDARD) NIC (NUMERO MASSIMO CONSENTITO PER OGNI MACCHINA VIRTUALE)
A3, A6, D3, A8, G2, G3, D12, DS2,DS11 2
A4, A7, A9, G3, D4, D13, DS3,DS12 4
G4, DS13 8
G5, DS14 16
Tutte le altre dimensioni 1

 

Ci sono però delle limitazioni nell’uso di macchine virtuali con più schede di rete:

 

  • Tutte le VM all’interno dello stesso Cloud Service devono essere MultiNIC oppure SingleNIC
  • Non si possono aggiungere o rimuovere schede di rete dopo la creazione della macchina virtuale
  • Il VIP (IP pubblico) è disponibile solo sulla scheda di default e se ne può avere uno solo
  • L’ordine delle schede di rete nella VM è random e potrebbe cambiare ad ogni riavvio. Rimane costante solo il MAC Address

 

Per creare una macchina virtuale con più schede di rete occorre seguire i seguenti passaggi:

 

  • Innanzitutto è necessario creare una rete virtuale con diverse subnet prima di creare le macchine virtuali, come mostrato in figura 2.

 

2015_07_24_AzurevNIC_02
Figure 2 – Esempio di rete virtuale creata con 3 sottoreti

 

  • Procedere alla creazione della macchina virtuale utilizzando PowerShell.

 

Vi riporto qui un esempio di script per la creazione di una VM MultiNic:

 

  • Utilizziamo l’ultima versione di Windows 2012 R2 Datacenter usando il comando
$image = (Get-AzureVMImage -Verbose:$false | Where-Object {$_.label -like “Windows Server 2012 R2 Datacenter*”} | Sort-Object –Descending PublishedDate)[0].ImageName
  • Creiamo la configuraione della macchina virtuale
$vm = New-AzureVMConfig -Name "MultiNicVM" -InstanceSize "Standard_D4" -Image $image
  • Creiamo l’account di accesso dell’amministratore di default
Add-AzureProvisioningConfig –VM $vm -Windows -AdminUserName "LocalAdmin" -Password "Passw0rd123"
  • Aggiungiamo le schede NIC aggiuntive alla configurazione della macchina virtuale (in questo caso ho messo un IP statico, ma non è obbligatorio):
Add-AzureNetworkInterfaceConfig -Name "BackEnd" -SubnetName "Backend" -StaticVNetIPAddress "10.1.1.100" -VM $vm

Add-AzureNetworkInterfaceConfig -Name "DMZ" -SubnetName "DMZ" -StaticVNetIPAddress "10.1.2.100" -VM $vm
  • Specifichiamo la subnet e l’indirizzo IP per la scheda di rete predefinita:
Set-AzureSubnet -SubnetNames "FrontEnd" -VM $vm

Set-AzureStaticVNetIP -IPAddress "10.1.0.100" -VM $vm
  • Creiamo la macchina virtuale nella rete virtuale. La rete virtuale specificata deve essere già esistente (come vi ho indicato prima). Anche il Cloud Service deve essere esistente (se si tratta della prima macchina potete creare un cloud service manualmente dal portale)
New-AzureVM -ServiceName "nicferr-MULTINIC" –VNetName "VNet-MultiNIC" –VMs $vm

Importante: Se si tenta di aggiungere una macchina virtuale con più NIC ad un Cloud Service che contiene già una macchina virtuale con una singola NIC, si riceverà il seguente errore: Virtual machines with secondary network interfaces and virtual machines with no secondary network interfaces are not supported in the same deployment, also a virtual machine having no secondary network interfaces cannot be updated to have secondary network interfaces and vice-versa.

 

2015_07_24_AzurevNIC_03
Figure 3 – Azure VM Creata con 3 Schede di Rete

 

La possibilità di avere machine con più schede di rete è anche arricchita dall’offerta di Virtual Appliance. Attualmente è possibile creare delle macchine virtuali basate su immagini di Barracuda Firewall, Check Point Virtual Gateway oppure Riverbed Steelhead e utilizzare questi software per bilanciare il carico di lavoro, ottimizzare l’utilizzo della WAN, proteggere le applicazioni dagli attacchi esterni della Rete.

 

Interessante anche l’offerta di Kemp per l’uso di bilanciatori di carico pensati per il Public & Hybrid Cloud. Esiste anche una versione gratuita del Virtual LoadMaster for Azure che vi invito a testare.

 

2015_07_24_AzurevNIC_04
Figure 4 – Creazione di Virtual Appliance in Azure

 

Per maggiori informazioni vi rimando all’articolo https://azure.microsoft.com/it-it/documentation/articles/virtual-networks-multiple-nics/