Spanning Tree na multi-vendor mreži
Spanning Tree na multi-vendor mreži
Kad u istom L2 broadcast domenu radiš mix UniFi pristupnih switch-eva, MikroTik core-a, Cisco legacy uplink-a i Aruba CX server room-a, Spanning Tree je tihi rat između 4 vendor-a koji svaki misli da je njegov bridge najmoćniji. Rezultat: random root election, neočekivana blokirana porta, topology change svaki sat. Ovaj članak razlaže kako BPDU formati interoperiraju, kako pravilno postaviti bridge priority hijerarhiju, i kako koristiti root-guard / bpdu-guard da niko ne sme da otmi root role-u kad neko zabunom uključi novi switch.
BPDU formati i kompatibilnost
Bridge Protocol Data Unit (BPDU) je multicast frame koji sadrži informacije za STP koordinaciju. Postoje 3 glavna formata:
| Format | Standard | Vendor support | Multicast MAC |
|---|---|---|---|
| Configuration BPDU | 802.1D STP | Universal | 01:80:C2:00:00:00 |
| RSTP BPDU | 802.1w | Universal (svi posle 2002) | 01:80:C2:00:00:00 |
| MSTP BPDU | 802.1s | Universal | 01:80:C2:00:00:00 |
| PVST+ BPDU | Cisco proprietary | Cisco only | 01:00:0C:CC:CC:CD |
| Rapid PVST+ | Cisco proprietary | Cisco only | 01:00:0C:CC:CC:CD |
Bitno: standardni BPDU multicast MAC (01:80:C2:00:00:00) je univerzalni. Cisco PVST+ BPDU ide na drugu MAC adresu (01:00:0C:CC:CC:CD) i ne-Cisco switch-evi ga ignorišu. Cisco PVST+ takođe šalje IEEE-formatne BPDU-ove na VLAN 1 za interop, što često dovodi do “two trees” problema.
Interop compatibility matrix
| ↓ Cisco posle / Drugi pre → | UniFi RSTP | MikroTik RSTP | MikroTik MSTP | Aruba MSTP |
|---|---|---|---|---|
| Cisco PVST+ | OK (IEEE BPDU bridge tree, PVST za Cisco-only) | OK | OK ako VLAN 1 active | OK |
| Cisco RSTP (eksplicit) | OK 100% | OK 100% | OK CIST | OK CIST |
| Cisco MSTP | OK CIST | OK CIST | OK ako region matches | OK ako region matches |
Praktično: ako pomešaš Cisco i bilo koji drugi vendor, eksplicitno setuj spanning-tree mode rapid-pvst na Cisco strani ili još bolje spanning-tree mode mst. Default PVST+ pravi probleme.
Bridge priority hijerarhija — kako postaviti root manualno
Default bridge priority kod svih vendora je 32768. Bridge ID se sastoji od priority (16-bit) + MAC adrese (48-bit). Pri dva bridge-a sa istim priority-jem, niža MAC adresa pobeđuje. To znači: ako ne postaviš priority, root bridge je slučajno odabran prema MAC-u — najstariji switch verovatno postaje root, čak i ako je u pogrešnom mestu u topologiji.
Ispravna hijerarhija (lower = more preferred):
Tier 1 — Core/distribution (želiš da bude root):
Priority: 4096 (or 0)
Tier 2 — Backup core (kandidat za root ako primary padne):
Priority: 8192
Tier 3 — Aggregation/distribution:
Priority: 16384
Tier 4 — Access switches (krajnji uređaji):
Priority: 32768 (default)
Bitno: priority mora biti u multiplama od 4096 (12 lower bits su VLAN ID kod PVST+, kod IEEE 802.1D-2004 koristi se “extended system ID” gde lower 12 bits su rezervisani).
CLI postavke per-vendor
MikroTik (RouterOS 7.x):
/interface bridge set br0 priority=0x1000 ;# 4096
/interface bridge set br0 priority=0x2000 ;# 8192
/interface bridge set br0 priority=0x8000 ;# 32768 (default)
UniFi (Network Application 8.x): Settings → Networks → click on LAN → Advanced → Spanning Tree → Bridge Priority. Dropdown: 0, 4096, 8192, … 61440. Granularno samo do 4096 inkrementa (nema 1024 ili sub-step-ova).
HP Aruba CX (AOS-CX 10.x):
configure terminal
spanning-tree priority 4096
# Ili per-instance kod MSTP:
spanning-tree mst 0 priority 4096
spanning-tree mst 10 priority 8192
TP-Link Omada (SG3428): Settings → Switching → Spanning Tree → priority. Identično UniFi-u.
Cisco IOS:
configure terminal
spanning-tree vlan 1-4094 priority 4096
# Ili sa "root primary" macro:
spanning-tree vlan 1-4094 root primary
root primary macro automatski računa priority koji je za 4096 niži od trenutnog root-a, što pravi switch novi root.
Realan scenario: 4-vendor topologija
Klijent: medium B2B kompanija, 60 zaposlenih, 3 sprata.
[MikroTik CCR2004 — Core Router/Switch]
|
10G uplink trunk
|
[HP Aruba CX 6300 — Server Room aggregation]
/ \
1G trunk / \ 1G trunk
/ \
[UniFi USW-Pro-24] [UniFi USW-Pro-24]
Floor 1 (20 ports) Floor 2 (20 ports)
| |
[TP-Link SG1218MP] [TP-Link SG1218MP]
Wall switch Wall switch
Bridge priority dodela
| Switch | Role | Priority |
|---|---|---|
| MikroTik CCR2004 | Root primary | 4096 |
| HP Aruba CX 6300 | Root secondary | 8192 |
| UniFi USW-Pro-24 (Floor 1) | Distribution | 16384 |
| UniFi USW-Pro-24 (Floor 2) | Distribution | 16384 |
| TP-Link SG1218MP (wall switch 1) | Access | 32768 (default) |
| TP-Link SG1218MP (wall switch 2) | Access | 32768 (default) |
Konfiguracija per-switch
MikroTik CCR2004:
/interface bridge set br-core priority=0x1000 protocol-mode=rstp
/interface bridge port set ether10 edge=no point-to-point=yes
HP Aruba CX:
spanning-tree mode rstp
spanning-tree priority 8192
interface 1/1/1
spanning-tree port-type admin-network
UniFi (kroz Network Application): Bridge Priority → 16384, plus Settings → Devices → Switch Properties → enable RSTP
TP-Link Omada: Bridge Priority → 32768 (default ostavi), enable RSTP, port edge na sve user portove.
Verifikacija — koji je root?
# MikroTik
/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
# Aruba
show spanning-tree
# Spanning-tree status : Enabled (RSTP)
# This Bridge ID : 8192,00:1c:73:dd:ee:ff
# Root Bridge ID : 4096,aa:bb:cc:dd:ee:ff
# Root path cost : 20000
# UniFi (preko SSH)
swctrl spanning-tree show
# Bridge ID: 16384.00:1d:7e:11:22:33
# Designated Root: 4096.aa:bb:cc:dd:ee:ff
# Root Port: 24 (uplink to Aruba)
# Root Path Cost: 40000
Sve potvrđuje da je MikroTik (priority 4096) root. Aruba je secondary (8192). Tier-3 switch-evi rade prema njima.
Root-guard i BPDU-guard — kako sprečiti random root takeover
Problem: neko poveže novi switch (npr. mali TP-Link 8-portni za testiranje) na user port. Default priority je 32768, ali MAC adresa je niža od MikroTik-ove. Switch postaje novi root, topologija se okrene, blokirani portovi se promene, mreža padne na 30s+ za ponovni RSTP konvergenc.
Rešenje: root-guard i bpdu-guard.
Root-guard
Root-guard kaže portu: “Ne smeš da prihvatiš BPDU koji sadrži priority manji od trenutnog root priority-ja”. Ako se desi, port ulazi u root-inconsistent state (blokiran) dok BPDU ne prestane.
# MikroTik
/interface bridge port set [find interface=ether20] root-block=yes
# Aruba CX
interface 1/1/15
spanning-tree root-guard
# Cisco
interface gigabitethernet0/15
spanning-tree guard root
UniFi nema eksplicitan root-guard u Network Application UI 8.x — workaround: koristi BPDU-guard na svim user portovima.
BPDU-guard
BPDU-guard kaže portu: “Ako uopšte stigne BPDU sa ovog porta (jer je deklariran kao edge), shut-down port”. Maksimalna sigurnost na user portovima.
# MikroTik
/interface bridge port set [find interface=ether5] edge=yes bpdu-guard=yes
# Aruba CX
interface 1/1/5
spanning-tree bpdu-guard
spanning-tree port-type admin-edge
# UniFi
# Settings → Profiles → Switch Ports → Edit profile → "BPDU Guard" toggle on
Ako neko slučajno spoji 2 porta sa BPDU-guard u petlju (loop), prvi BPDU koji stigne shut-down-uje port. Recovery: error-disable timer (default 5 minuta) automatski reactivira, ili manuel clear errdisable komanda.
Gotchas i česte greške
- Mešanje PVST+ i RSTP — najčešća greška. Ako Cisco switch radi PVST+ default i ne setuješ
mode rapid-pvstilimode mst, RSTP BPDU-ovi sa MikroTik-a se ignorišu, dobijaš parallel STP instances koje se ne sinhronizuju. - MAC bridge priority sa AAA-prefiksom — neki UniFi switch-evi imaju MAC počinjajući sa
78:8a:20:...što je relativno nisko. Ako ne postaviš priority eksplicitno, UniFi može slučajno postati root. Uvek setuj priority manualno. - MSTP region mismatch sa Cisco-om — Cisco MSTP zahteva
mst configurationblok sa region-name, revision, i instance-to-VLAN mapping. Aruba i MikroTik isto. Region-name je case-sensitive. Ako napišeš “AVM” na jednom i “avm” na drugom, oni su u različitim regionima. - Edge port + AP sa STP-om — neki “smart” AP-evi (npr. Mikrotik wAP ax sa bridge mode) emitujju BPDU-ove. Ako su priključeni na edge port sa BPDU-guard, AP shut-down-uje. Disable BPDU emisiju u AP-u ili koristi root-guard umesto BPDU-guard za AP portove.
- UDLD / loop protection — ako UDLD nije podržan (UniFi i MikroTik nemaju UDLD), unidirectional link fail (samo TX radi, RX ne) ne triggeruje STP topology change. Workaround:
loop-protectna MikroTik portu, ili Aruba “Loop Protection”.
Vendor-specific quirk
MikroTik (sve modele sa bridge): RSTP default. MSTP samo na CRS3xx i CCR2xxx (hardware-offloaded). Bridge priority granularno setuje (0–61440 sa 4096 step). Loop protection ulazi u RouterOS 7.10+.
UniFi (USW-Pro / USW-EnterpriseXG): RSTP samo, MSTP nije podržan ni u jednom UniFi modelu 2026. Ako mreža ima MikroTik core sa MSTP i UniFi access, UniFi ulazi u CIST (Common Spanning Tree) mode i ne dobija per-instance load balance.
HP Aruba CX 6300: najbolja MSTP implementacija, plus Loop Protection koji detektuje unidirectional link <500ms. Loop protection radi i kad RSTP misli da je sve OK.
TP-Link Omada (SG3428): RSTP default, MSTP samo na L3 modelima (T2600 series). Mainstream SOHO modeli (TL-SG108E) imaju samo basic STP — sporije konvergenc.
Cisco Catalyst: PVST+ default je istorijski problem. Eksplicitno setuj spanning-tree mode mst na svakom Cisco switch-u u multi-vendor mreži. Ostavi PVST+ samo za pure-Cisco zone.
Naša preporuka po veličini projekta
SOHO: STP nije obavezan — single switch, no redundancy. Ali ostavi RSTP enabled da spreči user loop accidents.
Mali biznis: UniFi all-in. RSTP default, edge ports + BPDU-guard na user side. Bridge priority hijerarhija po sloju (core 4096, access 16384).
Srednji multi-vendor: RSTP svuda, eksplicitno postavi priority na svim switch-evima (čak i ako je default). Root-guard na core uplink portovima. BPDU-guard na user side. Document RSTP topology sa root primary/secondary.
Enterprise multi-vendor: MSTP region-design (per-floor ili per-zone region). CIST za inter-region trunk. Plus root-guard + BPDU-guard + loop-protection (Aruba) ili UDLD (Cisco) na svim point-to-point linkovima. Zero-tolerance za new-switch-becomes-root incident-e.
Šta dalje?
Iskoristi VLAN planer kalkulator → — predlaže STP region design + bridge priority hijerarhiju.
Povezani članci
- STP vs RSTP vs MSTP — convergence vremena u praksi →
- VLAN inter-switch trunk konfiguracija →
- VRRP/HSRP/MikroTik VRRP — gateway redundancy →
- Managed vs unmanaged switch →