Implementazione VLAN 1
VLAN e Trunk Una LAN è un insieme di apparati interconnessi tra loro all interno di un area ristretta come un ufficio o un edificio. Una definizione alternativa è la seguente: una LAN è l insieme degli apparati appartenenti allo stesso dominio di broadcast. Una Virtual LAN o VLAN è l estensione di una LAN. In altri termini una VLAN è l insieme degli apparati appartenenti allo stesso dominio di broadcast, anche se non fisicamente e geograficamente vicini. Ad esempio possono appartenere alla stessa VLAN anche apparati (PC, switch ecc.) collocati in edifici differenti. 2
L importante è sapere che a ciascuna VLAN è associato un singolo dominio di broadcast. Per mezzo delle VLAN è possibile configurare alcune porte di uno switch su un dominio di broadcast, altre interfacce su un altro. In fase di progettazione è fondamentale definire in maniera accurata il numero e l estensione delle VLAN. I vantaggi nel segmentare la rete in VLAN sono: Carico di lavoro ridotto per la CPU degli apparati: suddividere la rete in VLAN più piccole, composte quindi da meno nodi, si traduce in una riduzione del traffico di broadcast. 3
Maggior sicurezza: i messaggi di broadcast sono letti solo dagli apparati appartenenti allo stesso dominio. Struttura logica: è possibile raggruppare in VLAN tutti i dispositivi che hanno caratteristiche comuni; ad esempio puoi utilizzare una vlan per le stampanti di rete, un altra per i PC Microsoft ecc. e il tutto indipendentemente dalla loro posizione. Risoluzione problemi più semplice: la suddivisione logica e strutturata della rete rende più semplice la risoluzione delle problematiche 4
Multiswitch VLANs Trunking Ad ogni VLAN è associato un identificativo o Vlan ID, cioè un numero utilizzato dallo switch per distinguerle le une dall altre. Supponiamo di dover connettere apparati su switch diversi all interno della stessa vlan. Quello che faremo sarà creare innanzitutto la vlan (ad esempio la Vlan 10) su entrambi gli switch e associare poi le porte. Tra queste vi è anche quella che connette i due apparati (all interno del rettangolo viola in figura). Supponiamo adesso di dover aggiungere la Vlan 20. La procedura è la stessa: creo la Vlan con ID 20 su entrambi gli switch e associo le 5
porte, tra cui anche quella utilizzata per il collegamento tra gli apparati (all interno del rettangolo giallo). 6
Quindi ogni volta che aggiungo una vlan devo predisporre un nuovo collegamento tra gli switch. Se ho 10 vlan, ho bisogno di dieci collegamenti (dieci cavi UTP e dieci porte occupate per switch); se ho 100 vlan, ho bisogno di 100 collegamenti!!! Questo modo di procedere può andar bene per reti piccole ma non certamente per un infrastruttura di campus o enterprise ben più complessa e ampia. Piuttosto che utilizzare un link per ciascuna vlan, è possibile creare un unico collegamento in grado di trasportare il traffico di tutte le reti. La tecnica prende il nome di Trunking o Tagging mentre il collegamento è detto trunk. 7
Il trunk è in grado di separare e isolare al suo interno il traffico di ciascuna VLAN cosicché i frame della VLAN 10 non arrivino agli apparati della VLAN 20 o viceversa. Per far ciò lo switch utilizza un header all interno del frame Ethernet. Osserva la figura e supponiamo che il PC A debba inviare un frame a B. Supponiamo inoltre che le CAM Table dei due switch contengano tutte le informazioni necessarie per l inoltro del frame. 1. Lo switch SW_A riceve il frame inviato da PC A 2. SW_A consultando la CAM Table capisce che deve inoltrare il frame a SW_B. 8
3. Il collegamento con SW_B è di tipo trunk, quindi SW_A aggiunge un VLAN Header all interno del frame Ethernet. Il VLAN Header contiene l ID della vlan che il frame sta trasportando. Nel caso specifico, PC A è attestato su Vlan 10, quindi il vlan ID contenuto nell header sarà 10. 4. SW_A invia il frame a SW_B 5. SW_B leggendo il contenuto del VLAN Header capisce che dovrà inviare il frame sulla Vlan 10. Nessun frame sarà quindi inviato sulla Vlan 20!! 6. SW_B rimuove il VLAN Header dal frame e invia quest ultimo a PC B 9
7. PC B elabora il frame; per PC A e B l operazione è del tutto trasparente. In altri termini non sanno se il frame è stato taggato o meno durante il tragitto. L intera operazione è infatti svolta solo dagli switch. 10
11
802.1q e ISL Trunking Protocol Una porta di uno switch può quindi essere associata ad una Vlan oppure può trasportare il traffico di più vlan contemporaneamente. Diamo quindi la seguente definizione: Porta Access: è una porta dello switch associata ad un unica vlan. Porta Trunk o Tagged: è una porta dello switch utilizzata per trasportare più vlan. 12
Nella pratica le porte di tipo access sono utilizzate quasi sempre per connettere PC, Stampanti e più in generale Host e Endpoint mentre i trunk sono principalmente utilizzati per connettere apparati di rete come router o switch. La creazione di interfacce trunk è resa possibile da un particolare protocollo detto Trunking protocol. Ne esistono differenti tipi e quelli supportati da uno switch Cisco sono: Inter-Switch Link (ISL) IEEE 802.1Q 13
ISL è un protocollo proprietario Cisco, pertanto non può essere utilizzato per l implementazione di un trunk tra due switch Non Cisco (es. tra uno switch Cisco e uno HP) 802.1q è invece uno standard IEEE ed è quindi universalmente riconosciuto da ciascun apparato. Il protocollo 802.1q per ciascun frame inserisce all interno dell Header un ulteriore campo detto Tag composto da 4 byte. L header complessivo (Header Ethernet + Tag) è quindi maggiore rispetto allo standard: per evidenziare questo aspetto si è soliti parlare di Frame taggato o Tagged frame. Come puoi vedere dalla figura, il Tag è inserito tra i campi Source Address e Lenght/Type. Osserva inoltre come l FCS di un frame 14
taggato non sarà mai lo stesso del frame originale, in quanto nel calcolo è necessario ora includere anche il campo Tag. 15
Il Tag 802.1q contiene diversi parametri: il più significativo è il Vlan ID. Il Vlan ID è composto da 12 bit e al suo interno è memorizzato l identificativo della vlan associata al frame. E quindi grazie a questo campo se lo switch può distinguere per ogni frame la vlan relativa. Il valore all interno del campo è di tipo binario, quindi può contenere solo i valori 0 e 1. Il numero delle Vlan utilizzabili è pari a 2 12 = 4096; infatti le combinazioni possibili sono: (2 valori= 0 e 1) numero di bit=12 Per ogni trunk, 802.1q (o Dot1q) fa uso di una particolare vlan detta Native Vlan. I frame associati alla vlan nativa non sono taggati. La 16
configurazione standard dell IOS Cisco prevede l utilizzo della Vlan1 come vlan nativa. La vlan utilizzata deve essere la stessa su entrambi gli switch. Lo scopo della Native vlan è quello di poter realizzare connessioni anche con apparati non in grado di comprendere il concetto di trunking, ovvero non in grado di supportare i protocolli di trunking. Trasferimento dati tra differenti VLAN Una VLAN corrisponde di fatto a un dominio di broadcast. La comunicazione tra differenti domini è resa possibile per mezzo di un apparato di livello 3, in genere un router, in grado di leggere i parametri contenuti nell Header di rete. Per farlo bisogna associare un interfaccia del router ad ogni vlan. Nel caso in figura è quindi 17
necessario connettere un interfaccia sulla vlan10 ed un altra sulla vlan 20. La comunicazione tra A e B avverrà quindi nel seguente modo: 18
1. A è in grado di capire se B è all interno dello stesso dominio di broadcast oppure no. Nel secondo caso, A affida la trasmissione del frame all interfaccia del router sulla vlan 10. 2. Il router trasferisce il frame proveniente da A sull altro dominio di broadcast (vlan 20). L instradamento dei messaggi viene effettuato sulla base di una tabella detta tabella di routing (o routing table) simile alla CAM Table di uno switch. Quindi anche la routing table riporta per ogni destinazione l interfaccia di uscita da utilizzare. Approfondiremo questo concetto nel seguito. 19
Lo schema appena visto soffre di una grande limitazione: se il numero delle VLAN cresce, anche il numero delle interfacce impegnate sul router cresce, in quanto ogni porta è usata da una specifica Vlan. Un disegno più efficiente è quello realizzato per mezzo della configurazione Router on a Stick che consiste innanzitutto nel creare un unico trunk tra switch e router su cui far transitare tutte le vlan. Per instradare poi il traffico tra differenti domini di broadcast si fa utilizzo di Subinterface. Una subinterface è un interfaccia virtuale o logica associata ad un interfaccia fisica del router. Rispetto al caso precedente, questa volta ad ogni vlan è associata una subinterface, sfruttando un unico collegamento tra switch e router. 20
VLAN 10 A VLAN 10 VLAN 20 VLAN 10 VLAN 20 B VLAN 20 Oggi giorno in commercio è possibile trovare una particolare categoria di switch detta Multilayer Switch (oppure Switch L2/L3). 21
Sono dei normalissimi switch in grado però di supportare anche le funzionalità di livello 3. In poche parole un multilayer switch può essere utilizzato per inoltrare frame e per trasferirne il contenuto tra differenti domini di broadcast. Pertanto piuttosto che due apparati (switch e router), è possibile utilizzare un solo switch L2/L3 in grado di assolvere entrambe le funzioni. VTP Il VLAN Trunking Protocol (VTP) è un protocollo di livello 2 proprietario Cisco, che consente di gestire in modo centralizzato le informazioni sulle VLAN e renderle disponibili a tutti gli switch in rete. In sostanza viene definito un gruppo di switch detto vtp domain 22
e all interno di ciacun dominio le modifiche o creazioni di vlan sono propagate in maniera automatica. Ciò vuol dire che la VLAN 100 creata sullo switch A, sarà presente anche sullo switch B dello stesso dominio, senza effettuare configurazioni su quest ultimo. All interno di un dominio, uno switch può assumere tre ruoli specifici: Server: è la modalità di default con la quale si possono creare, rimuovere e modificare le VLAN, oltre alla possibilità di impostare la versione di VTP. Le informazioni vengono sincronizzate con gli altri switch del dominio VTP tramite i collegamenti in trunk. 23
Client: è la modalità che permette, all interno dello stesso dominio VTP, di ricevere tutte le modifiche al database delle VLAN. Lo switch può inoltrare gli aggiornamenti ricevuti, ma non può apportare modifiche alle informazioni del database VTP. Tuttavia, se le informazioni inoltrate hanno un Revision Number più alto rispetto a quello presente sui client e sui server, esse verranno modificate localmente, cioè il database locale delle VLAN verrà aggiornato. Transparent: in questa modalità lo switch non partecipa ad alcun dominio VTP; effettua comunque l inoltro delle informazioni VTP verso le porte di trunk, evitando così interruzioni nello scambio di informazioni tra client e server. 24
Bisogna prestare attenzione quando si aggiunge uno switch in una rete esistente. Infatti, poiché il ruolo di default è quello di VTP server, se il revision number è superiore a quello dei server del dominio VTP esistente, il database delle vlan viene propagato sulla rete sovrascrivendo in pochi istanti le informazioni degli altri switch. Per evitare questo è buona norma assicurarsi che il nuovo switch sia configurato in modalità client o transparent; un altro accorgimento è quello di proteggere lo scambio di informazioni VTP tramite password, che deve essere identica per ogni switch. 25
Implementazione VLAN e Trunk su Cisco IOS Quando si accende per la prima volta uno switch, la configurazione standard prevede l utilizzo di una vlan detta Vlan 1 o Vlan Default. Sebbene sia possibile attribuire anche un nome, è fondamentale associare a ciascuna VLAN un numero compreso tra 1 e 4096. Tale numero, detto VLAN ID è l identificativo utilizzato all interno del campo Tag 802.1q. I VLAN ID da 1002 a 1005 non possono essere utilizzati in quanto impiegati dallo switch per funzioni specifiche. Per creare una vlan bisogna: 1. Dare il comando vlan <vlan-id> da Global Configuration Mode 26
2. (Opzionale) Associare un nome alla vlan attraverso il comando name <nome> Le porte di uno switch sono suddivise in Access o Trunk a seconda se utilizzano il frame tagging o meno. Per configurare una porta Access su una data vlan:. 1. Entrare nel context di configurazione dell interfaccia 2. Dare il comando switchport access <vlan-id> 3. (Opzionale) E possibile disabilitare definitivamente il trunking su una porta dando il comando switchport mode access 27
Il modo più semplice per creare un trunk tra due switch consiste nel dare il comando switchport mode trunk dal context dell interfaccia. Il comando presuppone che: Entrambi gli switch utilizzino lo stesso Trunking Protocol (detto anche Encapsulation Protocol) Sul trunk transitino tutte le vlan Uno switch Cisco mette però a disposizione una serie di alternative relativamente a: Trunking protocol: 802.1q, ISL o auto negoziazione Modalità amministrativa (administrative mode): access, trunk o auto negoziazione. 28
Utilizzando l auto negoziazione due switch riescono a decidere in maniera autonoma i parametri da utilizzare per il collegamento; scambiando dei messaggi sono in grado di scegliere ad esempio il trunking protocol da utilizzare: 1. Se entrambi supportano ISL e 802.1q allora utilizzano ISL 2. Altrimenti viene utilizzato il protocollo supportato da entrambi L auto negoziazione è resa possibile dal protocollo Dynamic Trunking Protocol (DTP). Il comando da dare per la scelta del trunking protocol è il seguente: 29
switchport trunk encapsulation {dot1q isl negotiate} DTP può essere utilizzato anche per negoziare la modalità operativa del trunk. Cisco prevede quattro modalità di configurazione per una porta di rete: Access: lavora sempre come porta Access Trunk: lavora sempre come porta Trunk Dynamic Desirable: invia messaggi di inizio negoziazione e risponde a quelli ricevuti. Agisce in maniera attiva e propositiva al fine di realizzare un trunk 30
Dynamic Auto: riceve passivamente i messaggi di negoziazione ma non li invia. Non propone quindi la creazione del trunk La realizzazione di un trunk dipende quindi dalla modalità operativa configurata sulla porta degli switch. Ad esempio, se entrambe sono configurate in Dynamic Auto, non sarà mai possibile instaurare un trunk in quanto le due estremità non inviano nulla di loro iniziativa. La tabella che segue mostra il collegamento risultante per ciascuna combinazione dell interfacce. Access Dyn. Auto Trunk Dyn. 31
Desirable Access Access Access Non usare Access Dyn. Auto Access Access Trunk Trunk Trunk Non usare Trunk Trunk Trunk Dyn. Desirable Access Trunk Trunk Trunk 32