Elaborato Trapasso Giuseppe N46-000877

Scuola Politecnica e delle Scienze di Base
Corso di Laurea in Ingegneria Informatica
Elaborato finale in Sistemi Operativi
Tecniche di Network Virtualization
Anno Accademico 2013/2014
Candidato:
Giuseppe Trapasso
matr. N46/877
Indice
Indice ................................................................................................................................................... II
Introduzione ......................................................................................................................................... 3
Capitolo 1: Dalle reti fisiche ai benefici della virtualizzazione ........................................................... 4
1.1 I limiti delle Physical Network .............................................................................................. 4
1.1.1 Architettura di una rete fisica ......................................................................................... 5
1.1.2 Problemi e difficoltà tecniche ........................................................................................ 6
1.1.3 Problematiche aziendali ed economiche ........................................................................ 7
1.2 L’arrivo delle reti virtuali ........................................................................................................... 8
1.2.1
Le macchine virtuali...................................................................................................... 8
1.2.2 Virtual Network ............................................................................................................. 9
1.3 Differenze fra Network Virtualization, Network Functions Virtualization e Software Defined
Networking..................................................................................................................................... 10
1.4 Benefici tecnici, aziendali ed economici delle reti virtuali ...................................................... 11
Capitolo 2: Realizzazione e gestione di reti virtuali .......................................................................... 13
2.1 Distinguere una rete virtuale da una rete fisica ........................................................................ 13
2.2 Strumenti di virtualizzazione di base: VMware vSphere......................................................... 15
2.2.1 Virtual Stantard Switch (VSS) .......................................................................................... 17
2.2.2 Virtual Distributed Switch (VDS)..................................................................................... 19
2.3 Strumenti di virtualizzazione avanzati: vCSN, VXLAN e NSX ............................................. 21
2.3.1 Virtual Extensible Local Area Network (VXLAN) .......................................................... 22
2.3.2 vCloud Network & Security (vCNS) ................................................................................ 23
2.3.3 NSX................................................................................................................................... 25
2.4 vCNS e NSX al confronto ........................................................................................................ 28
Capitolo 3: Casi d’uso ........................................................................................................................ 29
3.1 vCNS Use Case ........................................................................................................................ 29
3.2 NSX Use Case .......................................................................................................................... 30
Bibliografia ........................................................................................................................................ 31
Introduzione
Questo elaborato vuole esporre le funzionalità ed i vantaggi delle reti virtuali, ormai quasi
indispensabili per avere una buona competitività nel mercato dell’ ICT (Information &
Communication Technology), ponendo un focus particolare sull’azienda leader in questo
settore che è VMware e su i prodotti che offre. Il testo è diviso in tre capitoli. Nel primo si
traccia una panoramica generale sulle reti fisiche ed i problemi derivanti dalla loro
installazione e gestione, si spiega perché le reti virtuali sono tanto importanti per gli ambienti
aziendali, quali problemi risolvono e si arriva quindi a discutere la nascita delle Virtual
Network partendo dai concetti base di macchina virtuale. Il capitolo successivo sarà
incentrato sugli strumenti ed i servizi offerti da VMware, vedremo come la virtualizzazione
può risolvere molti dei problemi legati alla configurazione ed alla gestione di reti fisiche e
come i software messi a disposizione da VMware possano aiutare le aziende a gestire
facilmente server e reti virtuali nei loro Data Client, offrendo parallelamente una buona
perfomance, migliore sicurezza ed una più semplice troubleshooting (risoluzione dei
problemi). In alcuni paragrafi si cercherà di sottolineare i vantaggi che questi strumenti e
queste tecnologie portano alle aziende. Infine analizzeremo in un terzo capitolo alcuni casi
d’uso delle tecnologie VMware immaginando dei casi aziendali a scopo esemplificativo.
3
Capitolo 1: Dalle reti fisiche ai benefici della virtualizzazione
Prima dell’avvento delle macchine virtuali le architetture hardware che si adoperavano per
ogni tipo di utilizzo (calcolo, storage di dati, backup, ecc.) richiedevano costi molto elevati
sia in hardware che in software, così come costi di manodopera e manutenzione. La
virtualizzazione fu introdotta da IBM per permettere un migliore partizionamento di queste
risorse tra più utenti.
Si ci accorse quindi che astrarre le risorse in un livello logico e separarle da quello fisico
poteva portare diversi vantaggi. Il primo caso di virtualizzazione lo abbiamo, appunto, con
IBM negli anni ’70. Poi, fra gli anni ottanta e novanta, la virtualizzazione venne trascurata a
causa dell’avvento dei personal computer e solo nel 1999 VMware offre il primo strumento
di virtualizzazione chiamato x86 Virtual Platform, nato insieme ad altri progetti (ad esempio
il progetto Xen), che avevano come target la server virtualization. Nel 2005 la stessa azienda
lancia VMware Player, un player per macchine virtuali gratuito, e da allora lo sviluppo di
questa tecnologia progredì fino alla Network virtualization e il Cloud Computing.
1.1 I limiti delle Physical Network
Le reti fisiche, seppur utilizzate per parecchi anni ed ancora adesso, presentano delle
problematiche di sviluppo e gestione.
Da un punto di vista di design le macchine fisiche dovevano essere dimensionate su misura,
nei progetti a larga scala, per ogni software che sarebbe stato eseguito su di esse. La
manutenzione era costosa perché diversi tipi di server, ad esempio di storage o di calcolo,
richiedevano diversi gruppi di esperti con abilità specifiche differenti. Distribuire server
fisici nei Data Center poteva richiedere tempi di consegna dell’ordine di giorni o anche
4
settimane. Altro problema frequente era il downtime (periodo morto o tempo di attesa) nato
nel dover, ad esempio, applicare una patch ad ogni macchina o risolvere un problema di
manutenzione. Tutti questi aspetti sono stati il trampolino di lancio delle reti virtuali nei Data
Client. E’ adesso possibile dimensionare le risorse destinate ad una specifica applicazione, ed
eventualmente cambiarle dopo l’installazione, senza dover modificare le macchine fisiche,
possiamo ridurre in maniera significativa i costi di manutenzione che avviene quasi
completamente a livello software, e la fornitura di una rete virtuale non impiega più
settimane ma minuti. Vediamo adesso qualche concetto base dell’architettura di una rete
fisica ed altri problemi legati al suo corretto funzionamento.
1.1.1
Architettura di una rete fisica
Prendendo come riferimento la Figura 1 possiamo vedere l’architettura di rete di un singolo
Data Center, esaminiamo i vari componenti che saranno più volte ripresi nel resto della
trattazione.
1. VPN (Virtual Private Network) permette ad una macchina di connettersi da una rete ad
un’altra per utilizzare le sue risorse, la connessione è tipicamente criptata e sicura.
2. Firewall, è usato per salvaguardare la rete, o componenti della rete, da intrusioni e
filtrare i pacchetti in entrata o in uscita.
3. Uno switch è un apparato di livello 2 che permette di fare commutazione dei frame.
5
Esso può servire quindi per estendere una certa LAN interconnettendo due spezzoni di
rete con lo stesso indirizzo di rete.
4. Questo elemento è chiamato Load Balancer o bilanciatore di carico ed è usato per
bilanciare il traffico di un applicazione o della rete fra un gruppo di server, con lo
scopo di migliorare le prestazioni.
5. Un router è invece un apparato di livello 3 che permette principalmente di fare
instradamento dei pacchetti. Riceve pacchetti di dati da una linea, ne identifica il
destinatario e li inoltra ad una nuova linea.
6. Le macchine fisiche sono interconnesse fra loro e possono inviare e ricevere dati l'un
l'altra. Sono interconnesse alla rete tramite schede di interfaccia di rete chiamate NIC e
tramite i cavi di rete. Nella virtualizzazione su queste macchine vengono installati i
server ESXi che sono alla base delle reti virtuali VMware.
7. I server fisici sono organizzati in “racks” o scaffali per facilitarne manutenzione,
raffreddamento ed alimentazione.
1.1.2
Problemi e difficoltà tecniche
Quando una rete fisica con l’architettura vista in precedenza viene installata, bisogna
collegare tutti gli switch ad uno switch principale (core switch), poi collegare ogni macchina
fisica ad uno switch ed etichettare i cavi per avere una più semplice troubleshooting in futuro.
Inizia quindi la configurazione di ogni singolo switch, l'assegnazione ed il testing degli
indirizzi IP, l'installazione di altri eventuali componenti come schede di rete, driver e
firewall. E’ facile vedere che già questa prima fase di installazione richiede molto tempo ed
eventuali errori possono compromettere il funzionamento dell’intera struttura. Prima di
distribuire la rete bisogna considerare i requisiti delle applicazioni che si vorranno installare
sui server. Ogni implementazione fisica può variare e dipendere da ciò che le applicazioni
richiedono. Un e-mail server, per esempio, deve prevedere nel design di sviluppo alcuni
basilari sistemi di sicurezza contro attacchi IP o una certa velocità nell'invio della posta.
Altro esempio potrebbe essere un server di attiva gestione degli account che, per ovvie
ragioni di sicurezza, deve essere separato da server contenenti dati sensibili come un business
6
server o database server. Il costo di questa segmentazione può essere ridotto usando un
firewall o una VLAN ma non avremo i livelli di efficienza raggiunti con la virtualizzazione.
Nelle reti c'è inoltre l'esigenza di dividere differenti indirizzi (e quindi usare differenti
switch) per differenti tipi di traffico. Ad esempio: traffico di tipo gestionale che serve alla
gestione di switch, router e firewall, traffico di produzione che supporta dati aziendali, diretti
ai database o traffico utente. Potrebbe servire un canale privato per il Test Development
Traffic, traffico dedicato all’ ambiente di sviluppo aziendale ed i laboratori. Se il numero di
utenza in una rete è alto, possono esserci problemi di congestione del traffico, allora per
aumentare la performance bisogna allargare la banda. Altri problemi possono derivare ad
esempio dall'utilizzo di streaming multimediali come invio di conversazioni vocali o video.
Tutte queste problematiche si convertono in scelte di configurazione che posso richiedere
molte risorse, tempo e ed essere sorgenti di problematiche. Cambiare i parametri di rete dopo
la sua installazione costa parecchio.
1.1.3
Problematiche aziendali ed economiche
Le richieste degli utenti possono aumentare nel tempo o raggiungere picchi a seconda dei
periodi, se il sistema non è sufficientemente flessibile e dinamico, problema basilare delle
reti fisiche, i servizi offerti potrebbero non rispondere in maniera sufficientemente veloce alle
richieste dei clienti. I nuovi servizi resi disponibili online richiedono continuamente nuove
interfacce, configurazioni, firewall ed altre caratteristiche avanzate che un’azienda dovrebbe
facilmente implementare per restare aggiornata con i tempi. Il downtime è, come già detto,
un altro problema importante: gli attacchi di rete sono sempre più sofisticati e richiedono
pertanto frequenti aggiornamenti dei sistemi di sicurezza e di rete in genere, ma questi
aggiornamenti portano periodi morti indesiderati. Gli impiegati di un’ azienda devono
ricevere corsi di aggiornamento e training per riuscire ad affrontare correttamente
configurazioni e sviluppo per nuove tecnologie, si immagini invece se bastasse avere
dimestichezza con uno solo strumento software per poter configurare e riconfigurare una rete
in poco tempo. Cosa possibile con gli strumenti di gestione per reti virtuali.
7
1.2 L’arrivo delle reti virtuali
Virtualizzare vuol dire creare una versione virtuale di risorse e dispositivi come: dispositivi
di memorizzazione,
sistemi operativi,
server ed anche reti, dove gli strumenti di un
framework dividono queste risorse fra uno o più ambienti in esecuzione. Anche qualcosa di
semplice come partizionare un Hard Disk è considerato virtualizzazione, perché da un solo
dispositivo fisico se ne estraggono due o più che hanno in totale le stesse risorse. I
dispositivi, i software e gli utenti finali possono interagire con le risorse virtuali proprio come
se fossero risorse fisiche. La virtualizzazione converte risorse fisiche in risorse software, la
rivoluzione fatta da VMware è di annullare la dipendenza fra le virtual machine e l'hardware
dei singoli server.
1.2.1
Le macchine virtuali
Una macchina virtuale o Virtual Machine (VM) è l’emulazione software di una macchina che
esegue programmi proprio come la macchina fisica. In queste macchine le risorse fisiche
sono astratte ad un livello virtuale e possono essere utilizzate tutte o in parte nell’esecuzione.
Grazie a questo processo possiamo avere diversi vantaggi: più sistemi operativi possono
coesistere nella stessa macchina, possiamo avere una macchina virtuale con un diverso
instruction set della macchina fisica su cui è installata, generalmente le virtual machine
forniscono alta portabilità, disaster recovery e manutenzione semplificata. Esistono macchine
virtuali sia a livello desktop che server, analizziamo le prime. La virtualizzazione a livello
desktop agisce su più livelli. E’ possibile portare nel Cloud le risorse ed il sistema operativo
del singolo desktop o di più dispositivi, ad esempio in un utilizzo aziendale, per condividere
risorse, effettuare backup, aggiornare software in tempo reale ed in parallelo o altro ancora.
Queste funzioni sono rese disponibili da VMware Horizon Mirage. La virtualizzazione delle
macchine può estendersi poi a dispositivi di diversa tipologia (tablet, smartphone, netbook) o
anche estendere uno stesso ambiente di lavoro a più dispositivi: immaginiamo di voler
modificare un’ agenda digitale sul nostro telefono e trovare le stesse modifiche anche nei
nostri personal computer. Questi servizi sono offerti da altri prodotti Vmware come Horizonview ed Horizon-workspace ma non verranno approfonditi perché esulano l’argomento
centrale di questa tesi. L’aspetto delle macchine virtuali che più ci ricollega alle virtual
8
network è la virtualizzazione server, lasciamo i dettagli e gli strumenti utilizzati a questi
scopi nel prossimo capitolo, ora ci limiteremo a sottolinearne l’utilità ed i benefici nelle reti
virtuali.
1.2.2
Virtual Network
Abbiamo visto come una virtual machine è la rappresentazione virtuale delle risorse fisiche
di un sistema. In maniera molto simile possiamo dire che una virtual network è la
rappresentazione virtuale dei componenti di una rete fisica. La network virtualization può
essere descritta come la riduzione di reti fisiche in software, i principali componenti (switch,
adapter, ecc..) sono essenzialmente gli stessi ma non esistono fisicamente e possono essere
visti come dei “magical objects” che funzionano più o meno allo stesso modo dei
corrispettivi elementi fisici. L’adapter virtuale è progettato per operare nello stesso modo di
una scheda di rete fisica e può essere configurato nelle virtual machine esattamente nella
stessa maniera. Abbiamo ancora bisogno di configurare un indirizzo IP per far comunicare le
nostre virtual machine con il mondo esterno, gli switch virtuali in questo si comportano come
switch fisici e connettono le nostre macchine ad una rete fisica o ad altre reti virtuali. Come
vedremo meglio in seguito, nell’ambiente vSphere gli switch vengono eseguiti come parte
del software e su ogni server, in particolare su ogni ESXi host, sono caricati dal kernel
proprio come molti altri componenti di un sistema operativo. E’ possibile usare altri elementi
software, che non richiedono un hardware di base specifico, per riprodurre gli stessi servizi
usati in un mondo fisico come: firewall, load balancer, VLAN (o VXLAN come vedremo)
ecc… E’ importante non dimenticare che c’è comunque la necessità di connettersi ad una rete
fisica da qualche parte lungo il processo, anche se nelle tecniche più moderne (si veda NSX
nel prossimo capitolo) la rete fisica è utilizzata solo come un IP BackPlane. Anche se la rete
virtuale si comporta più o meno come una rete fisica, la differenza principale è che la
gestione delle risorse e dei componenti (in questo caso virtuali) avviene a livello software e
può essere distribuita o replicata in diversi host.
9
1.3 Differenze fra Network Virtualization, Network Functions Virtualization e
Software Defined Networking
La necessità di rendere più agile la configurazione e la gestione delle reti ha portato negli
anni alla nascita di diverse tecnologie, alcune simili fra loro ed alcune anche complementari
ma fondamentalmente diverse. Queste sono principalmente la Network Virtualization (NV),
Network Functions Virtualization (NFV) e le Software Defined Networking (SDN). Diamo a
queste sigle una definizione ed una descrizione. Con il passare del tempo le richieste di
cambiamenti alla rete diventavano sempre più frequenti e difficili da gestire, il problema che
gli amministratori di rete si ponevano era principalmente: Come posso spostare facilmente
una virtual machine in un diverso dominio logico? La risposta arrivò con le virtual network.
L’idea è quella di creare un segmento logico in una rete esistente, dividendo la rete a livello
del flusso dati. Si tratta del così detto overlay, si può immaginare come un tunnel fra due o
più host di una rete, realizzato senza dover cambiare fisicamente la topologia di base. Questo
è utile perché gli amministratori di rete non devono modificare quello che hanno già fatto,
possono effettuare cambiamenti sulla rete già esistente. Con le virtual network possiamo
quindi cambiare la topologia di rete in maniera semplice, centralizzata, e senza dover
modificare l’hardware. Possiamo ora però offrire tutti i servizi di cui gode una normale rete
fisica? In questo entra in gioco la NFV, se l’amministratore può settare una virtual machine
con un click, perché non dovrebbe poter configurare un firewall o una VPN nello stesso
modo? Questo è esattamente ciò che NFV permette. Dai servizi di gateway, a quelli di
sicurezza, ai sistemi di incapsulamento, tutto ciò che una rete fisica offriva ora è possibile
virtualmente grazie a NFV. Il prossimo stadio della ricerca sulla gestione delle virtual
machine nelle reti ci porta invece al Software Defined Networking. Il SDN nasce da alcuni
ricercatori della Stanford University intorno al 2008 i quali, stanchi di dover cambiare il
software dei dispositivi di rete per ogni nuovo approccio sperimentato, decisero di elaborare
un sistema che avrebbe reso il comportamento della rete programmabile e controllabile
tramite un entità centrale. L’evoluzione di questa intuizione porta al SDN, che vuole una
completa divisione del livello di controllo da quello fisico dei dati. Il pannello di controllo
può inviare task agli switch e riprogrammare la rete tramite un protocollo di controllo,
10
attualmente il più utilizzato è chiamato OpenFlow. I clienti conoscono le differenza fra
queste tecniche ma non vogliono doversele procurare separatamente, ecco perché VMware le
mette a disposizione tutte insieme nei suoi prodotti, offrendo strumenti completi come NSX.
1.4 Benefici tecnici, aziendali ed economici delle reti virtuali
La virtualizzazione di reti rimuove i vincoli fra il software virtualizzato e le reti fisiche, le
virtual network sono progettate per essere facilmente flessibili e ed è possibile spostare le
macchine virtuali all’interno della rete cambiandone la topologia senza ulteriori costi di redesign. Basti immaginare ai guadagni nel poter fornire qualsiasi topologia di rete in poco
tempo e senza dover apportare nessuna modifica all’hardware già presente nelle rete fisica o
alle applicazioni precedentemente sviluppate su quella rete. Il vero obiettivo delle reti virtuali
è astrarre le reti in un livello di rete virtualizzata rendendole indipendenti dalle componenti
hardware così da semplificare molto la distribuzione e l'utilizzo delle stesse, inoltre la
sicurezza non richiede hardware dedicati e strumenti come il firewall possono essere
aggiornati e modellati sulla nuova infrastruttura di rete. Proprio come le virtual machine
gestiscono le risorse, le reti virtuali creano un pool unico di capacità di rete che può essere
segmentato in differenti reti logiche e sotto-reti. In questa gerarchia le reti possono essere
ridimensionate senza riconfigurare l'hardware fisico, o è possibile aggiungere servizi di rete
come il firewall e VPN senza problemi.
Virtualizzare le macchine ha ridotto di molto i tempi di sviluppo dei server, ma questo
guadagno viene attenuato se dobbiamo configurare un server prima di azionare la nostra
virtual machine. Inoltre abbiamo vincoli sulla disposizione fisica della rete, e dipendenze
hardware richiedono esperti specifici. Con le virtual network questi aspetti sono superati,
migliorando lo sviluppo e la manutenzione. Si può avere un 30% o più di guadagno in OpEx
(Operating Expenditure: spese relative a gestione e manutenzione di un prodotto) sulle
operazioni nella rete. Aziende potrebbero voler sviluppare un applicazione, o migliorarne
una, su una rete già esistente. Le virtual network possono emulare la rete in questione durante
lo sviluppo e il testing dell'applicazione permettendo di fare nell'ordine di ore quello che
verrebbe fatto in settimane. Ma la flessibilità di un’ applicazione entra in contrasto con la
11
sicurezza, le aziende oggi devono essere sempre più attente a cambiare i fattori di controllo e
migliorare la sicurezza, ed il trade-off fra flessibilità e sicurezza è arduo anche con l’utilizzo
di reti virtuali. Una più veloce distribuzione dei server e set-up delle applicazioni può
permettere alle aziende di essere più competitive. Inoltre riducendo la quantità di
apparecchiature hardware si riducono i costi delle macchine, degli spazi, della manutenzione,
dello scaling, del raffreddamento e dell’alimentazione dei server, risparmiandone in tempo e
denaro.
12
Capitolo 2: Realizzazione e gestione di reti virtuali
Prima di entrare nel dettaglio dei software di gestione VMware è bene fare alcune riflessioni
generali su come una rete virtuale si presenti e quali siano le principali differenze ed analogie
con una rete puramente fisica. Alcuni aspetti delle virtual network possono sembrare simili a
quelli di una physical network o potrebbero apparire addirittura più complessi e di difficile
gestione, non dobbiamo però dimenticare che quello che avviene nelle reti virtuali avviene
perlopiù in sofwtare, questo ne cambia l’approccio e ne semplifica le operazioni di
configurazione e manutenzione.
Vedremo in questo capitolo le tecniche principali offerte da VMware per la gestione di reti
virtuali ed una tabella finale di paragone fra le più avanzate tecniche a disposizione.
2.1 Distinguere una rete virtuale da una rete fisica
Le applicazioni di una rete virtuale hanno bisogno di un dimensionamento delle risorse
dedicate e di una quantità di spazio libero in un server proprio come per le reti fisiche, queste
vengono però installate in specifici server chiamati ESXi e operano in macchine virtuali
ciascuna con uno specifico sistema operativo e carico di lavoro associato. Un server ESXi è
un prodotto VMware per la virtualizzazione a livello aziendale, è un evoluzione del
precedente ESX. La grossa differenza tra ESX e ESXi è la Service Console. ESX ne è
provvisto mentre ESXi no. I vantaggi di avare la Service Console sono: la possibilità di
utilizzare driver di terze parti per hardware specifico, utilizzo di software di backup scritto
specificatamente per ESX e la possibilità di eseguire tramite script alcune attività
direttamente sulla shell della Service Console, senza passare da tool di terze parti. Ma ci sono
13
anche alcuni contro: bisogna mantenere aggiornata la Service Concole poiché è soggetta ad
attacchi informatici e crea overhead a livello hardware e nella gestione. ESXi è molto più
snello, è più stabile perché non è soggetto a kernel panic che possono derivare dall'utilizzo di
driver di terze parti e con la vMA (Virtual Management Assistant) può fare tutto quello che si
faceva con la Server Console di ESX. La vMA ha un unico difetto ossia, non avendo
visibilità "all'interno" del codice del vmKernel, utilizza lo stack di rete per inviare dei
comandi alle API del vmKernel ESXi, non ha quindi un accesso diretto. ESXi ha comunque
una shell diretta che permette di eseguire troubleshooting se necessario.
Tornando alla nostra rete virtuale, essa dovrà essere collegata a diversi dispositivi come in un
mondo puramente fisico, ma con molte meno dipendenze. Il traffico fra dispositivi della
stessa rete o, ancora più importante, fra applicazioni ed utenti esterni alla rete utilizza anche
in questo caso un protocollo TCP/IP dobbiamo però introdurre nuove tipologie di traffico
dati a quelle viste in precedenza.
Traffico vMotion: è il traffico gestito da un potente e molto utilizzato strumento VMware
chiamato vMotion. Questo oggetto permette di spostare o copiare un’ intera virtual machine
da un host ESXi all’altro senza creare downtime o interferire con il lavoro degli altri host, per
fare questo necessita di un canale di traffico dedicato ed ad altra priorità.
Traffico di Fault Tolerance: Fault Tolerance (FT) fornisce disponibilità ininterrotta alle
applicazioni in caso di guasti dei server, creando un' istanza detta shadow (o secondaria) di
una macchina virtuale sempre aggiornata rispetto alla macchina virtuale primaria. In caso di
guasti all'hardware, FT attiva automaticamente il failover, eliminando i downtime ed
evitando perdite di dati.
Dopo il failover, FT crea una nuova macchina virtuale secondaria per garantire una
protezione continua dell'applicazione. Anche questo traffico necessita un canale dedicato ad
alta priorità.
Traffico di Virtual SAN (VSAN): tutti gli host che partecipano ad un cluster Virtual SAN
mantengono questo flusso di traffico. VSAN è un software di storage a livello supervisore
(esamineremo l’entità supervisore parlando del NSX) che astrae e mette insieme la parte
flash dei server ed i dischi di memoria per creare uno strato di storage a livello supervisore
14
persistente e ad alta performance. (il nome potrebbe essere ironicamente riferito al Cluster
Sun di Oracle)
Questi ed altri flussi di traffico aggiuntivi sembrano far apparire una rete fisica meno
complessa e più facile da gestire rispetto ad una virtuale, in realtà nelle reti virtuali la
segmentazione del traffico può essere facilmente realizzata in pochi passi utilizzando un
unico sistema di gestione centralizzato. Per realizzare una rete virtuale fondamentalmente si
crea un virtual switch in software, questo appare alle virtual machine come uno switch fisico,
possiamo quindi collegare le macchine virtuali allo switch virtuale ed il traffico continua a
scorrere come nelle reti fisiche. Sostanzialmente con lo switch virtuale possiamo fare le
stesse cose che faremmo con quello fisico, ma in software, questo ci permette di applicare
facilmente politiche di funzionamento alle nostre macchine virtuali o ad un loro sottoinsieme,
rende la configurazione più facile e presuppone un minore utilizzo di cavi. Uno switch fisico
è dotato di porte che possiamo utilizzare per collegarlo ai nostri Server, allo stesso modo un
virtual switch è dotato di porte virtuali a cui possiamo collegare le nostre virtual machine,
singolarmente o in gruppi chiamati Port Group. Lo switch virtuale utilizza anch’esso un
adapter a cui vengono connesse le macchine virtuali, ma si tratta di un adapter virtuale
chiamato virtual NIC o vNIC. La rete virtuale si connette tramite il virtual switch alla rete
fisica sottostante utilizzando gli adapter fisici (NIC), ed il traffico scorre senza che la rete
noti alcuna differenza.
2.2 Strumenti di virtualizzazione di base: VMware vSphere
La gente, soprattutto se clienti e non esperti del settore, fa confusione riguardo questa
piattaforma offerta da VMware, iniziamo facendo alcuni chiarimenti su cos’è vSphere e cosa
non è. Diciamo fin da subito dire che vSphere non è un particolare software che possiamo
installare ed utilizzare! vSphere è una suite, ovvero comprende numerosi componenti
software al suo interno. I componenti fondamentali sono ESXi, vSphere client e vCenter
Server. ESXi è il server di virtualizzazione. E’ il supervisore di livello più basso del sistema.
Tutte le machine virtuali delle rete si appoggiano su server ESXi. Per installare, accedere o
gestire queste machine virtuali situate su un server ESXi, abbiamo bisogno di altre
15
componenti della suite vSphere chiamate vSphere client e vCenter Server. Ora, il vSphere
client permette all’amministratore di connettersi ai server ESXi ed accedere o gestire le
machine virtuali. vSphere client è installato sulla macchina del cliente (ad esempio il
computer portatile dell’amministratore di sistema). Il vSphere client è quindi usato per
inviare task alle machine in cui è installato il server ESXi. Sorge spontaneo chiedersi cosa sia
vCenter Server e perchè abbiamo bisogno di questo terzo componente. Ci sono operazioni
che un semplice client in un personal computer non può svolgere, si provi ad esempio ad
usare vMotion per clonare una macchine virtuale da un host all’altro.
vCenter Server è simile a vSphere client ma è situato in un server dedicato e quindi molto più
potente. vCenter server è installato su un server Windows o Linux. VMware vCenter Server è
un applicazione di gestione che permette di gestire i server ESXi in maniera centralizzata.
vSphere client è allora usato per accedere a vCenter Server e gestire le macchine virtuali
tramite questo. Possiamo dire che in grossi ambienti vCenter Server è una componente
fondamentale, la licenza vCenter è venduta separatamente.
Si consideri il diagramma in Figura 2 per avere un’ idea più chiara.
Riassumendo: vSphere è una sofware suite, ESXi è un server supervisore installato su una
macchina fisica. vSphere Client è installato in personal computer ed usato per accedere ESXi
Server ed installare e gestire le macchine sui server ESXi. vCenter server è installato come
macchina virtuale su un ESXi server. vCenter Server è un componente vSphere
maggiormente usato in ambienti medio-grandi dove ci sono diversi ESXi server e dozzine di
macchine virtuali. Per accedere a vCenter Server si utilizza anche vSphere Client ed è
16
utilizzato a scopi gestionali. Quindi utilizzeremo vSphere client per accedere direttamente I
server ESXi in ambienti più piccoli, mentre ci appoggeremo su un vCenter Server per sistemi
più estesi. Adesso entriamo nello specifico e vediamo le due principali architetture realizzate
nella server virtualization grazie a vSphere.
2.2.1 Virtual Stantard Switch (VSS)
Uno dei componenti basilari delle reti virtuali è il Virtual Standard Switch (VSS). E' una
componente software collegata agli switch fisici e su cui appoggiano tutte le macchine
virtuali tramite i virtual adapter o così detti vNIC. Gli adapter virtuali funzionano come
adapter fisici e richiedono driver allo stesso modo, la differenza fondamentale è che possono
supportare diversi tipi di driver e quindi operare in diversi sistemi operativi, è sufficiente
selezionare il tipo di adapter virtuale da voler utilizzare tramite un apposito tool. Il VSS è
connesso ad un ESXi host fisico e le mcchine a lui collegate possono essere gestite dagli
ESXi host oppure da un vCenter Server, se gestito da server possiamo effettuare i
cambiamenti che desideriamo su più host contemporaneamente,
sia manualmente che
automaticamente. Possiamo raggruppare insieme più virtual machine, quando ha senso, e
operare settaggi comuni. Come già detto un VSS ha delle porte virtuali a cui sono connesse
le macchine virtuali ed altre a cui sono connesse le macchine fisiche tramite NIC, due
macchine connesse allo stesso VSS hanno il vantaggio di poter comunicare fra loro
internamente allo stesso host, senza dover inviare traffico nel mondo esterno. Se invece
vogliamo far comunicare una macchina con il mondo esterno dobbiamo utilizzare un UpLink
come faremmo con uno switch fisico, questo nelle rete virtuali lo possiamo ottenere
utilizzando un UpLink adapter che non è niente di più che un NIC fisico (physical NIC o
pNIC) associato ad uno switch reale. Possiamo anche associare diversi vNIC ad una
macchina virtuale, potremmo volere che una macchina comunichi internamente ad un VSS
con una seconda macchina, e che poi trasferisca questi dati ad una rete esterna tramite un
secondo VSS, per farlo ci basta installare due adapter e collegarli con switch virtuali diversi.
Potremmo anche voler raggruppare diverse macchine virtuali in diverse reti per divederle
logicamente all’interno del nostro ambiente, per fare questo dobbiamo solo creare un nuovo
17
VSS per ogni gruppo di virtual machine. Se i gruppi sono molti questa soluzione non è più
efficace, ricordiamo infatti che il Virtual Standard Switch è pensato per ambienti mediopiccoli, ambienti più sofisticati richiedono altre soluzioni come il Virtual Distributed Switch
o NSX che vedremo in seguito. Una soluzione che possiamo già ottenere con un VSS è la
creazione di Port Group. Questo consente di raggruppare virtual machine logicamente ed
applicare differenti politiche a interi gruppi di macchine virtuali, gestire opportunamente
diverse politiche in diversi Port Group può garantire una migliore sicurezza, segmentazione
della rete, migliore performance e gestione del traffico. Ogni gruppo è identificato da una
label usata per assicurarsi che diverse macchine virtuali su diversi ESXi host possano
connettersi alla stessa sotto-rete o VLAN.
Ricapitolando, osserviamo la Figura 3, il traffico di una virtual machine passa dai vNIC per
arrivare al Port Group al quale è stata assegnata, lì passa per lo switch virtuale e può
comunicare con un’altra virtual machine dello stesso VSS senza uscire dal server, o con il
mondo esterno attraverso adapter fisici, una virtual machine può inoltre avere più di un vNIC
per connettersi con diverse reti IP contemporaneamente. Il traffico in entrata fa lo stesso
percorso ma all’inverso.
Come detto all’inizio di questo capitolo una rete virtuale può avere diversi tipi di traffico,
anche più di quanti ne avrebbe una rete fisica, e questo può portare a problemi di latenza o
18
congestione. Una buona pratica per attenuare i problemi è quella di creare uno switch virtuale
per ogni tipo di traffico differente, ad esempio sarebbe utile avere un VSS dedicato al solo
traffico utilizzato da vMotion per la clonazione di macchine fra host. Questo ci riporta alla
conclusione che il VSS non è una soluzione adatta ad ambienti troppo grandi.
2.2.2 Virtual Distributed Switch (VDS)
Quando la rete diventa complessa e gli host aumentano di numero è sempre più difficile
mantenere una configurazione consistente. Per quello che abbiamo visto finora la
configurazione dovrebbe essere manualmente replicata su ogni host, questo può essere
faticoso, una semplice installazione di vMotion richiede che ogni host abbia almeno un Port
Group dedicato ed un identificativo, quello che ci serve è la possibilità di configurare un
singolo host e vedere la nostra configurazione replicata in ogni altro host. Per risolvere
questo ed altri disagi, insieme a VSS, vSphere fornisce un Virtual Distributed Switch (VDS).
Il VDS come il VSS è controllato tramite vCenter Server, per la sua natura distribuita può
essere gestito solo così, ed a differenza del modello standard non è limitato al contesto del
singolo ESXi perché è installato in maniera distribuita su più host. Essendo associato a più
host può effettuare configurazioni in parallelo fra tutti loro, mantenendo così uno stato
consistente anche attraverso host multipli (Figura 4).
19
Un VDS funziona come un singolo switch ma attraverso tutti gli host ad esso associati, ogni
host ha un proxy switch che contiene i settaggi di rete configurati al livello logico del VDS.
Come un VSS lo switch distribuito può consentire il passaggio di traffico fra macchine
collegate allo stesso switch o con reti esterne, in questo i Port Group sono distribuiti su host
diversi e necessitano quindi una label di rete per essere riconosciuti, una copia di ogni Port
Group creato verrà replicata su tutti gli host associati a quel VDS ed ogni modifica nelle
politiche adottate su un gruppo verrà anch’essa mantenuta consistente su tutte le copie. Fra
ogni host fisico ed il VDS c’è un ulteriore livello di astrazione chiamato dvUpLink, le
politiche di net timing, load balancing e failure recovery nello switch e nei Port Group sono
applicate dal livello dvUpLink. Come detto è possibile applicare configurazioni in parallelo
su tutti gli host tramite un vCenter Server, questo riduce le tempistiche, i costi e migliora la
troubleshooting, qualcuno potrebbe notare che un errore di configurazione sul singolo host
verrebbe replicato su ogni host, questo può essere in parte risolto con sistemi di rollback
forniti dal VDS.
L’architettura degli switch virtuali, sia standard che distribuiti, è costruita su due livelli: il
Data Plane contenente i dati relativi allo switch ed il Management layer che contiene le
istruzioni di controllo. Come già ribadito il Management layer nel VDS è centralizzato, ma ci
sono altre differenza fra VSS e VDS da poter sottolineare. Il VSS consente sistemi di traffic
shaping solo sul traffico in uscita e supporta la tecnologia VLAN ma non pVLAN (private
VLAN), il VDS, al contrario, ha controlli sul traffico anche in entrata, supporta le pVLAN,
consente una potenziale personalizzazione del Data e Management Plane. Ulteriori
caratteristiche di un VDS sono: integrazione di LACP (link aggregation control protocol) che
configura automaticamente aggregazioni di link fra gli host e gli switch fisici di accesso alla
rete, template per il backup e ripristino a livello di controllo, supporto di estensioni con
switch virtuali realizzati da terze parti come Cisco Nexus 1000V o IBM 5000v, protocolli per
l’analisi remota ed il Netflow, ed altro ancora.
Per utilizzare un VDS sono necessarie almeno due licenze VMware: vSphere Enterprise Plus
level e vCenter Server, in sistemi complessi queste licenze erano spesso affiancate da un altro
20
elemento chiamato vCenter Server heartbeat che però dal 2 Giugno 2014 non è più
disponibile e VMware ne ha bloccato la vendita ed il supporto.
Da un punto di vista manageriale avere una gestione centralizzata è già di per sé un grande
guadagno, è ormai chiaro come questo faciliti la manutenzione e la supervisione dello stato
della rete, ma altre caratteristiche del VDS possono essere importanti. Un metodo che
configuri automaticamente l’aggregazione di link fra gli host ed il livello fisico di accesso
alla rete è un vantaggio gestionale non indifferente ed è reso possibile dal LACP integrato nel
VDS. Spesso alcune applicazioni aziendali hanno importanza critica e si vorrebbe che il
traffico sui canali che utilizzano sia sempre ad alta priorità e protetto da congestione, VDS
utilizza vSphere Network I/O Control (NIOC) per configurare le regole e le politiche a livello
di macchina virtuale ed assicurare sempre la disponibilità delle risorse I/O per le applicazioni
aziendali critiche. NIOC esegue il monitoraggio della rete ed in caso di rilevamento di
congestioni trasferisce automaticamente le risorse alle applicazioni con priorità maggiore.
Grazie a NIOC, è possibile migliorare la produttività degli amministratori, estendere la
virtualizzazione ad un numero maggiore di carichi di lavoro e rendere l'infrastruttura ancora
più flessibile. A questo si aggiunge un sistema di tagging che è molto importante nell’ambito
del QoS (Qality of Service) e permette di identificare i pacchetti del traffico VoIP dando una
priorità interna al Port Group del traffico di produzione.
Vediamo ora i limiti del VDS: intanto VDS è un prodotto per aziende medie o, al limite,
medio-grandi, per ambienti su più larga scala non è più una soluzione efficiente, non
permette di creare sotto-reti che coprano livelli di rete superiore (network overlay),
implementare firewall, NAT o gateway su se stesso, o agire da Load Balancer. Ecco perché
abbiamo bisogno di tecniche più avanzate di virtual networking.
2.3 Strumenti di virtualizzazione avanzati: vCSN, VXLAN e NSX
Partendo dalla virtualizzazione dei server, ed arrivando poi ad un livello logico superiore che
sono le reti virtualizzate, si abbandona la complessità dell'ingegneria delle reti fisiche e dei
problemi relativi all'hardware ed è possibile utilizzare prodotti software per la gestione delle
reti. NSX permette di creare reti per ambienti complessi con un hardware general purpose
21
alla base, mentre vCNS permette la gestione di applicazioni aziendali e della loro sicurezza
con protocolli di sicurezza basati sul Cloud.
vCNS è un insieme di servizi avanzati per applicazioni basate su vSpehere o vCloud, servizi
come DHCP, NAT, VPN, Loab Balancer, Firewall, Static routing. Supporta il VXLAN
Overlay, di cui parleremo nello specifico, ha una UI di gestione e funziona solo su server
ESXi.
NSX è un sistema basato su supervisori distribuiti. Prevede anche la gestione di: DHCP,
NAT, VPN, Load Balancer e Firewall. Supporta il routing statico e dinamico (BGP, OSPF) e
vari tipi di overlay (VXLAN, STT, GRE). A differenza di molti altri prodotti VMware può
funzionare su diversi tipi di host oltre ad ESXi, come: KVM, Xen, Hyper-V. Fornisce un set
di API per la gestione e la programmabilità della rete.
2.3.1 Virtual Extensible Local Area Network (VXLAN)
La VLAN è di per se utile nella creazione di sotto-reti, ma ha delle limitazioni: limitato
numeri di reti L2 (layer 2) isolate, diametro limitato per le reti L2, numero massimo di 4094
network ID assegnati nello stesso tempo, impossibilità di cambiare la configurazione fisica
della rete su richiesta. Si introduce allora la Virtual Extensible LAN (VXLAN). E' una
tecnologia di overlay, una rete di overlay è una rete L3 costruita su un esistente rete L2.
VXLAN incapsula un frame L2 in un pacchetto IP L3. La comunicazione è stabilita
attraverso un VXLAN Tunnel End Point o VTEP. I VTEP sono i nodi che forniscono le
funziona di incapsulamento e de-incapsulamento. Normalmente se una macchina virtuale
deve comunicare con un’ altra macchina di una differente sotto-rete, bisogna usare un
collegamento di livello 3 per colmare il gap fra le reti, possiamo invece usare vShield
Gateway (componente di vCNS, come vedremo) per gestire la comunicazione con segmenti
VXLAN. Questa tecnologia richiede componenti che sono tipicamente inclusi nella vCloud
suite che comprende anche vSphere Distribuited Switch e vShield Edge Gateway. Il VDS
installa un VTEP in ogni host della rete virtuale, a questo si aggiunge anche un controll
adapter chiamato VMK che gestisce il traffico di controllo di tipo VXLAN, ed un VXLAN
PortGroup che contiene le informazioni necessarie per gestire traffico VXLAN attraverso
22
PortGroup tramite pNIC. La componente vShield crea invece un gateway logico che fa da
ponte fra il traffico VXLAN e non.
Quindi l’utilizzo di VXLAN conviene principalmente per comunicare fra reti diverse senza
dover configurare qualcosa negli switch, per avere più di 4098 VLAN ID e perchè non
richiede upgrade software al livello degli switch per funzionare.
2.3.2 vCloud Network & Security (vCNS)
Immaginiamo la nostra rete come un appartamento, dove internet è il mondo esterno. Per
entrare nel nostro appartamento bisogna identificarsi e chiedere il permesso, perché bloccati
da una porta. Possiamo vedere le porte come firewall che filtrano il traffico in ingresso ed in
uscita. All'interno dell'appartamento ci sono poi diverse porte che dividono i diversi
ambienti, nelle reti abbiamo diverse sotto-reti e possiamo applicare firewall aggiuntivi anche
per quelle. Questa gestione della sicurezza sarebbe ardua se fatta singolarmente per ogni rete
fisica e per ogni dispositivo di sicurezza, con l'uso di strumenti come vCNS si può più
facilmente gestire la sicurezza di rete, e disporremo anche di alcuni servizi che i classici
switch di rete non offrono. VCNS rende ancora più facile la gestione delle virtual network,
aiuta a creare reti per i clienti ed aiuta i clienti ad implementare sotto-reti e servizi
facilmente. Questo vuol dire che adesso oltre a creare reti virtuali al volo, possiamo fornirle
di strumenti aggiuntivi come firewall, DHCP, NAT ecc. Questi servizi fanno parte della
23
vCloud suite che comprende anche vSphere ed altri strumenti necessari a creare e gestire una
rete tramite vCNS. Quelle fin’ ora menzionate non sono le uniche cose che questa suite può
fare, oltre al VXLAN che abbiamo visto in dettaglio, vCNS dispone di cinque componenti
principali, tutti protetti e facilmente gestibili nell'ambiente vCloud. Il componente più
semplice è vShield manager, interagisce con il vCentral Server usando un plug-in di vSphere
client e permette di gestire, archiviare e controllare tutti i componenti vCNS usando una
semplice interfaccia. Per gli altri quattro componenti si faccia riferimento alla Figura 5.
Focalizzeremo la nostra attenzione su vShield Edge Gateway quindi facciamo solo un breve
accenno agli altri elementi.
vShield Data Security è la componente che protegge i nostri dati nei server fornendo la
possibilità di assegnare politiche personalizzare e di offrire maggior sicurezza ai dati
sensibili. vShield Endpoint garantisce sicurezza all'interno dei sistemi operativi in cui sono
installate le applicazioni, e che sono in comunicazione con la rete. vShield App è un servizio
di firewall che protegge le applicazioni da attacchi network based.
Infine vShield Edge Gateway consente il controllo e la sicurezza di servizi a livello Gateway
o in macchine virtuali selezionate come quelle di un Port Group o un Distributed Switch Port
Group. vSphere Edge Gateway fornisce classici servizi di gateway fra cui il Load Balancing,
che è davvero utile se vogliamo gestire il traffico in entrata, ad esempio se il traffico è diretto
24
ad uno specifico IP fra tanti IP interni, possiamo scegliere fra vari algoritmi di balancing
come il RoundRobin. Se un gateway fallisce in una rete fisica la connessione con la rete è
persa, localmente si può settare il gateway in una configurazione di così detta 'alta
disponibilità' (high availability) che permette di indentificare rapidamente i guasti e ridurre
al minimo il downtime che ne deriva. Tornando all’esempio dell’appartamento possiamo
immagine il vCNS come colui che ci permette di chiudere a chiave le nostre porte,
configurando firewall a livello virtuale per filtrare il traffico in entrata o anche implementare
il NAT evitando conflitti di indirizzi IP pubblici. Ricordiamo che tutte queste funzionalità
(alcune delle quali potrebbero sembrare scontate in una rete) sono adesso sviluppate in
software e non erano ad esempio disponibili con la sola suite vSphere. Il vShpere Edge
Gateway supporta anche il DHCP quindi non bisogna preoccuparsi di assegnare
manualmente un indirizzo IP ad ogni macchina, inoltre ci da la possibilità di scegliere il
range di IP da poter utilizzare.
Sempre grazie al nostro gateway virtuale è possibile creare connessioni private fra reti o fra
la nostra rete ed internet attraverso VPN, questo crea un tunnel di comunicazione fra le parti
che rende il passaggio dati più sicuro grazie ad un sistema di criptaggio.
Queste ed altre funzioni fanno parte di vCNS, che può essere associato ad altre soluzioni
VMware per aumentarne la sicurezza e la troubleshooting.
2.3.3 NSX
Come più volte sottolineato, configurare una rete puramente fisica chiede tempi e costi
decisamente alti perché ogni componente va configurato separatamente, ed un singolo errore
può infettare l’intero sistema. Con le reti virtuali è possibile ridurre i tempi da giorni a
minuti, grazie a NSX è possibile rendere operativa una rete virtuale con la stessa semplicità
con cui si crea una macchina virtuale, basta modificare qualche network segment, qualche
virtual machine, qualche switch e qualche router, applicare delle politiche di sicurezza e
abbiamo una rete virtuale pronta all’uso, che può essere salvata, consegnata ed abilitata
proprio come una virtual machine. Si immagini di inserire un supervisore fra la rete fisica e
le virtual machine, è possibile collegare macchine virtuali alla rete senza passare per la rete
25
fisica, che è usata solo come un IP BackPlane. Si possono ottenere servizi web e software in
maniera più semplice senza bisogno di configurare hardware, VLAN fisiche, cambiare
configurazioni di firewall, ecc. Questo migliora molto l’identificazione e la prevenzione dei
problemi derivanti da sbagli di configurazione, NSX utilizza un sistema di configurazione
automatica e fornisce parecchie informazioni da tutti i supervisori per risolvere facilmente
errori e problematiche. Ogni supervisore ha uno switch virtuale, quindi c'è un sovraccarico
(overhead) molto piccolo. E tutto questo non richiede nessun hardware dedicato, NSX
funziona sull’ hardware già posseduto dal cliente.
NSX è una suite completa di tutti gli elementi software necessari ad amministrare una rete
virtuale in maniera semplice, include switch logici, router, firewall, load balancer, VPN,
QoS, monitoring ed i sistemi di sicurezza di vCNS. Permette di sviluppare qualsiasi tipologia
di rete tramite API programmabili e funzionanti con qualsiasi rete fisica IP alla base, e su
supervisori installati su qualsiasi tipo di server, collegabili con ogni tipo di rete esterna, e
utilizzabili con qualsiasi piattaforma Cloud (vCloud, OpenStack, CloudStack). NSX si trova
al livello virtuale, fra quello fisico ed il Cloud. L'indipendenza con il livello Cloud è fornita,
come accennato, da una serie di API esponendo i servizi di rete ad ogni piattaforma di livello
più alto. L'isolamento dal livello fisico è invece garantito dall'overlay tramite il VXLAN.
L'architettura NSX (Figura 7) è disegnata utilizzando un design pattern a tre livelli:
26
Management Plane, Control Plane e Data Plane. Il Management Plane offre le API con il
mondo esterno, il Control Cluster è il cuore dell' architettura ed offre una mappatura in
tempo reale dello stato del sistema progettato e quello attualmente in uso, queste
informazioni sono usate per settare gli switch ed aggiornare i firewall attraverso dei task
delegati dal Control Cluster ad ogni supervisore, consentendo così di mantenere la topologia
e le caratteristiche di rete desiderate. Il Data Plane contiene i supervisori, gli switch, le
macchine virtual ecc.. e svolge i task inviati dal Control Cluster.
L’amministratore di sistema può effettuare il login ad un client che è connesso con il sistema
e detiene in ogni momento tabelle, mappature della rete e dati messi a disposizione dai
supervisori, è così più facile monitorare la rete e risolvere problemi.
L'amministratore può avere un chiaro quadro dello stato delle reti tramite le componenti di
gestione del NSX, è possibile proprio come per le virtual machine avere istantanee del
sistema, effettuare backup, ripristini ecc. NSX Control Cluster fornisce un livello di controllo
logicamente centralizzato ma fisicamente distribuito, ogni macchina NSX ed il cluster
condividono una pari porzione del carico di lavoro e mantengono un backup per ogni
componente del cluster. La componente di controllo ha visibilità su tutte le virtual machine
ed i servizi della rete. Sulla base della topologia desiderata comunica in tempo reale con i
vari componenti settando l'appropriata configurazione. Se la topologia della rete desiderata
cambia dinamicamente il Control Cluster aggiorna i dispositivi necessari a soddisfare le
nuove specifiche. NSX possiede anche servizi di Gateway per la comunicazione sicura con
l'esterno. Questi Gateway forniscono tutti i classici servizi (firewall, NAT, ecc..). Alcune
applicazioni in reti non virtuali potrebbero voler comunicare con le reti NSX, esiste quindi
anche un servizio di gateway L2 per collegamenti con VLAN di altre reti fisiche. Dovendo
gestire reti di grosse dimensione NSX, a differenza di vCNS, supporta anche algoritmi di
routing dinamico.
Ogni supervisore ha un NSX Virtual Switch con un Data Plane programmabile di livello L2L4 ed un database di configurazione. Inoltre esistono dei canali di comunicazioni fra
supervisori che incapsulano i dati ed offrono accoppiamento fra supervisori e rete fisica in
modo analogo all'incapsulamento ed accoppiamento fra virtual machine e macchine fisiche.
27
Abbiamo dunque scoperto che NSX è lo strumento più completo e maggiormente utilizzato
nei grandi ambienti, permette di cambiare topologia di rete facilmente, migliorarne il
monitoraggio e la sicurezza, distribuire il carico di lavoro su ogni virtual machine che può
essere spostata lungo la rete assieme e tutti i servizi ad essa connessi, e tutto questo senza
mettere mano alla rete fisica sottostante.
2.4 vCNS e NSX al confronto
Vediamo ora in una tabella le principali caratteristiche di vCNS e NSX messe a confronto:
Componenti
vCNS
NSX
Switching
Virtual Distributed Swtich
NSX vSwitch, overlay
con VXLAN overlay
completo della rete virtuale,
(richiede multicast nella rete
Bridging da livello logico a
fisica)
fisico (da VXLAN a VLAN)
Router virtuale centralizzato,
Routing sia statico che
routing statico, supporta il
dinamico, sia distribuito che
NAT
centralizzato, supporta il
Routing
NAT
Firewall
Firewall virtuali,
Firewall virtuali distribuiti,
Virtualization aware
Virtialization and Identity
aware, monitoraggio attivo
Load Balancer
Load Balancer virtuale
Load Balancer logico, Load
Balancer L7
VPN
Supporto dei Supervisori
VPN site-to-site e ad accesso
VPN site-to-site e ad accesso
remoto
remoto
Solo server ESXi
ESXi, KVN, Xen server,
Hyper-V
Gestione
Gestione basilare tramite UI
Service Composer , NSX
Manager, NSX API
28
Capitolo 3: Casi d’uso
Dopo aver ribadito più e più volte che gli elementi analizzati possano migliorare la
troubleshooting di Data Client anche medio-grandi, concludiamo questo elaborato mostrando
degli esempi di problematiche aziendali risolte tramite l’utilizzo degli strumenti VMware
visti. Vedremo in particolare le ultime due suite software discusse, vCNS e NSX.
3.1 vCNS Use Case
Una grande azienda gestisce applicazioni e servizi web per la ricerca e l’affitto di hotel in
Europa. Questa azienda dopo anni di attività ha comprato un’altra azienda più piccola che
gestiva servizi online di autonoleggio, l’idea è quella di accorpare i due settori per offrire ai
clienti un’unica piattaforma dove poter sia prenotare la propria stanza che affittare un’ auto
per il periodo di vacanza.
Problema:
Le macchine virtuali precedentemente installate su una rete dovrebbero ora comunicare con
una nuova sotto-rete installata in un’ aggregazione di switch fisicamente distante. Si è
pensato di creare un tunnel di comunicazione diretto per collegare le virtual machine delle
due sotto-reti in maniera diretta, la cosa è possibile ma gli amministratori di rete sottolineano
che richiederebbe la riconfigurazione di parecchi device esponendosi troppo ad errori e
problematiche. Inoltre si vuole che le nuove applicazioni abbiano le stesse politiche di
sicurezza di quelle già esistenti ma non è conveniente, per lo stesso motivo, riconfigurare
ogni firewall nella nuova sottorete.
Soluzione:
Utilizzando vCNS è possibile collegare le due sotto-reti tramite un sistema VXLAN, questo
29
porterebbe gli stessi risultati di un tunnel L2 ma senza problemi di riconfigurazioni,
semplicemente incapsulando i dati e inviandoli in una rete di overlay L3. Con la stessa suite è
poi possibile riconfigurare tutti i firewall contemporaneamente applicando le stesse politiche
di sicurezza sull’intero gruppo di applicazioni coinvolto.
3.2 NSX Use Case
Una software-house produttrice di videogiochi lancia sul mercato un nuovo gioco online con
un’ idea vincente. Negli anni il gioco riscatta un notevole successo, l’utenza sale a dismisura
e vengono acquistati nuovi server fino ad un sistema che comprende circa 300 macchine.
Problema:
Nella competizione mondiale in cui l’azienda si ritrova catapultata, necessita ora di un
sistema più efficace per distribuire le sue patch, per gestire l’utenza, per riconfigurare
facilmente una rete in cui gli utenti connessi continuano ad aumentare e per migliorare la
sicurezza degli account. Il tutto senza dover riconfigurare ognuna delle centinaia di macchine
che possiede.
Soluzione:
NSX consente la gestione di sistemi molto grandi, anche circa 500 server, e la cosa più
importante è che non richiede sostituzioni o modifiche all’hardware presente. L’azienda può
quindi installare NSX sulla sua rete fisica e riconfigurare una nuova topologia di rete in breve
tempo. Riducendo il downtime, grazie ai supervisori ed i vSwitch distribuiti, può aggiornare i
server senza privare l’utenza dei suoi servizi per troppo tempo. La gestione della rete è più
facile ed i feedback degli utenti possono essere risolti molto più rapidamente, gli
amministratori di rete applicheranno infine politiche di sicurezza più consone alla nuova
mole di account senza dover riconfigurare fisicamente ogni firewall.
30
Bibliografia
[1]VMware,https://mylearn.vmware.com/mgrreg/courses.cfm?ui=www_edu&a=one&id_sub
ject=52533 (Tutte le figure utilizzate nell’ elaborato sono tratte dal corso presente in questo
riferimento)
[2] IEEE, JOURNAL OF LIGHTWAVE TECHNOLOGY, VOL. 31, NO. 4, FEBRUARY
15, 2013, http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=6272301
[3]Cloudtweaks,
December
3,
2012,
http://cloudtweaks.com/2012/12/the-history-of-
virtualization/
[4] VMware, http://www.vmware.com/it/products/horizon-mirage
[5] VMware, http://www.vmware.com/products/vsphere/features/vmfs.html
[6] VMware, http://www.vmware.com/it/products/vsphere/features/fault-tolerance.html
[7] VMware, https://www.vmware.com/products/vcenter-server-heartbeat.html
[8] Prayson Pate, March 30, 2013, http://www.sdncentral.com/technology/nfv-and-sdnwhats-the-difference/2013/03
[9] VMware, http://www.vmware.com/it/products/vsphere/features-network-io-control
31