Guida MikroTik
Interfacce, switching e VLANIntermedio

STP, RSTP e MSTP: protezione dai loop e convergenza rapida

Come configurare Spanning Tree Protocol (STP/RSTP/MSTP) su RouterOS v7 per prevenire loop di rete, scegliere il root bridge, proteggere le porte access con BPDU guard e ottimizzare la convergenza.

Lo Spanning Tree Protocol (STP e le sue evoluzioni RSTP, MSTP) è il meccanismo che previene i loop di rete nelle topologie con percorsi ridondanti. Un loop su una rete L2 causa broadcast storm: il traffico cresce esponenzialmente fino a saturare completamente le porte. RouterOS v7 usa RSTP come default (convergenza in ~1-2 secondi) ed è consigliato rispetto al vecchio STP (30+ secondi).

ProtocolloStandardConvergenzaPer-VLANQuando usarlo
STP802.1D30-50 sNoLegacy / compatibilità
RSTP802.1w1-2 sNo (1 albero)Default consigliato
MSTP802.1s1-2 sSì (per gruppi VLAN)Load balancing per VLAN
noneProvider bridge / link p2p senza ridondanza
STP vs RSTP vs MSTP

Elezione del Root Bridge

Il bridge con priorità più bassa diventa il Root Bridge. La priorità deve essere multiplo di 4096 (standard IEEE 802.1W). Se due bridge hanno la stessa priorità, vince quello con MAC address più basso — risultato non deterministico. Configurare sempre esplicitamente la priorità sul root bridge desiderato.

Impostare il bridge come Root primario e secondario
# Root Bridge primario: priorita 4096 (la piu bassa tra i valori validi non-zero)
/interface/bridge
set bridge1 protocol-mode=rstp priority=0x1000

# Root Bridge secondario (failover): priorita 8192
# /interface/bridge
# set bridge2 protocol-mode=rstp priority=0x2000

# Verificare quale bridge   Root
/interface/bridge/monitor bridge1

Configurazione porte: edge, point-to-point e path-cost

  • edge=yes (o auto): porta che va direttamente verso un host finale — salta gli stati Listening e Learning, entra subito in Forwarding. Ideale per porte access con singoli PC/CPE.
  • point-to-point=yes (o auto): link full-duplex tra due switch — abilita Rapid Transition di RSTP per convergenza immediata.
  • path-cost: costo del percorso verso il root. Minore = preferito. Default basato sulla velocità della porta: 1Gbps=20000, 10Gbps=2000.
Configurazione porte STP ottimizzata
/interface/bridge/port

# Uplink trunk verso switch core: ottimizzato per RSTP
set [find interface=ether1] \
    edge=no \
    point-to-point=yes \
    path-cost=20

# Porte access verso clienti/CPE: edge port
set [find interface=ether2] edge=yes point-to-point=yes
set [find interface=ether3] edge=yes point-to-point=yes
set [find interface=ether4] edge=yes point-to-point=yes

BPDU Guard: proteggere le porte access da loop

bpdu-guard=yes è una funzionalità di sicurezza critica: se una porta con bpdu-guard riceve un BPDU (il frame di controllo STP), disabilita automaticamente la porta (err-disabled). Questo previene che un utente colleghi uno switch non gestito creando un loop, o che un attaccante invii BPDU per destabilizzare la topologia STP.

Abilitare BPDU Guard sulle porte access
# Abilita bpdu-guard: se arriva un BPDU, la porta si disabilita
/interface/bridge/port
set [find interface=ether2] bpdu-guard=yes
set [find interface=ether3] bpdu-guard=yes
set [find interface=ether4] bpdu-guard=yes

# Verificare porte in stato disabled per BPDU guard
/interface/bridge/port print where status=inactive
ATTENZIONE: una porta in err-disabled per bpdu-guard NON si riattiva da sola in RouterOS. Va riabilitata manualmente (disable/enable della porta) dopo aver rimosso la causa. In WISP questo è desiderabile: ti accorgi subito che un cliente ha collegato uno switch a casa.

MSTP: Spanning Tree per topologie VLAN

MSTP (802.1s) estende RSTP permettendo di mappare gruppi di VLAN su istanze STP separate (MSTI — Multiple Spanning Tree Instance), ciascuna con il proprio root bridge. Vantaggi: load balancing del traffico su più percorsi fisici per VLAN diverse, convergenza per VLAN indipendente. Richiede vlan-filtering=yes sul bridge.

Configurazione MSTP base con due istanze
# Passare a MSTP (con vlan-filtering gia abilitato)
/interface/bridge
set bridge1 protocol-mode=mstp priority=0x1000 \
    region-name="WISP-CORE" region-revision=1

# Istanza MSTI 1: gestisce VLAN 10,20   root su questo bridge
/interface/bridge/msti
add bridge=bridge1 identifier=1 priority=0x1000 \
    vlan-mapping=10,20

# Istanza MSTI 2: gestisce VLAN 30,40   root su bridge secondario
add bridge=bridge1 identifier=2 priority=0x8000 \
    vlan-mapping=30,40

# Monitorare stato MSTP
/interface/bridge/monitor bridge1
/interface/bridge/msti/monitor 1
ATTENZIONE: tutti i bridge nella stessa regione MSTP devono avere identici region-name e region-revision. Una discrepanza fa sì che i bridge vengano visti come regioni separate, con effetti indesiderati sulla topologia. Verificare sempre con /interface/bridge/monitor.
BEST PRACTICE: su reti di produzione WISP non lasciare le priorità STP ai valori di default (32768 su tutti). Scegli consapevolmente quale switch è il root bridge e impostagli priorità 4096. Agli access switch assegna valori crescenti (8192, 16384). Documenta la topologia.
STPRSTPMSTPSpanning TreeloopBPDUbpdu-guardroot bridgeedge portconvergenzabridge prioritypath-costbroadcast storm

Configura senza fatica con l'AI

In WispOS l'agente AI genera la configurazione RouterOS dalle tue parole e un tutor ti guida passo passo.

Prova WispOS