• Non ci sono risultati.

2.6 VMWare e la rete

2.6.2 VLAN

Esistono varie possibili denizioni di VLAN (vedi gura 2.22). Quella che preferisco è la seguente [14]:

Figura 2.22: Esempio di separazione in reti logiche attraverso l'utilizzo di VLAN [fonte: http://kensvirtualreality.wordpress.com/2009/03/29/the-great-vswitch-debate-part-1/]

Una VLAN è un sottoinsieme logico di una LAN, su questa si- camente insistente ma da essa logicamente separata, costituente un dominio di collisione a sé stante

In termini pratici, le porte di uno switch assegnate ad una VLAN, costi- tuiscono un dominio di broadcast logicamente separato da quello di default dello switch (che, normalmente, si estende a tutte le sue porte); i pacchet- ti ricevuti da una porta appartenente ad una data VLAN sono visibili solo all'interno della VLAN stessa (N.B.: da non confondere con il port trunking che vedremo in seguito), siano essi unicast, multicast o broadcast. Le VLAN vengono utilizzate per:

• Creare sottoreti logiche: Permettere la comunicazione tra sottoin-

siemi di host appartenenti a LAN siche dierenti come se fossero logi- camente appartenenti alla stessa LAN sica (ma che in realtà è una VLAN).

• Ridurre il dominio di broadcast di una LAN: Dal momento che

una VLAN non inoltra i pacchetti broadcast sulle porte che non le competono, riduce il dominio di collisione dei pacchetti braodcast evi- tando inutile consumo di banda (un problema tipico è il broadcast storming[4]).

VLAN e IEEE 802.1Q

In VMWare lo standard utilizzato per creare VLAN [5] è l'IEEE 802.1Q che denisce l'estensione di un frame ethernet per mezzo di un tag (da cui poi deriva la denizione di traco che possiede il tag, detto tagged, ed il traco che non lo possiede, detto untagged) di 32 bit (vedi gura 2.23), contenente informazioni sulla VLAN a cui il frame stesso appartiene. Il tag è diviso in più

Figura 2.23: Tag VLAN a sinistra e suo inserimento all'interno di un frame ethernet

[fonte: http://novalis.mib.infn.it/site/media/tech/vlan.html]

campi [14]. Abbiamo quello relativo all'Ethertype (2 byte) con valore sso 0x8100 che identica lo standard IEEE 802.1Q, il Priority Field (3 bit), il Canonical Format Indicator ([CIF] 1 bit) ed inne il VLAN Identifier ([VLAN ID]). I 3 bit del campo della priorità permettono di gestire QoS al- l'interno della propria rete. È infatti possibile assegnare una priorità diversa al traco delle VLAN per favorire quelli con priorità più elevata a livello di switch. Il campo del VLAN ID invece è quello che identica a che VLAN appartiene il frame ethernet. I 12 bit che lo compongono permettono di avere un totale di 4096 possibili VLAN coesistenti sulla stessa LAN.

Non tutti gli switch sono in grado di gestire il traco 802.1Q, ma quelli che ci riescono permettono di assegnare ogni porta dello switch ad un Port VLAN Identifier ([PVID]) in modalità untagged o tagged. Il PVID indica a quale VLAN deve appartenere il traco in entrata o in uscita su quella porta dello switch, mentre le modalità tagged e untagged permettono di denire che comportamento la porta dello switch deve assumere quando i pacchetti la attraversano.

Più approfonditamente si seguono queste regole (vedi gura 2.24): quando un pacchetto untagged (privo cioè di tag), esce da una porta untagged rimane

Figura 2.24: Regole di tagging e untagging[fonte: http://novalis.mib.infn.it/site/media/tech/vlan.html]

untagged, mentre un pacchetto tagged viene privato del tag e trasformato in un pacchetto untagged. Il comportamento di una porta tagged è invece op- posto: se un pacchetto untagged esce da una porta tagged al frame ethernet viene aggiunto un tag con VLAN ID uguale al PVID la cui porta appartiene, mentre un pacchetto tagged viene lasciato inalterato, ed in particolare il VLAN ID originale presente nel tag (che può anche dierire dal PVID della porta in questione) non viene cambiato. Quando due switch vengono connes- si tra di loro attraverso due porte tagged si dice che è stato creato un VLAN Trunk (detto anche trunking). Il trunking permette al traco di VLAN dierenti, appartenenti al primo switch, di raggiungere il secondo switch. VLAN e vSwitch

Le possibilità che ci vengono oerte da parte di uno switch virtuale in VMWare per gestire le VLAN sono tre [16, 3](vedi gura 2.25):

1. Virtual Guest Tagging (VGT)

Il traco passa attraverso il virtual switch ed arriva alle macchine vir- tuali senza che vengano rimossi i tag. Il compito di gestire i pacchetti

Figura 2.25: Le tre modalità con cui un vSwitch può gestire le VLAN [fonte: http: //kensvirtualreality.wordpress.com/2009/03/29/the-great-vswitch-debate-part-1/]

taggati viene quindi lasciato come responsabilità al sistema operativo delle macchine virtuali. Per abilitare la modalità VGT è necessario utilizzare nel vSwitch VLAN ID 4095.

2. External Switch Tagging (EST)

Il traco e i tag delle VLAN non vengono gestiti dal vSwitch ma ester- namente quando entrano o escono dalla porta di uno switch sico. Il traco che raggiunge il vSwitch e le macchine virtuali dietro di esso è senza tag. Per abilitare la modalità EST è necessario utilizzare nel vSwitch VLAN ID 0.

3. Virtual Switch Tagging (VST)

Il vSwitch gestisce il traco VLAN. Lascia passare in ricezione, dal- l'esterno verso l'interno dove sono situate le macchine virtuali, sola- mente il traco che possiede all'interno del tag il VLAN ID che gli è stato associato; a tutti i pacchetti che vengono lasciati passare viene rimosso però il tag. Trasmette invece il traco delle macchine virtuali

che stanno dietro ad esso, quindi dall'interno verso l'esterno, impostan- do come tag il proprio VLAN ID. Questo implica che le comunicazioni tra macchine virtuali e vSwitch avviene attraverso traco senza tag (come appena detto infatti il vSwitch rimuove i tag dai pacchetti in entrata e lo rimette nei pacchetti in uscita). Per abilitare la modalità VST è necessario utilizzare nel vSwitch un VLAN ID compreso tra 1 e 4094, fornendo la possibilità di creare no a 4094 diverse VLAN.

Documenti correlati