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).
| Protocollo | Standard | Convergenza | Per-VLAN | Quando usarlo |
|---|---|---|---|---|
| STP | 802.1D | 30-50 s | No | Legacy / compatibilità |
| RSTP | 802.1w | 1-2 s | No (1 albero) | Default consigliato |
| MSTP | 802.1s | 1-2 s | Sì (per gruppi VLAN) | Load balancing per VLAN |
| none | — | — | — | Provider bridge / link p2p senza ridondanza |
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.
# 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.
/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=yesBPDU 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.
# 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
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.
# 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 1region-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.Continua con
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