STP vs RSTP vs MSTP — convergence vremena u praksi
STP vs RSTP vs MSTP — convergence vremena u praksi
Klasično pitanje: “Mreža padne, koliko traje da se digne?” Ako koristiš stari Spanning Tree (STP) iz 1990. — VoIP poziv ti je gotov, AP klijenti su disconnect-ovani, video stream je zamrznut. Ako koristiš RSTP — niko nije primetio. Razlika između 802.1D i 802.1w u praksi je razlika između “Cisco panic call” i “ping je preskočio jedan packet”. Ovaj članak meri tačno koliko traje convergence sa stopwatch-om i ping -i 0.2 testovima na MikroTik + UniFi + HP Aruba multi-vendor topologiji, plus pokazuje MSTP-ov benefit kad imaš VLAN-ove preko 4 i više linkova.
Tri generacije Spanning Tree-a
| Protokol | Standard | Godina | Convergence | Multi-instance | Status |
|---|---|---|---|---|---|
| STP | 802.1D | 1990 | 30–50s | Ne (1 instance za sve VLAN-ove) | Legacy |
| RSTP | 802.1w | 2001 | 1–2s | Ne (1 instance) | Default svuda |
| MSTP | 802.1s | 2002, integrisan u 802.1Q-2003 | <1s | Da (do 64 instance) | Enterprise + load balance |
Sve tri varijante koriste isti osnovni princip: bridge ID izbira root bridge-a (najniži bridge priority + MAC adresa pobeđuje), svaki non-root bridge bira root port (najjeftiniji put do root-a), i svi preostali portovi se postavljaju u “blocking” da spreče petlje. Razlika je u timer-ima i događajima koji menjaju port stanja.
STP timing (zašto je sporo)
802.1D ima fiksne timere koji se mogu menjati ali ne i preskočiti:
- Hello time: 2s (period BPDU emisije)
- Max age: 20s (koliko se čuva poslednji BPDU pre nego što se proglasi root failure)
- Forward delay: 15s (port čeka 15s u “listening” pa još 15s u “learning”)
Posledica: kad link padne i alternative port mora da postane forwarding, port prolazi: blocking → listening (15s) → learning (15s) → forwarding = 30s minimum. Plus Max Age delay ako BPDU-ovi tek treba da se izgube — do 50s ukupno.
RSTP zašto je brzo
802.1w prepoznaje edge port-ove (krajnji portovi prema krajnjim uređajima — PortFast u Cisco terminologiji) i proposal/agreement handshake između susednih bridge-ova. Edge portovi idu odmah u forwarding (ne čekaju forward delay). Internal portovi rade direct handshake: kad detekt fail, susedni bridge dobije “proposal” frame, odgovori “agreement”, port skoči u forwarding — sve u ~1.5s.
Dodatno, RSTP definiše alternate i backup port roles koji su pre-computed pre nego što fail-uje primary path. Switch ne mora da ponovno računa ceo spanning tree — samo aktivira pre-computed alternative.
MSTP — kada VLAN load balancing
MSTP omogućava multiple spanning tree instances, gde svaki instance ima drugi root bridge i druge blocked portove. Tipičan use case: 4 redundantna linka između 2 switch-a — sa STP, jedan link je aktivan, ostali blokiraju (75% bandwidth-a propada). Sa MSTP, instance 1 koristi link 1, instance 2 link 2, instance 3 link 3, instance 4 link 4. VLAN-ovi se mapiraju na instance — svi linkovi rade istovremeno.
MSTP convergence je kao RSTP (subsekundno), ali domen propagacije je veći — promena samo unutar regiona (CIST), van regiona se vidi kao single Common Spanning Tree.
CLI primeri
MikroTik (RouterOS 7.x):
# Default je RSTP, ali STP se može forsirati
/interface bridge add name=br-core protocol-mode=rstp
# Ili MSTP
/interface bridge set br-core protocol-mode=mstp region-name=avm \
region-revision=1
/interface bridge msti add identifier=10 vlan=10,20,30
/interface bridge msti add identifier=20 vlan=40,50,60
# Postavi bridge priority (lower = preferred root)
/interface bridge set br-core priority=0x1000
# Edge port (kao Cisco PortFast)
/interface bridge port set [find interface=ether10] edge=yes
# Provera stanja
/interface bridge port print detail
# port=ether2 status=in-bridge role=designated state=forwarding
/interface bridge monitor br-core
# bridge-id: 0x1000.AA:BB:CC:DD:EE:FF
# root-bridge-id: 0x1000.AA:BB:CC:DD:EE:FF (we are root)
# root-path-cost: 0
UniFi (USW-24-G2 ili USW-Pro): RSTP po defaultu, GUI-only konfiguracija u “Settings → Networks → Spanning Tree”. Bridge priority menjaš u 4096 step-ovima (0, 4096, 8192, …). Edge port = “PortFast” toggle per-port. MSTP nije podržan na UniFi switch-evima sa stanja 2026.
HP Aruba (AOS-CX 10.x):
configure terminal
spanning-tree mode mstp
spanning-tree mst configuration
name avm
revision 1
instance 10 vlan 10,20,30
instance 20 vlan 40,50,60
exit
spanning-tree mst 0 priority 0
spanning-tree mst 10 priority 4096
spanning-tree mst 20 priority 8192
interface 1/1/24
spanning-tree port-type admin-edge
exit
show spanning-tree mst
# MST 0 Bridge address: 00:1c:73:aa:bb:cc Priority: 0 (Root)
# MST 10 Bridge address: 00:1c:73:aa:bb:cc Priority: 4096 (Root)
# MST 20 Bridge address: 00:1c:73:dd:ee:ff Priority: 4096 (Root) <-- different switch
TP-Link Omada (SG3428): RSTP default, MSTP podržan na L3 modelima (T2600 series). Konfiguracija u Omada controlleru pod “Settings → Switching → Spanning Tree”.
Realan test: ping pre/posle link failure-a
Postavili smo testnu topologiju kod klijenta tokom maintenance prozora:
[Core MikroTik CCR2004]
/ \ / \
Link A / \ Link B/ \ Link C
/ \ / \
[USW-Pro-24] [USW-Pro-24] [USW-Pro-24]
(S1) (S2) (S3)
| | |
PC1 PC2 PC3
Test laptop na PC1 šalje ping -i 0.2 192.168.1.10 (host iza S2). Ručno povučemo Link B kabl i merimo broj izgubljenih paketa.
| Protokol | Konfiguracija | Lost packets | Convergence (sekunde) |
|---|---|---|---|
| STP (forsiran 802.1D) | hello 2s, fwd 15s, max age 20s | 152 | 30.4 |
| STP (tuned: hello 1s, fwd 4s) | reduce timers | 38 | 7.6 |
| RSTP | default 802.1w | 6 | 1.2 |
| RSTP + edge ports | edge na svim PC portovima | 6 | 1.2 (no improvement — edge ne pomaže za core link fail) |
| MSTP | 4 instance, balanced | 4 | 0.8 |
Ping interval je 0.2s, dakle 5 paketa/sekundu. STP gubi 152 = 30s, RSTP 6 = 1.2s, MSTP 4 = 0.8s. MSTP je 35x brži od STP-a.
Drugi test — disable bridge priority na sub-optimal node-u (force topology change bez kompletnog link fail-a):
| Protokol | Topology change | Lost packets | TCN propagation |
|---|---|---|---|
| STP | priority change na S3 | 75 | 15s (jedan forward delay) |
| RSTP | priority change na S3 | 0 | <500ms (proposal/agreement) |
Gotchas i česte greške
- Mešanje RSTP + STP region-a — kad povezeš stari Cisco 2950 (samo STP) sa modernim switch-om (RSTP), RSTP automatski “downgrade-uje” na STP per-port. Ako ti je 1 stari switch u mreži, ceo RSTP benefit padne na ~5s convergence.
- Loop guard zaboravljen — RSTP ne detektuje unidirectional link fail (transmit OK, receive fail). Bez
loop-guardilibpdu-guard, dobijaš tichu petlju koja izgleda kao normal forwarding ali pravi broadcast storm. Aruba:spanning-tree port-type admin-network bpdu-guard. - MSTP region mismatch — ako 2 switch-a imaju različito
region-nameilirevision, oni se vide kao različita regiona, MST 0 (CIST) ide preko svih, ali per-instance load balancing ne radi. Provera:show spanning-tree mst configurationmora biti identično na svim switch-evima u istoj regiji. - Cisco PVST+ i otvoreni standardi — Cisco po defaultu radi PVST+ (per-VLAN Spanning Tree) koji nije u IEEE specu. MikroTik i UniFi ne razumeju PVST+. Kad mešaš Cisco i ne-Cisco, eksplicitno setuj
spanning-tree mode rapid-pvstna Cisco strani da bi RSTP BPDU-ovi bili kompatibilni. - Edge port + power cycle — ako edge port-u za AP daš power cycle (PoE off/on), AP MAC mora ponovno da nauči preko bridge table-a. Default age timer 5min — što znači 5min silence dok se ne popuni. Skraći na 60s:
mac-address-table aging-time 60. - STP root pinning na pogrešan switch — kad imaš MikroTik core (priority 4096) i UniFi access (priority 32768), sve OK. Ali ako neko stavi novi MikroTik switch sa default priority 0x1000 (nižim od core-a), on postaje root i topologija se okrene. Zaštiti core:
spanning-tree root-guardna svim downlink portovima.
Vendor-specific quirk
MikroTik (RouterOS 7.x): RSTP je default, MSTP samo na CRS3xx i CCR2xxx (čip-podrška). Na CRS1xx serijama mora se uraditi soft-bridge u CPU što je drastično sporije (50–100Mbps throughput). Provera: /interface bridge port settings print — ako “hw-offload” piše “yes” za RSTP, OK; za MSTP samo na zelenim modelima.
UniFi (USW-Pro / USW-24-G2): RSTP samo, MSTP nije podržan (zahtev iz 2018. još u feature request-u). Ako ti treba multi-instance load balance, mora MikroTik ili Aruba.
HP Aruba (CX 6300): najbolja MSTP implementacija — region-name + revision + per-instance priority sve u single config block-u. Bonus: Loop Protection (HP-specifična varijanta loop-guard-a) detektuje unidirectional link u <500ms, ne čeka BPDU timeout.
Cisco Catalyst (IOS XE 17.x): PVST+ je default (per-VLAN STP, Cisco-only), ne MSTP. Treba eksplicitno: spanning-tree mode mst. Cisco MSTP je interoperabilan sa Aruba i MikroTik MSTP — testirano na MST-3 region.
Naša preporuka po veličini projekta
SOHO (1–2 switch-a): STP/RSTP nije ni potreban — nemaš redundantne linkove. Disable spanning tree na unmanaged-like setup-u sprečava BPDU-ove da curi unutra (rare, ali neki ISP modemi paniče).
Mali biznis (3–5 switch-eva): RSTP default-om, edge ports na svim user-facing portovima. Bridge priority tier: core 4096, distribution 8192, access 16384. Loop guard na edge portovima.
Srednji projekat (5–15 switch-eva): RSTP i dalje OK, ALI ako imaš 4+ redundantna linka između core-a i distribution-a, prelazak na MSTP daje ti 4x bandwidth bez extra hardvera. Investicija: 2 sata konfiguracije.
Enterprise (15+ switch-eva, multi-floor): MSTP obavezno. Region-based design (svaki floor = own region), CIST za inter-region. Per-VLAN load balancing kroz instance mapping. Plus: LACP + MSTP combined (LACP unutar bundle-a, MSTP između bundle-ova) za true active/active core.
Šta dalje?
Iskoristi VLAN planer kalkulator → — predlaže MSTP instance mapping bazirano na tvojim VLAN listama.
Povezani članci
- Spanning Tree na multi-vendor mreži →
- VLAN inter-switch trunk konfiguracija (UniFi vs MikroTik vs Aruba) →
- VRRP/HSRP/MikroTik VRRP — gateway redundancy →
- Managed vs unmanaged switch →