Lo Spanning Tree Protocol (STP) risolve un problema fondamentale delle topologie switched ridondanti: senza controllo, i link di backup a Layer 2 creano loop che generano broadcast storm, instabilità della MAC address table e duplicazione dei frame. STP costruisce una topologia logica ad albero, priva di loop, mettendo in blocking le porte in eccesso pur mantenendo la ridondanza fisica pronta a subentrare.

Elezione del root bridge

Ogni switch parte credendosi root e annuncia il proprio Bridge ID tramite BPDU. Il Bridge ID è composto da priority (default 32768) + extended system ID (il VLAN ID) + MAC address. Vince il Bridge ID più basso: a parità di priority, decide il MAC più basso. La priority è configurabile solo in incrementi di 4096 (spanning-tree vlan X priority 4096), quindi non è possibile impostare valori arbitrari come 5000.

Con PVST+ (default sugli switch Catalyst) c’è un’istanza STP per VLAN, e l’extended system ID somma il VLAN ID alla priority: per la VLAN 10 la priority effettiva diventa 32778.

Path cost e root port

Ogni switch non-root elegge una root port: quella con il root path cost cumulativo più basso verso il root bridge. Il costo si somma lungo il percorso; questi i valori legacy (short mode):

Velocità link Costo STP
10 Mbps 100
100 Mbps 19
1 Gbps 4
10 Gbps 2

Attenzione: il costo si somma sulle interfacce in ingresso lungo il cammino, non sulla singola porta locale. A parità di costo cumulativo si applicano i tie-breaker, nell’ordine: 1) sender Bridge ID più basso, 2) sender Port ID più basso, 3) Port ID locale più basso.

Ruoli e stati delle porte

Ruoli (STP): root port (verso il root), designated port (una per segmento, quella che inoltra verso il segmento con il costo migliore) e non-designated (in blocking). RSTP aggiunge i ruoli alternate (backup di una root port, bloccata) e backup (backup di una designated su segmento condiviso).

Stati STP (802.1D): disabled → blocking → listening → learning → forwarding. Il forward delay è 15 secondi per listening e per learning, e il max age 20 secondi: una riconvergenza classica richiede 30–50 secondi.

Stati RSTP (802.1w): semplificati in discarding, learning, forwarding. RSTP converge in genere in meno di un secondo grazie al meccanismo proposal/agreement sui link point-to-point.

PortFast e BPDU Guard

PortFast porta immediatamente in forwarding una porta access collegata a un end host (PC, server, telefono), saltando gli stati listening/learning e i relativi 30 secondi di attesa. Evita anche il flooding di TCN (Topology Change Notification) ogni volta che un host si accende o si spegne.

PortFast va usato SOLO su porte edge verso dispositivi terminali, mai su un link verso un altro switch. Un trunk (o un access link verso uno switch) può introdurre un loop: se quella porta salta gli stati intermedi e va subito in forwarding, il loop si forma prima che STP possa bloccarla.

BPDU Guard protegge proprio questo scenario: su una porta PortFast non deve mai arrivare una BPDU. Se ne arriva una (segno che è stato collegato uno switch), la porta va in err-disabled e si spegne. Si attiva globalmente con spanning-tree portfast bpduguard default (agisce sulle sole porte PortFast) oppure per interfaccia.

interface GigabitEthernet0/1
 switchport mode access
 spanning-tree portfast
 spanning-tree bpduguard enable

Trappole tipiche d’esame

  • Root port sul costo cumulativo, non sulla singola interfaccia → dato uno scenario con più cammini, sommate i costi di tutte le interfacce lungo ciascun percorso verso il root; la root port è quella col totale più basso, non quella con l’interfaccia più veloce localmente.
  • Priority solo in multipli di 4096 → se un comando propone di impostare priority 8192 va bene, ma 8000 o 5000 vengono rifiutati; con VLAN, ricordate di sommare il VLAN ID (es. 32768 + 10).
  • PortFast su un trunk / verso uno switch → la risposta giusta è “no”: PortFast si applica solo a porte access verso end host; su un link inter-switch rischia un loop transitorio. Da abbinare a BPDU Guard.
  • Porta in err-disabled dopo aver collegato uno switch → causa: BPDU Guard ha ricevuto una BPDU su una porta PortFast. Il recupero avviene con shutdown/no shutdown o via errdisable recovery, non riabilitando STP.
  • A parità di Bridge Priority vince il MAC più basso → nell’elezione del root bridge, se le priority sono identiche il tie-breaker è il MAC address più basso, non il numero di porte o l’uptime.