Cos’è una VLAN e perché la usiamo
Immagina un’azienda con uffici, sala server e reception sullo stesso piano. Tutto connesso agli stessi switch. Senza VLAN, il traffico broadcast di un PC dell’ufficio raggiunge il server di produzione e la stampante della reception: è un problema di sicurezza, prestazioni e gestione.
Una VLAN (Virtual Local Area Network) crea dei domini broadcast separati su un’infrastruttura fisica condivisa. Gli switch sanno a quale VLAN appartiene ogni porta e non fanno passare il traffico da una VLAN all’altra — neanche i broadcast.
Vantaggi delle VLAN
Isola il traffico: la VLAN Finance non vede i frame della VLAN Engineering. Anche se un intruso si connette fisicamente allo stesso switch, non accede alle altre VLAN.
Riduce il dominio broadcast: un ARP broadcast raggiunger solo i dispositivi nella stessa VLAN, non l’intera LAN aziendale.
Un utente cambia ufficio? Riassegni la porta allo switch: il suo indirizzo IP e la VLAN restano invariati, senza ricablare nulla.
Separi i dipartimenti (VLAN 10 = IT, VLAN 20 = HR, VLAN 30 = VoIP) applicando policy diverse per ciascuno.
Il tag 802.1Q — come si identifica una VLAN
Gli switch devono sapere a quale VLAN appartiene ogni frame. Sulle porte verso gli end-device non serve nulla — la porta è configurata per una VLAN specifica. Ma quando due switch si connettono tra loro, devono poter trasportare frame di più VLAN sullo stesso link fisico. Come?
La risposta è il tag 802.1Q: uno switch inserisce 4 byte aggiuntivi nel frame Ethernet, tra i campi MAC sorgente e EtherType, per “marcare” il frame con l’ID della VLAN di appartenenza.
Struttura del frame Ethernet con tag 802.1Q
┌──────────┬──────────┬──────────────┬──────────┬──────────────────────┬───────────┐
│ Preambolo│ MAC │ MAC sorg │ 802.1Q │ EtherType/Length │ Payload │ FCS
│ 8 byte │ dest 6B │ 6 byte │ TAG 4B │ 2 byte │ 46-1500B │ 4B
└──────────┴──────────┴──────────────┴──────────┴──────────────────────┴───────────┘
│
┌───────────────┼───────────────────────┐
│ TPID (2B) │ TCI (2B) │
│ 0x8100 │ PCP(3b) DEI(1b) VID(12b)│
└───────────────┴───────────────────────┘
| Campo | Dimensione | Valore / Significato |
|---|---|---|
| TPID | 2 byte | 0x8100 — identifica il frame come tagged 802.1Q |
| PCP | 3 bit | Priority Code Point — QoS/CoS (0=best effort, 7=massima priorità) |
| DEI | 1 bit | Drop Eligible Indicator — il frame può essere scartato in caso di congestione |
| VID | 12 bit | VLAN ID — identifica la VLAN (0–4095). 0 e 4095 riservati, quindi 1–4094 usabili |
Il tag 802.1Q aumenta la dimensione massima del frame Ethernet da 1518 a 1522 byte. Alcuni vecchi dispositivi non gestiscono frame “jumbo” tagged. Gli switch moderni riconoscono automaticamente il TPID 0x8100 e gestiscono il tag senza problemi.
Porte Access vs Porte Trunk
In un’infrastruttura VLAN ci sono due tipi fondamentali di porte sullo switch:
| Tipo porta | Connessa a | Tag 802.1Q | VLAN trasportate |
|---|---|---|---|
| Access Port | End-device (PC, stampante, AP, VoIP) | ❌ — il device non vede il tag | Una sola VLAN (la “untagged VLAN”) |
| Trunk Port | Switch–switch, switch–router | ✅ — ogni frame viene taggato | Più VLAN (configurabili con allow list) |
PC-HR PC-IT PC-VoIP
VLAN 20 VLAN 10 VLAN 30
│ │ │
Access Access Access
port (20) port (10) port (30)
│ │ │
┌─┴───────────────┴───────────────┴──────┐
│ Switch A │
└─────────────────────────────────────────┘
│
Trunk port
(VLAN 10,20,30)
Tagged 802.1Q
│
┌─────────────────────────────────────────┐
│ Switch B │
└─────────────────────────────────────────┘
│ │ │
Access Access Access
port (20) port (10) port (30)
│ │ │
PC-HR PC-IT IP-Phone
Configurazione VLAN su switch Cisco (IOS)
1 — Creare le VLAN e assegnare nomi
Switch# configure terminal Switch(config)# vlan 10 Switch(config-vlan)# name IT Switch(config-vlan)# exit Switch(config)# vlan 20 Switch(config-vlan)# name HR Switch(config-vlan)# exit Switch(config)# vlan 30 Switch(config-vlan)# name VoIP Switch(config-vlan)# exit
2 — Configurare porte Access
Switch(config)# interface fastEthernet 0/1 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10 Switch(config-if)# exit ! Porta VoIP: access VLAN dati + voice VLAN Switch(config)# interface fastEthernet 0/5 Switch(config-if)# switchport mode access Switch(config-if)# switchport access vlan 10 Switch(config-if)# switchport voice vlan 30
3 — Configurare porta Trunk
Switch(config)# interface gigabitEthernet 0/1 Switch(config-if)# switchport mode trunk Switch(config-if)# switchport trunk encapsulation dot1q Switch(config-if)# switchport trunk allowed vlan 10,20,30 Switch(config-if)# switchport trunk native vlan 99 Switch(config-if)# exit
La native VLAN è l’unica VLAN su un trunk che viaggia senza tag. Di default è la VLAN 1. Per sicurezza conviene cambiarla in una VLAN dedicata non usata da nessun host (es. VLAN 99). Se le due estremità del trunk hanno native VLAN diverse, si genera un VLAN mismatch — traffico non taggato “salta” di VLAN senza volerlo (VLAN hopping attack).
Verificare la configurazione
! Mostra tutte le VLAN e le porte associate Switch# show vlan brief ! Mostra stato e configurazione dei trunk Switch# show interfaces trunk ! Mostra la configurazione di una singola interfaccia Switch# show interfaces fa0/1 switchport
Inter-VLAN Routing
Le VLAN separano il traffico a livello 2. Ma se un PC nella VLAN 10 deve comunicare con un server nella VLAN 20, serve un routing a livello 3 — le VLAN si comportano come sottoreti distinte e il traffico tra di esse deve passare da un router (o da un dispositivo L3).
Esistono tre approcci principali:
1 — Legacy: Router con interfacce fisiche separate
Un’interfaccia fisica del router per ogni VLAN. Semplice ma costoso: richiede tanti link fisici quante sono le VLAN. Non scalabile oltre 3–4 VLAN.
2 — Router-on-a-Stick (ROAS)
Un unico link fisico trunk tra switch e router. Il router crea subinterface logiche (una per VLAN), ognuna con IP gateway di quella VLAN. Economico in hardware, ma il link trunk diventa collo di bottiglia se il traffico inter-VLAN è intenso.
VLAN 10 VLAN 20
192.168.10.0/24 192.168.20.0/24
│ │
┌────┴────────────────┴────┐
│ Switch │
└─────────────┬─────────────┘
│ Trunk (VLAN 10+20)
┌─────┴──────┐
│ Router │
│ Gi0/0.10 │ 192.168.10.1/24 ← gateway VLAN 10
│ Gi0/0.20 │ 192.168.20.1/24 ← gateway VLAN 20
└─────────────┘
Configurazione ROAS su Cisco IOS:
Router(config)# interface gigabitEthernet 0/0 Router(config-if)# no shutdown Router(config-if)# exit ! Subinterface per VLAN 10 Router(config)# interface gigabitEthernet 0/0.10 Router(config-subif)# encapsulation dot1Q 10 Router(config-subif)# ip address 192.168.10.1 255.255.255.0 Router(config-subif)# exit ! Subinterface per VLAN 20 Router(config)# interface gigabitEthernet 0/0.20 Router(config-subif)# encapsulation dot1Q 20 Router(config-subif)# ip address 192.168.20.1 255.255.255.0 Router(config-subif)# exit
3 — Switched Virtual Interface (SVI) — soluzione enterprise
Lo switch di livello 3 (Distribution o Core) crea internamente un’interfaccia virtuale per ogni VLAN. Il routing inter-VLAN avviene dentro lo switch, senza toccare router fisici. Massime prestazioni, nessun collo di bottiglia.
! Configurazione SVI su switch L3 Cisco Switch-L3(config)# ip routing ← abilita il routing L3 Switch-L3(config)# interface vlan 10 Switch-L3(config-if)# ip address 192.168.10.1 255.255.255.0 Switch-L3(config-if)# no shutdown Switch-L3(config-if)# exit Switch-L3(config)# interface vlan 20 Switch-L3(config-if)# ip address 192.168.20.1 255.255.255.0 Switch-L3(config-if)# no shutdown Switch-L3(config-if)# exit
Confronto tra i tre approcci
| Metodo | Hardware richiesto | Prestazioni | Scalabilità | Uso tipico |
|---|---|---|---|---|
| Router interfacce fisiche | Router + N porte fisiche | Media | ❌ Scarsa | Laboratorio, legacy |
| Router-on-a-Stick | Router + 1 link trunk | Media (bottleneck) | ✅ Buona | PMI, scenari con traffico inter-VLAN ridotto |
| SVI (Switch L3) | Switch L3 | ✅ Molto alta | ✅ Ottima | Enterprise, Distribution layer |
Un attaccante può cercare di “saltare” da una VLAN all’altra sfruttando switch mode trunk negoziato automaticamente (DTP) o la native VLAN. Contromisure: disabilita DTP su tutte le porte (switchport nonegotiate), cambia la native VLAN a una VLAN dedicata e inutilizzata, disabilita le porte non usate (shutdown) e mettile in una VLAN vuota.
- Le VLAN separano logicamente il traffico L2 su un’infrastruttura fisica condivisa, riducendo i domini broadcast e aumentando la sicurezza.
- Il tag 802.1Q (4 byte: TPID + TCI con VID a 12 bit) permette di trasportare più VLAN su un unico link fisico trunk.
- Le porte Access connettono end-device a una singola VLAN; le porte Trunk trasportano più VLAN tra switch e verso router/switch L3.
- Il Router-on-a-Stick usa subinterface su un unico trunk — soluzione economica per scenari con traffico inter-VLAN moderato.
- Le SVI su switch L3 eseguono inter-VLAN routing in hardware — soluzione enterprise ad alte prestazioni e massima scalabilità.
- La sicurezza VLAN richiede: native VLAN dedicata, DTP disabilitato, porte inutilizzate in shutdown.