Hyper-V in Windows Server 2012 introduce un nuovo paradigma per la gestione delle reti virtuali portando a tutti gli effetti la virtualizzazione compiutamente a livello di networking. Virtual Machine Manager permette di gestire questo nuovo modello al meglio. Questo post vuole fare chiarezza sulla gestione dei nuovi artefatti necessari alla definizione dell’infrastruttura di network virtuale mostrando come integrare al meglio Virtual Machine Manager e Hyper-v e quali errori è bene evitare.
[auth]
Virtualizzazione di rete con Hyper-V
La virtualizzazione dei server consente l’esecuzione contemporanea di più istanze di server, comunque isolate tra di loro, su un unico host fisico. Ogni macchina virtuale opera come se fosse l’unico server in esecuzione sul computer fisico. La virtualizzazione di rete offre una funzionalità simile, in base alla quale sulla stessa rete fisica, potenzialmente con indirizzi IP sovrapposti, sono in esecuzione più infrastrutture di rete virtuali, ciascuna delle quali opera come se fosse l’unica rete virtuale in esecuzione sull’infrastruttura di rete condivisa.
La virtualizzazione di rete che è possibile realizzare utilizzando Hyper-V fornisce il concetto di una rete virtuale indipendente dalla rete fisica sottostante. Grazie a questo concetto di Virtual Network la posizione fisica di una subnet IP è disaccoppiata dalla topologia della rete virtuale.
Gestione degli indirizzi IP nella virtualizzazione di rete
Nell’architettura di rete virtuale le singole schede di rete virtuali sono associate a due indirizzi IP:
- Customer Address (CA): è l’indirizzo IP assegnato alla macchina virtuale, in base alla propria infrastruttura di rete. Utilizzando questo indirizzo IP si è in grado di scambiare traffico di rete con la macchina virtuale.
- Provider Address (PA): è l’indirizzo IP visibile sulla rete fisica, ma non alla macchina virtuale. Questo indirizzo viene infatti visualizzato nei pacchetti di rete scambiati con il server Hyper-V che ospita la macchina virtuale.
Nel diagramma sottostante le macchine virtuali inviano nello spazio degli indirizzi CA pacchetti di dati che, attraverso le proprie reti virtuali (tunnel), attraversano l’infrastruttura di rete fisica. Si possono considerare i tunnel alla stregua di “buste” che avvolgono i pacchetti di dati (rossi e blu) che dall’host di origine a sinistra devono essere recapitati all’host di destinazione a destra.
Questa semplice analogia sottolinea gli aspetti essenziali della virtualizzazione di rete:
-
L’indirizzo CA di ciascuna macchina virtuale è mappato all’indirizzo PA di un host fisico;
-
Le macchine virtuali inviano pacchetti di dati che vengono messi in una “busta” con una coppia di indirizzi PA di origine e di destinazione;
-
I mapping degli indirizzi CA-PA devono consentire agli host di distinguere i pacchetti destinati a diversi macchine virtuali.
Le modalità con cui gli host stabiliscono gli “indirizzi di spedizione” (PA) corrispondenti agli indirizzi CA blu e rossi sono essenziali, così come il modo in cui gli host di destinazione riescono a scartare i pacchetti e consegnarli correttamente alle macchine virtuali rosse e blu di destinazione.
I meccanismi di virtualizzazione della rete utilizzati in Hyper-V di Windows Server 2012 sono due:
-
Generic Routing Encapsulation Il primo meccanismo di virtualizzazione della rete utilizza Generic Routing Encapsulation (NVGRE) come parte dell’intestazione del tunnel. Nel meccanismo NVGRE il pacchetto della macchina virtuale viene incapsulato all’interno di un altro pacchetto. L’intestazione del nuovo pacchetto così ottenuto contiene gli indirizzi IP PA di origine e di destinazione appropriati, oltre all’ID della subnet virtuale memorizzato nel campo chiave dell’intestazione GRE. L’ID della subnet virtuale incluso nell’intestazione GRE consente di identificare la macchina virtuale all’interno di qualsiasi pacchetto, anche in caso di sovrapposizione degli indirizzi PA e CA. In questo modo tutte le macchine virtuali presenti sullo stesso host possono condividere un unico indirizzo PA. La condivisione dell’indirizzo PA influisce decisamente sulla scalabilità di rete perché consente di ridurre drasticamente il numero di indirizzi IP e MAC che l’infrastruttura di rete deve apprendere. Ad esempio, se gli host hanno in media 30 macchine virtuali, il numero degli indirizzi IP e MAC che l’infrastruttura di rete deve apprendere si riduce di un fattore 30. Windows Server 2012 offre il supporto completo di NVGRE senza alcuna necessità di aggiornare l’hardware di rete o di acquistare nuovi componenti. Questo perché il pacchetto NVGRE in transito è un normale pacchetto IP nello spazio degli indirizzi PA compatibile con le odierne infrastrutture di rete.
-
Riscrittura IP Il secondo meccanismo di virtualizzazione supportato da Hyper-V è la riscrittura degli indirizzi IP. Con questo meccanismo gli indirizzi IP CA di origine e di destinazione vengono riscritti con i corrispondenti indirizzi PA, non appena i pacchetti lasciano l’host. Analogamente, quando i pacchetti arrivano nell’host finale, gli indirizzi IP PA vengono riscritti utilizzando gli indirizzi CA appropriati prima di essere consegnati alle macchine virtuali. La differenza principale tra Riscrittura IP ed NVGRE, oltre al formato dei pacchetti, è il fatto che il meccanismo Riscrittura IP richiede un indirizzo PA univoco per ciascun indirizzo CA di una macchina virtuale.
NVGRE o Riscrittura IP ?
Incapsulamento NVGRE |
Riscrittura IP |
Consigliato per la maggior parte degli scenari per i vantaggi apportati in termini di scalabilità: • Compatibile con l’odierno hardware delle infrastrutture di rete • Un unico indirizzo IP per host che riduce il carico sui commutatori • Basato su standard – Supporto per standard di settore e RFC 2784 e 2890 • Le intestazioni MAC complete e il contrassegno esplicito di ID subnet virtuale supportano analisi, misurazione e controllo del traffico multi-tenant • I componenti hardware prossimamente realizzati per integrarsi con NVGRE offriranno prestazioni simili alla riscrittura IP |
Attualmente indicato per scenari con macchine virtuali che richiedono prestazioni pari a 10 Gbps |
NVGRE è il meccanismo di virtualizzazione consigliato per la maggior parte degli scenari di Virtualizzazione di rete con Hyper-V. NVGRE è compatibile con le infrastrutture di rete odierne e con il futuro ingresso sul mercato di prodotti appositamente realizzati per la sua integrazione potrà offrire molti altri vantaggi. Il meccanismi della riscrittura dell’IP è rivolto a scenari specifici in cui le macchine virtuali richiedono larghezza di banda molto elevata.
Funzionalità e vantaggi della virtualizzazione di rete
-
Consente il posizionamento flessibile dei sistemi La Virtualizzazione di rete realizzata utilizzando Hyper-V disaccoppia le reti virtuali dall’infrastruttura di rete fisica (ad esempio dei provider di servizi di hosting), consentendo maggiore libertà nel posizionamento delle VM. Il posizionamento delle macchine virtuali non è più limitato dall’assegnazione degli indirizzi IP o dai requisiti di isolamento dato dalle VLAN della rete fisica.
-
Semplifica lo spostamento dei sistemi in un cloud IaaS (Infrastructure as a Service) condiviso
Grazie alla virtualizzazione di rete gli indirizzi IP e le configurazioni della macchine virtuali restano invariati. In questo modo è possibile spostare agevolmente le VM dai propri data center a un provider di servizi di hosting IaaS (Infrastructure as a Service). -
Consente la migrazione in tempo reale tra subnet La migrazione in tempo reale delle macchine virtuali era tradizionalmente limitata alla stessa subnet IP o VLAN perché il passaggio tra subnet richiedeva che il sistema operativo guest della macchina virtuale cambiasse indirizzo IP. Questo cambio di indirizzo tronca la comunicazione esistente e interrompe i servizi in esecuzione nella macchina virtuale. La virtualizzazione di rete consente di effettuare la migrazione in tempo reale dei server da una subnet a un’altra senza cambiare i loro indirizzi IP.
-
Semplifica la rete e migliora l’utilizzo delle risorse di rete e del server La maggiore flessibilità di posizionamento delle macchine virtuali può semplificare la gestione di rete e migliorare l’utilizzo delle risorse di rete e del server.
-
Usa Windows PowerShell e WMI I cmdlet di Windows PowerShell consentono agli amministratori di creare script automatici per la configurazione, il monitoraggio e la risoluzione dei problemi.
-
Compatibile con l’infrastruttura esistente e le tecnologie più nuove La Virtualizzazione di rete può essere utilizzata negli odierni data center, ma allo stesso tempo è compatibile con le ultimissime tecnologie ed è garantita anche l’Interoperabilità con le risorse esistenti.
Come gestire al meglio la virtualizzazione di rete ?
Virtual Machine Manager 2012 SP1 permette di gestire questo nuovo modello al meglio ed in modo completo. Diventa quindi lo strumento chiave per gestire più facilmente la virtualizzazione di rete in ambienti complessi. Senza SCVMM 2012 SP1 per poter configurare la virtualizzazione di rete è necessario utilizzare comandi Powershell in quanto non c’è la possibilità di controllare direttamente la configurazione attraverso la console di gestione di Hyper-V.
Architettura di rete in VMM 2012 SP1
Sebbene semplificato lo schema seguente illustra i diversi strati che compongono l’architettura di una soluzione di rete virtuale. Troviamo la rete fisica e quindi gli host Hyper-V nella parte inferiore del diagramma e le macchine virtuali e i servizi virtuali in alto. A destra ci sono i nomi di tutti i componenti mentre a sinistra troviamo come questi componenti sono collegati tra loro.
Logical Network
Le Logical Network rappresentano un’astrazione dell’infrastruttura di rete fisica sottostante e consentono di modellare la rete in base alle esigenze e alle proprietà delle connettività. Una rete logica viene utilizzata per organizzare e semplificare le assegnazioni delle reti agli host, alle macchine virtuali e ai servizi.
Network Site
Durante la creazione di una Logical Network c’è la possibilità di creare Network Site (conosciuti anche come Logical Network Definition) per definire VLAN, subnet IP e accoppiamenti di subnet IP / VLAN.
Nell’immagine seguente potete notare i Network Site associati ad una Logical Network denominata “Production”:
Per consentire che la Logical Network “Production” sia supportata in entrambe queste location sono necessari 2 Network Site come mostrato in figura.
Effettuare lo scoping della logical network in un host group dei Network site non rende automaticamente la Logical Network disponibile in ogni host presente all’interno del gruppo, ma questo previene la possibilità di associare la Logical Network a host che non sono all’interno dell’host group target. Per rendere la Logical Network disponibile su un host è necessario associarla a una scheda di rete fisica di quell’host.
Gli Static IP pool definiti nei site delle logical network sono utilizzati solo al momento della creazione di una VM da un VM template oppure da un Service Template.
IP / MAC Address Pools
Virtual Machine Manager è in grado di assegnare automaticamente indirizzi IP dei pool a:
-
VM stand alone basate su Windows in esecuzione su qualsiasi host gestito (Hyper-V, VMware ESX o Citrix XenServer);
-
VM distribuite come parte di un servizio;
-
Computer fisici quando si utilizza VMM per la configurazione del ruolo Hyper-V.
Il concetto di pool di indirizzi IP lo ritroviamo sia nelle Logical Network che nelle VM Network:
-
Pool di indirizzi IP associati alla Logical Network:
-
Gli indirizzi IP appartenenti al pool sono noti come Provider Address (PA)
-
A ogni macchina deve essere assegnato un indirizzo IP proveniente da un Pool che è stato definito per quella Logical Network
-
Devono essere routable tra gli host Hyper-V
-
-
Pool di indirizzi IP associati alla VM Network:
-
Questi indirizzi sono indicati come Customer Addresses (CA) -> Visibili sollo all’interno della VM
-
Serve per definire il range di IP che può essere assegnato alle macchine virtuali connesse a questa rete
-
Il primo IP del pool viene assegnato allo switch
-
Si possono creare più Pool di indirizzi IP all’interno della stessa VM Network
-
Al momento non può esserci una sovrapposizione tra Provider Address (PA) range e Customer Addresses (CA) range.
Come avviene l’associazione tra gli host e le Logical Network ?
Dopo aver definito le Logical Network l’approccio consigliato in Virtual Machine Manager 2012 SP1 è stabilire l’insieme delle proprietà e delle caratteristiche che si desidera applicare alle schede di rete di ogni host utilizzando Port Profile e Logical Switch.
Il vantaggio principale di utilizzare questo approccio è che permette di applicare in modo coerente le stesse impostazioni a schede di rete su più host.
Uplink Port Profile
Un Uplink port profile è un template grazie al quale:
-
Si definiscono le caratteristiche della connessione tra il logical switch e la rete fisica
-
Si definisce il teaming delle schede di rete e l’algoritmo di bilanciamento di carico per il teaming
-
Si specificano quali Logical Network sono in grado di connettersi attraverso una scheda di rete
Un Uplink port profile può essere aggiunto ad un Logical Switch il quale può essere applicato a una scheda di rete di un host fisico.
Nella maggior parte dei casi si creerà un Uplink port profile per ogni insieme di host che hanno la stessa connettività fisica, di conseguenza può risultare necessario creare più uplink profile per una singola posizione nel data center.
Come indicazione di massima se si hanno più reti fisiche oppure si desidera limitare Logical Network a specifici host all’interno di un determinato luogo fisico allora si avrà bisogno di creare più Uplink Port Profile.
Native Port Profile (per Virtual Network Adapter)
Un Native port profile è un modello che consente di definire le seguenti impostazioni per le schede di rete virtuali (anche quelle viste dall’host fisico tramite un logical switch per le converged network):
-
Impostazioni di Offload
-
Virtual Machine Queue (VMQ)
-
IPsec task offloading
-
Single-root I/O virtualization (SR-IOV)
-
-
Impostazioni di sicurezza
-
MAC spoofing
-
DHCP guard
-
Router guard
-
Guest teaming
-
IEEE priority tagging
-
-
Impostazioni sull’occupazione di banda
-
Minimum bandwidth (Mbps)
-
Maximum bandwidth (Mbps) [da 0 Mbps a MAX 100,000 Mbps]
-
Minimum bandwidth weight [da 0 a 100]
-
Sarà necessario creare un Native Virtual Adapter Port Profile per ogni rete logica.
Logical Switch
Un Logical Switch è un modello che viene utilizzato per creare Virtual Switch sugli host Hyper-V Windows Server 2012 e riunisce:
-
Uplink Port Profile
-
Native Port Profile
-
Port Classification -> “friendly” name per il Network Adapter Port Profile visualizzato quando si collega la VM alla rete
-
Switch Extension
In linea di principio è necessario uno switch logico per ogni rete fisica esistente nel proprio ambiente, ma se avete intenzione di limitare alcune reti logiche ad un insieme limitato di host oppure si hanno esigenze di connettività personalizzate può risultare necessario creare ulteriori Logical Switch. Normalmente sarà presente almeno 1 logical switch per ogni logical network.
Virtual Machine Network
Le VM Network forniscono l’interfaccia (di rete) attraverso la quale una macchina virtuale si connette a una specifica Logical Network. In SCVMM 2012 SP1 tutte le VM devono essere collegate ad una Virtual Machine Network per essere in grado di accedere alle risorse di rete, ne consegue che sarà necessaria almeno una VM Network per ogni Logical Network.
Durante la creazione delle VM Network è possibile definire le politiche di isolamento:
-
No Isolation -> la VM Network fornisce alle VM accesso diretto alla Logical Network (comportamento di Virtual Machine Manager 2012 non SP1);
-
Isolation -> è necessario definire la subnet utilizzata dalle VM. Ciò permetterà al virtual switch di creare le tabelle di routing per le reti virtuali.
Di default la Virtual Machine Network non ha connettività verso l’esterno, il che significa che le macchine virtuali ad essa collegate saranno in grado di comunicare solo con altre macchine virtuali su quella rete. Per fornire connettività occorre configurare:
-
VPN Gateway Device: fornisce un collegamento VPN a una rete esterna;
-
Gateway Device: permette alle VM sulla Virtual Network di comunicare con altre reti nel datacenter locale.
È importante sottolineare che la relazione tra una VM Network e la Logical Network è stabilito quando la VM Network viene creata e non può essere modificata in seguito. Se si desidera utilizzare un’altra rete logica è necessario eliminare la VM Network esistente e crearne una nuova.
Francesco
[/auth]