Preskoči na glavni sadržaj

STP vs RSTP vs MSTP — convergence vremena u praksi

switching advanced AV Market tim

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

ProtokolStandardGodinaConvergenceMulti-instanceStatus
STP802.1D199030–50sNe (1 instance za sve VLAN-ove)Legacy
RSTP802.1w20011–2sNe (1 instance)Default svuda
MSTP802.1s2002, integrisan u 802.1Q-2003<1sDa (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”.

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.

ProtokolKonfiguracijaLost packetsConvergence (sekunde)
STP (forsiran 802.1D)hello 2s, fwd 15s, max age 20s15230.4
STP (tuned: hello 1s, fwd 4s)reduce timers387.6
RSTPdefault 802.1w61.2
RSTP + edge portsedge na svim PC portovima61.2 (no improvement — edge ne pomaže za core link fail)
MSTP4 instance, balanced40.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):

ProtokolTopology changeLost packetsTCN propagation
STPpriority change na S37515s (jedan forward delay)
RSTPpriority change na S30<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-guard ili bpdu-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-name ili revision, 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 configuration mora 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-pvst na 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-guard na 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

Pojmovnik