Lan Switching: VLANs

Vlan

Una VLAN, come dice l’acronimo, è una LAN Virtuale, dove con “Virtuale”, intendiamo dire che è un intero dominio di collisione (e broadcast) in un apparato in grado di ospitare un certo numero di queste lan virtuali.

In modo pratico, uno switch Catalyst, è in grado di gestire un numero congruo di VLANs, identificate da un intero senza segno a 12 bit (circa 4k possibili valori), di cui alcuni riservati ed il restante numero suddivisto in normal (1-1005) ed extended range (1006-4095). Alcuni di questi ID sono gia definiti negli swtich ed hanno un significato particolare: Vlan 1 è solitamente utilizzata come Vlan di amministrazione (ed è presente in tutti gli apparati swithing come i routers soho e gli AP), le vlan 1002-1005 sono gia esistenti nella maggior parte degli apparati e hanno dei nomi associati all’id (nonchè il tipo, non enet) che fanno pensare a tecnologie specifiche (fddi, token-ring).

Trunking

In uno switch che fa uso di VLANs, le singole porte possono essere configurate in due modalità: access e trunk. Le porte access, sono solitamente destinate a terminatori (computers, servers o altri apparati che sono lo spoke, ossia dal quale non si diparte nessuna ulteriore sottorete), mentre le porte configurate come trunk, gestisono il traffico intra vlan.

Da una porta trunk, passano i frame di una o più vlan, destinate ad un altro switch (la cui porta sarà anch’essa configurata come trunk) oppure un router in grado di comprendere l’incapsulazione utilizzata ed effettuare il routing intra-vlan (router-on-a-stick).

IEEE 802.1Q

Affinchè un frame ethernet passi (e venga adeguatamente gestito) attraverso una porta trunk, deve essere incapsulato in un protocollo di livello 2 che comprenda l’ID della vlan di appartenenza. In passato esistevano due protocolli, ISL e 802.1Q. Il primo, proprietario Cisco, è stato abbandonato del tutto in favore dello standard IEEE 802.1Q. Per ovvie ragioni, non parlerò di ISL. 802.1q si limita ad aggiungere al frame di passaggio un nuovo campo (tag) di 32 bit contenente:

  • Type (16 Bits) Impostato a 0×8100 per identificare il frame come 802.1q
  • Priority (3 Bits) Viene usato per impostare la priorità di traffico secondo lo standard IEEE 802.1p.
  • Flag (1 Bit) Indica se il MAC è o meno canonico
  • Vlan ID (12 Bits) L’ID della Vlan proprietaria del frame

Inoltre, dato che il frame è stato modificato con l’espansione dell’header, viene ricalcolato il FCS (Frame Check Sequence).

VTP – VLAN Trunking Protocol

VTP è un protocollo proprietario Cisco di livello 2. Viene utilizzato per permettere una sincronizzazione delle VLAN tra i vari apparati interconnessi tramite trunks ed appartenenti allo stesso Dominio (inteso in senso VTP Domain).

Il protocollo prevede che gli apparati possano avere tre modalità operative: Server, Client, Trasparent. Le prime due modalità sono quelle maggiormente utilizzate in una rete che fà uso di VTP, infatti sono le uniche modalità in cui avviene realmente una sincronizzazione. La modalità trasparent, viene invece utilizzata quando non si fa uso di VTP, in quanto i messaggi vengono floodati attraverso i trunks, ma non vengono interpretati. Possiamo dire che un apparato VTP trasparent non partecipa quindi al dominio, ma puo’ essere intermediario per lo scambio di messaggi.

VTP prevede che, in un dato dominio, sia presente almeno un Server ed un numero arbitrario di clients. Il server è l’apparato che viene utilizzato per creare modificare e rimuovere le VLAN, propagando quindi i cambiamenti a tutti i clients e gli eventuali altri servers. Per mantenere coerenza all’interno di una rete, VTP tiene traccia dei cambiamenti nel dominio attraverso il revision number, un intero positivo che identifica l’attualità del database vlan utilizzato. Servers e Clients che ricevono un messaggio con un revision number inferiore al proprio, si limitano a scartarlo.

Considerazioni personali

Una componente importante dell’implementazione di Vlan / VTP all’interno di una rete è senza dubbio la sicurezza che deve essere implementata. VTP nella sua configurazione standard, infatti, opera in modo che, un rogue switch, connesso tramite una porta non posta in sicurezza (disabilitando il trunking), possa perturbare il dominio e catturare il traffico di tutte le vlan abilitate a passare per il trunk stabilitosi (ossia tutte, di default). Risulta quindi essere buona norma, nello schieramento di una qualsiasi rete, configurare gli switch in modo adeguato, configurando esplicitamente tutte le porte come access, appartenenti ad una Parking Vlan, ossia una vlan che non porta da nessuna parte, avendo cura di metterle inoltre in shutdown e riconfigurare la vlan cui appartiene ogni singola porta nel momento in cui ne viene designato l’utilizzo.

VTP è attivo di default, quindi conviene utilizzarlo coscientemente, avendo cura di impostare dominio e password di dominio, nonchè designando le porte che faranno da trunk e configurandole specificamente.


Web Reference

Cisco: Inter-switch link and IEEE 802.1q frame Format

Cisco: Understanding VTP Protocol