Perché VLAN e trunking sono il cuore del layer 2

Le VLAN segmentano un singolo switch (o un dominio switchato) in più domini di broadcast logici. Finché i frame restano dentro lo switch, l’appartenenza a una VLAN è un’informazione locale. Nel momento in cui un frame deve attraversare un link tra due switch condividendo più VLAN, serve un meccanismo che “etichetti” ogni frame: è il compito del trunk 802.1Q.

Incapsulamento 802.1Q e native VLAN

802.1Q inserisce un tag di 4 byte all’interno dell’header Ethernet, subito dopo il MAC sorgente. Il tag contiene il TPID (0x8100) e il campo TCI, che porta 3 bit di PCP (priorità CoS), 1 bit DEI e i 12 bit di VLAN ID (range 1–4094).

L’eccezione fondamentale è la native VLAN: i frame appartenenti a essa attraversano il trunk senza tag. Di default è la VLAN 1 su entrambi i lati. Questo comportamento è la sorgente della trappola d’esame più classica:

  • Se i due lati hanno native VLAN diverse (es. lato A native 1, lato B native 99), il traffico untagged viene “iniettato” nella VLAN sbagliata (VLAN hopping / leaking), CDP genera un native VLAN mismatch ma il link resta up.

Best practice: allineare la native VLAN, usare una VLAN dedicata e inutilizzata, e valutare switchport trunk native vlan tag per taggare anche il traffico native.

DTP e i mismatch di trunking

Il DTP (Dynamic Trunking Protocol, proprietario Cisco) negozia automaticamente se un link diventa trunk o access. Le modalità:

Modalità Comando Comportamento
access switchport mode access mai trunk
trunk (on) switchport mode trunk sempre trunk, invia DTP
dynamic desirable switchport mode dynamic desirable cerca attivamente il trunk
dynamic auto switchport mode dynamic auto trunk solo se sollecitato

Matrice di formazione del trunk:

  • desirable + desirable/auto/trunk → trunk
  • auto + autoaccess (nessuno dei due sollecita l’altro: errore d’esame frequente)
  • trunk + trunk → trunk

In produzione si disattiva DTP con switchport nonegotiate, configurando i trunk in modo statico per evitare negoziazioni indesiderate.

L’EtherChannel raggruppa fino a 8 link fisici (LACP arriva a 16 configurati, 8 attivi + 8 standby) in un’unica interfaccia logica Port-channel. STP vede un solo link, quindi non blocca i membri, e la banda si somma.

Due protocolli di negoziazione più la modalità statica:

Protocollo Modalità Forma bundle con
LACP (802.3ad, standard) active / passive active-active, active-passive
PAgP (Cisco) desirable / auto desirable-desirable, desirable-auto
Statico on solo on-on

Regole chiave:

  • passive + passive (LACP) → nessun bundle (nessuno inizia).
  • auto + auto (PAgP) → nessun bundle.
  • on con active/passive/desirable/autonessun bundle: on non parla alcun protocollo, quindi mescolare statico e dinamico è incompatibile.
  • Non si possono mischiare LACP e PAgP sullo stesso bundle.
interface range gi1/0/1-2
 channel-group 1 mode active

Load balancing basato su hash

Il traffico non viene distribuito frame-per-frame in modo casuale: lo switch calcola un hash su campi selezionabili (src-mac, dst-mac, src-dst-ip, src-dst-port…) tramite port-channel load-balance. L’hash produce un valore che mappa sempre lo stesso flusso sullo stesso membro fisico: questo evita il riordino dei pacchetti ma implica che un singolo flusso non superi mai la banda di un link.

Per una distribuzione uniforme, il numero di link dovrebbe essere una potenza di 2 (2, 4, 8); con 3 o 5 link il carico si sbilancia. Su topologie con pochi host conviene un hash basato su L3/L4 (src-dst-ip o src-dst-port) per aumentare l’entropia.

Requisiti di consistenza dei membri

I membri devono condividere speed, duplex, modalità (access/trunk), VLAN permesse e native VLAN. Una divergenza sospende il membro incoerente o, con on, può portare a err-disabled per link inconsistente.

Trappole tipiche d’esame

  • Native VLAN mismatch → il link resta up ma CDP segnala l’errore e il traffico native “salta” tra VLAN diverse: correggere allineando la native VLAN, non spegnendo il trunk.
  • auto/auto (DTP) o passive/passive (LACP) o desirable non presente su PAgP → nessuna delle due estremità inizia la negoziazione: il trunk o il bundle non si forma.
  • channel-group mode on su un lato e active/desirable sull’altro → EtherChannel non forma: on è statico e non negozia; serve on-on oppure protocollo su entrambi.
  • Membri con native VLAN o allowed VLAN diverse → porta sospesa dall’EtherChannel: verificare show etherchannel summary (flag s/w) prima di sospettare problemi fisici.
  • Bundle a 3 link con hash src-mac e pochi server → distribuzione sbilanciata: passare a src-dst-ip/src-dst-port e portare i membri a una potenza di 2.