1/30 STP/RSTP – Spanning Tree Protocol

Protokół drzewa rozpinającego – ochrona przed pętlami w sieciach L2

Przedmiot: Sieci komputerowe – wykład uzupełniający

Prezentacja w całości poświęcona jest protokołom STP (IEEE 802.1D) i RSTP (IEEE 802.1w) – mechanizmom zapobiegającym pętlom w sieciach Ethernet z redundantnymi połączeniami.

Omówiono algorytm STA, budowę ramek BPDU, role i stany portów, wybór root bridge, koszty ścieżek, timery, konwergencję oraz mechanizmy zabezpieczające (PortFast, BPDU Guard).

Każdy blok teoretyczny został uzupełniony przykładami konfiguracji i diagnostyki w systemach Cisco IOS oraz MikroTik RouterOS, co pozwala na praktyczne zastosowanie zdobytej wiedzy w rzeczywistych sieciach.

Szczególna uwaga poświęcona jest mechanizmom bezpieczeństwa, takim jak BPDU Guard i Root Guard, które chronią sieć przed atakami na warstwę 2.

Protokół Spanning Tree został opracowany przez Radię Perlman w 1985 roku i do dziś stanowi fundament ochrony przed pętlami w sieciach Ethernet warstwy 2.

Jego ewolucja od STP (802.1D) przez RSTP (802.1w) do MSTP (802.1s) odzwierciedla rosnące wymagania dotyczące szybkości konwergencji i skalowalności.

RSTP, będący ulepszeniem STP, skraca czas regeneracji po awarii z 30-50 sekund do 1-3 sekund, co czyni go standardem we współczesnych sieciach.

Prezentacja koncentruje się na praktycznych aspektach wdrażania STP/RSTP – od zrozumienia algorytmu, przez diagnostykę, po konfigurację na urządzeniach Cisco i MikroTik.

Znajomość STP/RSTP jest niezbędna dla każdego administratora sieci, ponieważ praktycznie każda sieć LAN z więcej niż jednym przełącznikiem wymaga ochrony przed pętlami.

Nawet w małych sieciach przypadkowe połączenie dwóch przełączników dwoma kablami może doprowadzić do paraliżu całej infrastruktury.

2/30 Streszczenie

Protokół STP (Spanning Tree Protocol, IEEE 802.1D) zapobiega pętłom w sieciach Ethernet z redundantnymi połączeniami.

Algorytm STA (Spanning Tree Algorithm) wybiera jeden root bridge, a następnie określa role portów (Root Port, Designated Port, Blocked Port) tak, aby utworzyć topologię drzewa bez cykli.

Ramki BPDU są wymieniane między przełącznikami co 2 sekundy w celu utrzymania spójnej informacji o topologii.

RSTP (Rapid Spanning Tree Protocol, IEEE 802.1w) to udoskonalona wersja STP zapewniająca konwergencję w 1-3 sekundy dzięki mechanizmowi proposal-agreement oraz rolom Alternate i Backup.

RSTP jest kompatybilny wstecz ze STP i domyślnie włączony na nowoczesnych przełącznikach.

Mechanizmy PortFast, BPDU Guard i Root Guard zwiększają bezpieczeństwo i przyspieszają uzyskiwanie łączności przez hosty końcowe.

Zrozumienie algorytmu STA, budowy BPDU oraz procesu wyboru root bridge i ról portów jest kluczowe dla poprawnej konfiguracji i diagnostyki sieci przełączanych.

STP jest jednym z najważniejszych protokołów warstwy 2, ponieważ bez niego każda sieć z redundantnymi połączeniami uległaby paraliżowi w wyniku burzy rozgłoszeniowej.

RSTP, wprowadzony w 2001 roku jako IEEE 802.1w, stanowi odpowiedź na narastające wymagania dotyczące szybkości regeneracji sieci po awarii.

W sieciach korporacyjnych, gdzie aplikacje czasu rzeczywistego (VoIP, wideokonferencje) są wrażliwe na przerwy, czas konwergencji STP rzędu 30-50 sekund jest nieakceptowalny.

RSTP skraca ten czas do kilku sekund, a w optymalnych warunkach nawet poniżej 1 sekundy.

Współczesne przełączniki oferują dodatkowe mechanizmy ochrony warstwy 2, takie jak Loop Guard, UDLD i Root Guard, które uzupełniają działanie STP/RSTP.

Ich właściwe zastosowanie jest niezbędne w sieciach o wysokich wymaganiach niezawodnościowych.

3/30 Literatura

Książki

  1. Sieci komputerowe – Andrew S. Tanenbaum, David J. Wetherall, wyd. Rebis
  2. Routing i switching w sieciach Cisco – Krzysztof Pytel, wyd. WSIP
  3. Administrator sieci komputerowej. Sieci VLAN, STP, routing – Jarosław Szymanek, wyd. Helion
  4. Sieci Ethernet. Przełączniki i routing – Wojciech Kabaciński, wyd. Wydawnictwo Politechniki Poznańskiej

Źródła internetowe

  1. Dokumentacja Cisco – STP and RSTP Configuration – www.cisco.com
  2. MikroTik Wiki – Bridge, STP, RSTP – wiki.mikrotik.com
  3. IEEE 802.1D-2004 – standard STP/RSTP – www.ieee.org
  4. Materiały dydaktyczne Katedry Sieci Telekomunikacyjnych PŁ – www.kst.pl

Literatura dotycząca STP jest bogata i obejmuje zarówno klasyczne podręczniki akademickie, jak i specjalistyczne publikacje producentów sprzętu sieciowego.

Podręcznik Tanenbauma i Wetheralla oferuje systematyczne wprowadzenie do algorytmu STA i protokołu STP na tle całej warstwy łącza danych.

Dokumentacja Cisco zawiera szczegółowe opisy konfiguracji PVST+, RSTP i MSTP, a także mechanizmów zabezpieczających, takich jak BPDU Guard, Root Guard i Loop Guard.

MikroTik Wiki stanowi kompendium wiedzy o konfiguracji STP/RSTP w systemie RouterOS, w tym o filtrowaniu BPDU na mostach i sprzętowym przyspieszaniu.

Standard IEEE 802.1D-2004, który włączył RSTP (dawniej 802.1w) i MSTP, jest dokumentem normatywnym określającym wszystkie aspekty działania protokołu.

Dla zaawansowanych administratorów zalecana jest lektura oryginalnego standardu w celu zrozumienia szczegółów implementacyjnych.

4/30 Problem pętli w sieci L2
Definicja: Pętla w sieci L2 powstaje, gdy istnieje więcej niż jedna aktywna ścieżka między przełącznikami. Ramka Ethernet nie ma TTL – może krążyć bez końca.

Redundancja połączeń w sieci Ethernet jest konieczna do zapewnienia niezawodności – gdy jedno łącze ulegnie awarii, ruch może być przekierowany przez inne.

Jednak nadmiarowe łącza w sieci przełączanej bez zabezpieczenia powodują pętle (loops), które prowadzą do poważnych problemów.

Ramka Ethernet, w przeciwieństwie do pakietu IP, nie zawiera pola TTL (Time to Live).

Oznacza to, że ramka może krążyć w sieci w nieskończoność, jeśli istnieje pętla.

Każdy przełącznik, otrzymując ramkę na jednym porcie, flooduje ją na wszystkie pozostałe porty – w pętli ramka wraca do nadawcy i proces powtarza się lawinowo.

Pętle w sieci Ethernet warstwy 2 stanowią jedno z najpoważniejszych zagrożeń dla stabilności infrastruktury.

Główną przyczyną jest fakt, że ramki Ethernet nie mają licznika czasu życia (TTL), który w pakietach IP zapobiega nieskończonemu krążeniu.

W przypadku pętli ramka jest retransmitowana przez każdy przełącznik na wszystkie porty, co prowadzi do wykładniczego wzrostu liczby kopii.

W praktyce pętla może powstać przez przypadek – na przykład administrator łączy dwa przełączniki drugim kablem, zapominając o wcześniejszym połączeniu.

W ciągu kilku sekund sieć ulega całkowitemu paraliżowi, a jedynym ratunkiem jest fizyczne odłączenie jednego z kabli.

Dlatego STP jest domyślnie włączony na wszystkich zarządzalnych przełącznikach.

Wideo-monitoring, systemy VoIP i aplikacje czasu rzeczywistego są szczególnie wrażliwe na pętle, ponieważ nawet krótkotrwała burza rozgłoszeniowa powoduje utratę pakietów i przerwy w transmisji.

STP eliminuje te problemy, blokując nadmiarowe porty i tworząc topologię bez pętli.

5/30 Broadcast Storm – burza rozgłoszeniowa

Broadcast Storm (burza rozgłoszeniowa) to zjawisko lawinowego mnożenia się ramek broadcast w sieci z pętlą.

Proces przebiega następująco: host A wysyła ramkę ARP Request (broadcast) – trafia do przełącznika SW1, który flooduje ją na wszystkie porty.

Ramka dociera do SW2 i SW3, które również floodują.

Ponieważ sieć ma pętlę, ramka wraca do SW1, który flooduje ją ponownie.

W efekcie w ciągu kilku sekund każda ramka broadcast generuje tysiące kopii na sekundę.

Procesory wszystkich przełączników są w 100% zajęte obsługą ramek, łącza są całkowicie zapchane, a sieć przestaje działać.

Dochodzi także do MAC flappingu – przełączniki ciągle zmieniają wpisy w tablicy, ponieważ ten sam adres źródłowy pojawia się na różnych portach.

Broadcast Storm jest najgroźniejszym skutkiem pętli w sieci L2, ponieważ rozwija się błyskawicznie i samonapędza.

Każda ramka broadcast wchodząca w pętlę generuje kolejne kopie, które również wchodzą w pętlę, tworząc dodatnie sprzężenie zwrotne.

W ciągu kilku sekund łącze o przepustowości 1 Gbps może być całkowicie nasycone ruchem, uniemożliwiając jakąkolwiek komunikację.

W logach przełącznika pojawiają się komunikaty typu %SW_MATM-4-MACFLAP_NOTIF, a wydajność przełączania spada drastycznie, ponieważ CPU musi przetwarzać każdą zmianę.

Oprócz broadcast storm, pętla powoduje również wielokrotne dostarczanie ramek unicast do hosta docelowego.

Host otrzymuje wiele kopii tej samej ramki, co może zakłócić działanie protokołów wyższych warstw, szczególnie tych wrażliwych na duplikację pakietów (TCP).

6/30 STP – Spanning Tree Protocol (IEEE 802.1D)
Definicja: STP przekształca sieć z pętlami w drzewo rozpinające poprzez wybór jednego root bridge i blokowanie nadmiarowych portów. Działa w sposób przezroczysty dla hostów.

Spanning Tree Protocol został opracowany przez Radię Perlman w 1985 roku i zdefiniowany w standardzie IEEE 802.1D.

Celem STP jest przekształcenie fizycznej sieci z pętlami w logiczną topologię drzewa (spanning tree) bez cykli, poprzez zablokowanie niektórych portów.

STP działa w sposób całkowicie przezroczysty dla hostów końcowych.

Przełączniki samodzielnie wymieniają ramki BPDU (Bridge Protocol Data Units), wybierają root bridge, określają role portów (Root Port, Designated Port, Blocked/Alternate Port) i w razie awarii automatycznie przeliczają topologię.

Hosty nie wiedzą o istnieniu STP i nie muszą być w żaden sposób konfigurowane.

Algorytm Spanning Tree opiera się na trzech głównych krokach: wyborze root bridge, wyznaczeniu root portów na każdym non-root bridge oraz określeniu designated portów dla każdego segmentu sieci.

Porty, które nie pełnią żadnej z tych ról, zostają zablokowane, co eliminuje pętle w sieci.

STP zakłada, że sieć może mieć dowolną fizyczną topologię, ale po przeliczeniu algorytmu każdy przełącznik ma dokładnie jedną aktywną ścieżkę do root bridge.

W przypadku awarii któregokolwiek łącza lub przełącznika, algorytm jest uruchamiany ponownie i wybiera alternatywną ścieżkę.

Standardowy STP ma jednak poważną wadę – czas konwergencji wynosi od 30 do 50 sekund, co w nowoczesnych sieciach jest wartością niedopuszczalną.

Dlatego opracowano RSTP (Rapid STP), który skraca ten czas do 1-3 sekund, zachowując kompatybilność wsteczną.

7/30 BPDU – Bridge Protocol Data Units

Istnieją dwa typy BPDU.

BPDU (Bridge Protocol Data Units) to ramki zarządzające STP, wysyłane przez przełączniki w celu wymiany informacji o topologii.

BPDU jest enkapsulowana w ramce Ethernet z adresem docelowym 01:80:C2:00:00:00 (adres grupy mostów).

Ramki BPDU nie są forwardowane przez przełączniki – są odbierane i przetwarzane lokalnie.

Configuration BPDU – wysyłany przez root bridge co Hello Time (domyślnie 2 sekundy).

Zawiera: Root Bridge ID, koszt ścieżki do roota, Bridge ID nadawcy, Port ID, Hello Time, Max Age, Forward Delay oraz flagi (Topology Change).

TCN (Topology Change Notification) BPDU – wysyłany przez przełącznik, który wykrył zmianę topologii.

TCN jest potwierdzany przez najbliższy designated bridge i przekazywany do root bridge.

Ramka BPDU ma specyficzną strukturę różniącą się od zwykłej ramki danych.

Po nagłówku Ethernet (DA, SA, EtherType) następuje pole LLC (Logical Link Control) z DSAP=SSAP=0x42 identyfikującym STP.

Właściwe BPDU zaczyna się od Protocol Identifier (2 bajty, wartość 0 dla STP) i Protocol Version Identifier (1 bajt).

Główne pola Configuration BPDU to: BPDU Type (0x00 dla Config, 0x80 dla TCN), Flags (1 bajt – flagi TC i TCA), Root Identifier (8 bajtów – priorytet + adres MAC roota), Root Path Cost (4 bajty), Bridge Identifier (8 bajtów – priorytet + adres MAC nadawcy), Port Identifier (2 bajty – priorytet portu + numer), Message Age (2 bajty – czas życia BPDU), Max Age (2 bajty), Hello Time (2 bajty) i Forward Delay (2 bajty).

Ramki BPDU są wysyłane na adres multicast 01:80:C2:00:00:00, który jest adresem zarezerwowanym dla protokołów mostów.

Przełączniki nie forwardują ramek z tym adresem docelowym – są one przetwarzane lokalnie przez każdy przełącznik, co zapobiega niekontrolowanemu rozprzestrzenianiu się BPDU w sieci.

8/30 Wybór Root Bridge
Wyróżnienie: Root bridge = przełącznik z najniższym Bridge ID (priorytet + adres MAC). Administrator może go wymusić: spanning-tree vlan 1 root primary w Cisco IOS.

Bridge ID (BID) to 8-bajtowa wartość: priorytet (2 bajty, 0-65535, domyślnie 32768) + adres MAC (6 bajtów).

W przypadku równego priorytetu decyduje niższy adres MAC.

Administrator może wymusić wybór root bridge przez ustawienie niskiego priorytetu.

Wybór root bridge to pierwszy i kluczowy krok algorytmu STA.

Root bridge to przełącznik, który staje się korzeniem drzewa rozpinającego – wszystkie inne przełączniki (non-root bridges) układają swoją topologię względem niego.

Root bridge wysyła Configuration BPDU co Hello Time.

Każdy przełącznik na początku uważa siebie za root bridge i wysyła BPDU z własnym Bridge ID w polu Root Bridge ID.

Gdy otrzyma BPDU z niższym (lepszym) Bridge ID, przestaje uważać się za root i zaczyna propagować BPDU z cudzym Bridge ID.

Ostatecznie w całej sieci ustala się jeden root bridge.

Wybór root bridge ma kluczowe znaczenie dla wydajności sieci, ponieważ root bridge staje się centralnym punktem całego ruchu w topologii drzewa.

Bridge ID w standardzie STP składa się z dwóch części: 2-bajtowego priorytetu (domyślnie 32768, zakres 0-65535) i 6-bajtowego adresu MAC przełącznika.

W systemie Cisco z PVST+ (Per-VLAN Spanning Tree) 16-bitowe pole priorytetu dzieli się na 4 bity priorytetu mostu (krok 4096) i 12 bitów identyfikatora VLAN (Extended System ID).

Na przykład dla VLAN 10 z domyślnym priorytetem 32768 rzeczywista wartość w BPDU to 32768 + 10 = 32778.

Gdy administrator ustawia spanning-tree vlan 10 priority 4096, rzeczywista wartość w BPDU to 4096 + 10 = 4106.

Zaleca się, aby root bridge był przełącznikiem o największej wydajności i był umieszczony w centralnym punkcie sieci (warstwa dystrybucyjna lub szkieletowa).

9/30 Koszt ścieżki – Path Cost
Prędkość łączaKoszt (standard IEEE)Koszt (stary standard)
10 Mbps100100
100 Mbps1910
1 Gbps41
10 Gbps21
40 Gbps11
100 Gbps11

Koszt łącza zależy od jego prędkości.

Koszt ścieżki (Path Cost) w STP to miara odległości od danego przełącznika do root bridge.

Koszt jest sumą kosztów wszystkich łączy na drodze do root bridge.

Im niższy koszt, tym lepsza (krótsza/szybsza) ścieżka.

Koszt jest używany do wyboru root portu na każdym non-root bridge.

Przełącznik wybiera port z najniższym kosztem ścieżki do root bridge jako swój Root Port.

Koszt ścieżki w STP jest odwrotnie proporcjonalny do prędkości łącza – szybsze łącza mają niższy koszt.

Oznacza to, że STP preferuje ścieżki złożone z szybszych łączy, nawet jeśli są dłuższe (w sensie liczby przeskoków).

Na przykład ścieżka przez łącze 1 Gb/s (koszt 4) będzie preferowana nad ścieżką przez dwa łącza 100 Mb/s (koszt 19+19=38).

W praktyce koszt ścieżki oblicza się sumując koszty wszystkich łączy na drodze od danego przełącznika do root bridge.

Jeśli przełącznik SW2 ma bezpośrednie łącze 1 Gb/s do root bridge (koszt 4), a przez SW3 (1 Gb/s + 1 Gb/s = koszt 8), to Root Portem SW2 będzie port prowadzący bezpośrednio do root bridge.

W standardzie IEEE 802.1t (uzupełnienie 802.1D) wprowadzono 32-bitową skalę kosztów, gdzie koszt = 20 Tb/s / prędkość łącza.

Dla łączy 1 Gb/s koszt wynosi 20 000, a dla 10 Gb/s – 2 000.

Większość producentów (w tym Cisco) domyślnie używa starszej skali 16-bitowej (zgodnej z 802.1D-1998) dla kompatybilności.

10/30 Role portów w STP
  • Root Port (RP) – jedyny port na non-root bridge, który forwarduje ruch w kierunku root bridge. Wybierany na podstawie najniższego kosztu ścieżki do roota. Każdy non-root bridge ma dokładnie jeden RP.
  • Designated Port (DP) – port, który forwarduje ruch na danym segmencie sieci. Każdy segment (łącze między przełącznikami) ma jeden DP. Wszystkie porty root bridge są DP.
  • Alternate/Blocked Port – port, który otrzymuje gorsze BPDU (z wyższym kosztem). Jest zablokowany i stanowi zapasową ścieżkę. Gdy aktywna ścieżka ulegnie awarii, ten port może przejść w stan Forwarding.
  • Disabled – port administracyjnie wyłączony (shutdown) lub nieuczestniczący w STP.

W standardowym STP (802.1D) każdy port przełącznika pełni jedną z czterech ról.

Role portów w STP są wyznaczane przez algorytm STA w ściśle określonej kolejności.

Najpierw wybierany jest root bridge, następnie dla każdego non-root bridge wyznaczany jest Root Port (najlepsza ścieżka do roota).

Na koniec dla każdego segmentu sieci (łącza między dwoma przełącznikami) wyznaczany jest Designated Port.

Port Designated to port na danym segmencie, który ma niższy koszt ścieżki do root bridge.

Ponieważ root bridge ma koszt 0 do samego siebie, wszystkie jego porty automatycznie stają się Designated.

Na pozostałych segmentach porównuje się koszty obu przełączników – ten z niższym kosztem wygrywa.

Port Alternate (w Cisco określany jako Alternate lub Blocked) to port, który odbiera lepsze BPDU z innego przełącznika, co oznacza, że istnieje alternatywna ścieżka do root bridge przez inny przełącznik.

Port ten pozostaje zablokowany (nie forwarduje ramek danych), ale nasłuchuje BPDU.

W przypadku awarii głównej ścieżki, port Alternate może przejąć jej rolę.

11/30 Stany portów w STP
StanForwardowanie ramekNauka adresów MACOdbiór/przetwarzanie BPDU
BlockingNieNieTak (tylko odbiór)
ListeningNieNieTak
LearningNieTakTak
ForwardingTakTakTak
DisabledNieNieNie

Stan Forwarding: normalna praca.

W STP (IEEE 802.1D) port przechodzi przez pięć stanów.

Czas przejścia między stanami jest kontrolowany przez timery: Hello Time (2 s), Forward Delay (15 s) i Max Age (20 s).

Stan Blocking: port nasłuchuje BPDU, ale nie forwarduje danych i nie uczy się adresów MAC.

Czas w Blocking zależy od Max Age (20 s).

Stan Listening (15 s): port uczestniczy w wyborze ról, ale nie forwarduje.

Stan Learning (15 s): port uczy się, ale nie forwarduje.

Port nasłuchuje BPDU, ale nie wysyła żadnych danych.

Stany portów STP są zaprojektowane tak, aby zapobiec tymczasowym pętlom podczas zmiany topologii.

Port nie może przejść bezpośrednio ze stanu zablokowanego do forwardowania – musi przejść przez stany pośrednie, które dają czas na ustabilizowanie się topologii i naukę adresów MAC.

Stan Blocking to stan początkowy portu po włączeniu przełącznika.

Jeśli po upływie Max Age (20 s) port nadal otrzymuje BPDU z lepszym Bridge ID, pozostaje w Blocking.

Jeśli nie otrzymuje BPDU (lub otrzymuje gorsze), przechodzi do stanu Listening.

Stan Learning został wprowadzony, aby przełącznik mógł zbudować tablicę adresów MAC przed rozpoczęciem forwardowania.

Bez tego stanu pierwsze ramki po przejściu w Forwarding byłyby floodowane na wszystkie porty, powodując niepotrzebne obciążenie sieci. Łączny czas konwergencji STP wynosi 30-50 s (Max Age + 2 x Forward Delay).

12/30 Timery STP
TimerWartość domyślnaOpis
Hello Time2 sekundyOdstęp czasu między kolejnymi Configuration BPDU wysyłanymi przez root bridge. Im krótszy, tym szybsze wykrycie zmian topologii.
Max Age20 sekundMaksymalny czas przechowywania BPDU bez aktualizacji. Po upływie Max Age bez nowego BPDU, przełącznik uznaje łącze za martwe.
Forward Delay15 sekundCzas trwania stanów Listening i Learning. Łączny czas oczekiwania przed przejściem w Forwarding po zmianie topologii.

STP używa trzech timerów, które kontrolują szybkość wymiany BPDU i czas konwergencji.

Timery są ustawiane na root bridge i propagowane w BPDU do wszystkich przełączników w sieci.

Łączny czas konwergencji STP: Max Age + 2 x Forward Delay = 20 + 30 = 50 sekund.

W praktyce jest to bardzo długi okres, w którym sieć pozostaje bez pełnej łączności.

Forward Delay może być zmieniany w zakresie 4-30 sekund.

Timer Hello Time określa, jak często root bridge wysyła Configuration BPDU.

Domyślna wartość 2 sekundy oznacza, że każde łącze w sieci otrzymuje BPDU od root bridge co 2 sekundy, co pozwala na szybkie wykrycie awarii.

Jeśli przełącznik nie otrzyma BPDU przez Max Age (20 sekund = 10 pominiętych Hello), uznaje, że ścieżka do root bridge jest nieaktywna.

Timer Max Age określa, jak długo przełącznik przechowuje informacje o topologii otrzymane w BPDU bez potwierdzenia.

Wartość domyślna 20 sekund oznacza, że po 20 sekundach braku BPDU przełącznik inicjuje zmianę topologii.

Wartość ta może być zmieniana w zakresie 6-40 sekund, ale musi być dostosowana do Hello Time (zalecane: Max Age >= 2 x (Hello Time + 1)).

Timer Forward Delay określa czas trwania stanów Listening i Learning.

Domyślna wartość 15 sekund dla każdego stanu daje łącznie 30 sekund oczekiwania.

W tym czasie przełącznik zbiera informacje o topologii (Listening) i uczy się adresów MAC (Learning), zanim zacznie forwardować ramki.

13/30 Zmiana topologii – konwergencja STP
Wyróżnienie: Konwergencja STP trwa 30-50 s. W tym czasie sieć nie przekazuje ruchu na dotkniętych awarią łączach. To główna wada STP – motywacja do wdrożenia RSTP.

Gdy w sieci nastąpi zmiana topologii (awaria łącza, dodanie nowego przełącznika), STP musi ponownie przeliczyć drzewo rozpinające.

Proces ten nazywa się konwergencją i w standardowym STP trwa 30-50 sekund.

Przebieg zmiany topologii: Przełącznik wykrywa brak BPDU na porcie przez Max Age (20 s).

Uznaje łącze za nieaktywne i rozpoczyna ponowne przeliczanie STA.

Wybiera nowy Root Port (jeśli obecny stał się nieosiągalny) lub nowy Designated Port.

Port przechodzi przez stany: Blocked → Listening (15 s) → Learning (15 s) → Forwarding.

W tym czasie przełącznik wysyła TCN BPDU do root bridge, który odpowiada Configuration BPDU z flagą Topology Change.

Proces zmiany topologii w STP rozpoczyna się, gdy przełącznik wykryje zmianę stanu łącza (link down) lub nie otrzyma BPDU przez Max Age.

W przypadku awarii kabla przełącznik natychmiast wykrywa utratę nośnej (carrier loss) i rozpoczyna procedurę zmiany topologii.

W przypadku cichych awarii (np. jednostronne uszkodzenie łącza) konieczne jest odczekanie Max Age.

Po wykryciu zmiany przełącznik wysyła TCN BPDU do najbliższego designated bridge (w kierunku root bridge).

TCN jest potwierdzany przez TCA (Topology Change Acknowledgment) flagą w BPDU.

Root bridge po otrzymaniu TCN wysyła Configuration BPDU z flagą TC (Topology Change) ustawioną na 1 przez okres Forward Delay + Max Age (35 s).

Flaga TC w BPDU wymusza na wszystkich przełącznikach skrócenie czasu starzenia wpisów MAC z domyślnych 300 sekund do Forward Delay (15 sekund).

Dzięki temu tablice adresów MAC szybko dostosowują się do nowej topologii.

Po upływie czasu TC (Forward Delay + Max Age) root bridge wyłącza flagę TC i sieć wraca do normalnej pracy.

14/30 Ograniczenia standardowego STP
  • Wolna konwergencja – czas regeneracji po awarii wynosi 30-50 sekund. W nowoczesnych sieciach, gdzie aplikacje czasu rzeczywistego (VoIP, wideo) wymagają ciągłości transmisji, jest to wartość niedopuszczalna.
  • Jedna instancja dla wszystkich VLAN – klasyczny STP tworzy jedno drzewo rozpinające dla całej sieci. W sieci z wieloma VLAN oznacza to, że ten sam port jest blokowany dla wszystkich VLAN, nawet jeśli dla konkretnego VLAN mogłaby być lepsza alternatywna ścieżka.
  • Brak równoważenia obciążenia – tylko jedna ścieżka między przełącznikami jest aktywna. Pozostałe są zablokowane, co marnuje dostępne pasmo.

Standardowy STP (IEEE 802.1D) mimo swojej skuteczności ma kilka poważnych ograniczeń, które motywują do wdrażania nowszych wersji protokołu.

Ograniczenia STP wynikają głównie z jego wieku – protokół został zaprojektowany w połowie lat 80., gdy sieci Ethernet były znacznie prostsze, a wymagania dotyczące szybkości regeneracji dużo niższe.

W tamtym czasie 30-sekundowa przerwa w dostępie do sieci była akceptowalna, ponieważ głównymi aplikacjami były terminale i transfery plików.

Problem jednej instancji STP dla wszystkich VLAN został rozwiązany przez Cisco w protokole PVST+ (Per-VLAN Spanning Tree), który tworzy niezależne drzewo rozpinające dla każdego VLAN.

Pozwala to na blokowanie różnych portów dla różnych VLAN, co umożliwia równoważenie obciążenia.

PVST+ jest protokołem zastrzeżonym Cisco i wymaga enkapsulacji ISL lub 802.1Q.

Współczesne sieci wymagają szybkiej regeneracji mierzonej w sekundach, a nie dziesiątkach sekund.

RSTP (802.1w) rozwiązuje ten problem, oferując konwergencję w 1-3 sekundy.

Dla sieci z wieloma VLAN zaleca się MSTP (802.1s), który łączy zalety wielu instancji (jak PVST+) z niskim obciążeniem protokołowym.

15/30 RSTP – Rapid Spanning Tree (IEEE 802.1w)
Wyróżnienie: RSTP skraca czas konwergencji z 50 s do 1-3 s. Jest domyślnie włączony na nowoczesnych przełącznikach i w pełni kompatybilny wstecz ze STP.
Kluczowe usprawnienia RSTP: redukcja stanów portów do trzech (Discarding, Learning, Forwarding); wprowadzenie nowych ról portów (Alternate, Backup, Edge); mechanizm proposal-agreement umożliwiający błyskawiczne uzgodnienie topologii; przechowywanie informacji o alternatywnych ścieżkach dla natychmiastowego przejęcia po awarii.

RSTP (Rapid Spanning Tree Protocol, IEEE 802.1w) to udoskonalona wersja STP, która zapewnia znacznie szybszą konwergencję (1-3 s zamiast 30-50 s).

RSTP został opracowany w 2001 roku i w 2004 roku włączony do standardu IEEE 802.1D-2004.

Jest kompatybilny wstecz ze STP 802.1D i automatycznie dostosowuje się do starszych przełączników.

RSTP wprowadza fundamentalne zmiany w sposobie komunikacji między przełącznikami.

Podczas gdy standardowy STP polegał na timerach do określania momentu przejścia między stanami, RSTP wykorzystuje aktywną wymianę komunikatów między sąsiednimi przełącznikami (mechanizm proposal-agreement), co pozwala na natychmiastowe uzgodnienie nowej topologii.

W RSTP każdy przełącznik wysyła BPDU co Hello Time (2 s) niezależnie od tego, czy jest root bridge, czy nie.

W STP tylko root bridge generuje BPDU, a pozostałe przełączniki jedynie je propagują.

Dzięki temu RSTP szybciej wykrywa awarie sąsiednich przełączników – brak 3 kolejnych BPDU (6 s) jest interpretowany jako utrata sąsiada.

RSTP wprowadza również pojęcie portu krawędziowego (Edge Port), który odpowiada PortFast w Cisco.

Port Edge jest podłączony do hosta końcowego i natychmiast przechodzi w stan Forwarding bez przechodzenia przez proces STP.

Jeśli na porcie Edge pojawi się BPDU, port automatycznie traci status Edge i staje się zwykłym portem STP.

16/30 Stany portów w RSTP
Stan RSTPOdpowiednik w STPForwardowanieNauka MAC
DiscardingBlocking, Listening, DisabledNieNie
LearningLearningNieTak
ForwardingForwardingTakTak

RSTP redukuje liczbę stanów portów z pięciu do trzech, upraszczając maszynę stanów i przyspieszając konwergencję.

Stany RSTP są mapowane na stany STP dla zachowania kompatybilności wstecznej.

Stan Discarding w RSTP łączy trzy stany STP (Blocking, Listening, Disabled).

Port w stanie Discarding nie forwarduje ramek danych i nie uczy się adresów, ale może odbierać i przetwarzać BPDU.

RSTP nie używa timerów do przejścia Discarding → Forwarding – wykorzystuje mechanizm proposal-agreement do błyskawicznego uzgodnienia nowej topologii.

Redukcja liczby stanów w RSTP jest możliwa dzięki mechanizmowi proposal-agreement, który eliminuje potrzebę oczekiwania na timer.

W STP port musiał czekać w stanie Listening przez Forward Delay (15 s), aby upewnić się, że nie spowoduje pętli.

W RSTP przełącznik wysyła propozycję (proposal) do sąsiada, a ten odpowiada zgodą (agreement) – cały proces trwa milisekundy.

Stan Discarding w RSTP jest stanem domyślnym dla portu po włączeniu.

Port w Discarding nadal odbiera i przetwarza BPDU, co pozwala mu uczestniczyć w wyborze ról.

Gdy port otrzyma rolę Root lub Designated, może natychmiast (po uzgodnieniu z sąsiadem) przejść w stan Forwarding przez Learning.

Stan Learning w RSTP działa tak samo jak w STP – port uczy się adresów, ale nie forwarduje ramek danych.

W RSTP port może pozostać w Learning tylko przez krótki czas (zwykle kilka milisekund), ponieważ mechanizm proposal-agreement zapewnia, że topologia jest już ustalona przed rozpoczęciem nauki adresów MAC.

17/30 Role portów w RSTP – Alternate i Backup
  • Root Port (RP) – jak w STP: najlepsza ścieżka do root bridge.
  • Designated Port (DP) – jak w STP: najlepszy port na segmencie.
  • Alternate Port – port otrzymujący lepsze BPDU z innego przełącznika (alternatywna ścieżka do roota). W STP był to zwykły Blocked Port. W RSTP Alternate może natychmiast przejść w Forwarding, gdy obecny RP ulegnie awarii.
  • Backup Port – port otrzymujący lepsze BPDU z tego samego przełącznika (pętla w obrębie jednego urządzenia). Rzadko spotykany, ale również może szybko przejąć rolę DP.
  • Edge Port – port brzegowy podłączony do hosta końcowego. Natychmiast przechodzi w Forwarding. Odpowiednik PortFast w Cisco.

RSTP rozszerza role portów w porównaniu do klasycznego STP.

Role Root, Designated i Disabled pozostają bez zmian.

Nowe role Alternate i Backup umożliwiają szybkie przejęcie ruchu po awarii.

Edge Port to jeden z najważniejszych mechanizmów RSTP.

Zabezpiecza on przed przypadkowym utworzeniem pętli.

Rola Alternate Port w RSTP jest kluczowa dla szybkiej konwergencji.

Gdy obecny Root Port ulegnie awarii, przełącznik natychmiast promuje najlepszy port Alternate do roli Root Port, bez oczekiwania na timer.

Przełącznik przechowuje informacje o wszystkich alternatywnych ścieżkach w pamięci, co pozwala na natychmiastowe przełączenie.

Port Backup występuje rzadko – tylko w przypadku, gdy dwa porty tego samego przełącznika są połączone ze sobą (tworząc pętlę wewnętrzną) lub gdy do tego samego segmentu podłączone są dwa porty tego samego przełącznika przez hub.

W praktyce nowoczesne sieci przełączane (bez hubów) rzadko napotykają tę sytuację.

Port oznaczony jako Edge natychmiast przechodzi w stan Forwarding bez żadnej wymiany BPDU, co eliminuje opóźnienie przy podłączaniu hostów.

Jeśli na porcie Edge pojawi się BPDU (co oznacza, że podłączono inny przełącznik), port automatycznie traci status Edge i rozpoczyna normalną komunikację STP.

18/30 Mechanizm Proposal-Agreement w RSTP

Proces przebiega następująco:

Mechanizm proposal-agreement (PA) to najważniejsza innowacja RSTP, umożliwiająca błyskawiczną konwergencję bez oczekiwania na timery.

Gdy port przełącznika (oznaczmy go jako P1) ma zostać Designated Portem, wysyła do sąsiedniego przełącznika BPDU z ustawioną flagą Proposal.

Sąsiedni przełącznik otrzymuje BPDU z flagą Proposal na swoim porcie (oznaczmy go jako P2).

Jeśli port P2 ma zostać Root Portem (bo otrzymane BPDU ma lepszy Bridge ID), przełącznik natychmiast blokuje wszystkie swoje pozostałe porty, aby zapobiec pętli, i wysyła BPDU z flagą Agreement na porcie P2.

Po otrzymaniu Agreement, przełącznik P1 może natychmiast przejść w stan Forwarding na porcie P1 – bez czekania na Listening i Learning.

Cały proces trwa milisekundy, a nie sekundy.

Mechanizm proposal-agreement działa tylko między przełącznikami obsługującymi RSTP.

Gdy jeden z przełączników obsługuje tylko klasyczny STP, RSTP automatycznie przełącza się na komunikację zgodną z 802.1D dla tego portu (wykrywanie przez flagę Version w BPDU).

Proces PA jest inicjowany zawsze przez przełącznik, który chce ustawić swój port jako Designated.

Wysyłając Proposal, przełącznik informuje sąsiada: "chcę być Designated na tym segmencie – czy możesz potwierdzić, że będziesz Root?".

Sąsiad, jeśli zgadza się na tę rolę (bo ma gorszą ścieżkę do roota), odpowiada Agreement i natychmiast blokuje wszystkie swoje pozostałe porty, aby zapobiec tymczasowej pętli.

Po otrzymaniu Agreement, przełącznik inicjujący może bezpiecznie przejść w stan Forwarding, ponieważ wie, że sąsiad zablokował swoje porty i nie wyśle ramek, które mogłyby utworzyć pętlę.

Mechanizm ten jest szczególnie skuteczny przy inicjalizacji sieci (wszystkie przełączniki włączane jednocześnie) – topologia jest ustanawiana w ciągu kilku sekund, niezależnie od liczby przełączników.

19/30 PortFast, BPDU Guard i Root Guard
interface gigabitEthernet 0/1
 spanning-tree portfast
 spanning-tree bpduguard enable
exit
! PortFast + BPDU Guard na porcie access – standard w sieciach produkcyjnych

PortFast to funkcja Cisco (w RSTP – Edge Port), która pozwala portowi przełącznika natychmiast przejść w stan Forwarding zamiast czekać przez Listening i Learning (30 s).

Stosuje się ją na portach access podłączonych do hostów końcowych, gdzie nie ma ryzyka pętli.

BPDU Guard to mechanizm bezpieczeństwa, który wyłącza port (errdisable), gdy na porcie access zostanie odebrana ramka BPDU.

Zapobiega to sytuacji, w której ktoś podłączy przełącznik do portu access, co mogłoby zakłócić topologię STP.

Root Guard chroni root bridge przed zmianą – blokuje porty, które otrzymują BPDU z lepszym Bridge ID, zapobiegając przejęciu roli root bridge przez nieuprawniony przełącznik.

Gdy lepsze BPDU znikną, port wraca do normalnej pracy.

PortFast jest szczególnie przydatny w sieciach, gdzie hosty są często restartowane (np. w laboratoriach komputerowych) lub gdzie użytkownicy często podłączają i odłączają swoje komputery.

Bez PortFast każdy restart hosta wiązałby się z 30-sekundowym oczekiwaniem na uzyskanie łączności.

BPDU Guard jest kluczowym mechanizmem bezpieczeństwa warstwy 2, który uniemożliwia nieautoryzowane podłączenie przełącznika do sieci.

Gdy na porcie z włączonym BPDU Guard pojawi się BPDU, port przechodzi w stan errdisable i zostaje wyłączony.

Administrator musi ręcznie włączyć port poleceniem shutdown/no shutdown po usunięciu zagrożenia.

Zaleca się włączanie BPDU Guard na wszystkich portach access.

Root Guard działa inaczej niż BPDU Guard – nie wyłącza portu, ale ignoruje BPDU z lepszym Bridge ID.

Jeśli port z Root Guard otrzyma BPDU z niższym Bridge ID niż obecny root bridge, port przechodzi w stan Root-Inconsistent (zablokowany), ale nie zostaje wyłączony.

Root Guard chroni przed atakiem, w którym atakujący podłącza przełącznik z niskim priorytetem, próbując przejąć rolę root bridge.

20/30 MSTP – Multiple Spanning Tree (IEEE 802.1s)
Wyróżnienie: MSTP umożliwia równoważenie obciążenia między przełącznikami – różne VLAN mogą używać różnych ścieżek. Jest zalecany w sieciach z wieloma VLAN.

MSTP (Multiple Spanning Tree Protocol, IEEE 802.1s) to rozszerzenie RSTP umożliwiające tworzenie wielu niezależnych instancji drzewa rozpinającego (MSTI – Multiple Spanning Tree Instances) i mapowanie VLAN na te instancje.

MSTP łączy zalety PVST+ (równoważenie obciążenia per VLAN) z niskim obciążeniem protokołowym RSTP.

W MSTP przełączniki są grupowane w regiony MST.

W każdym regionie wszystkie przełączniki muszą mieć identyczną konfigurację mapowania VLAN na MSTI.

Komunikacja między regionami odbywa się przez CIST (Common and Internal Spanning Tree), który jest wspólną instancją STP łączącą wszystkie regiony w jedną topologię.

MSTP został zaprojektowany jako odpowiedź na ograniczenia PVST+ (Cisco), które tworzyło osobną instancję STP dla każdego VLAN.

W sieci z 1000 VLAN PVST+ musiałoby utrzymywać 1000 instancji STP, co powodowało ogromne obciążenie CPU przełączników.

MSTP rozwiązuje ten problem przez grupowanie VLAN w instancje MSTI.

W praktyce projektowej zaleca się stosowanie od 2 do 8 instancji MSTI, niezależnie od liczby VLAN.

Każda instancja MSTI tworzy własne drzewo rozpinające, co pozwala na równoważenie obciążenia – różne grupy VLAN mogą korzystać z różnych ścieżek między przełącznikami.

Na przykład MSTI 1 (VLAN 10-20) może używać ścieżki przez łącze A, a MSTI 2 (VLAN 30-40) przez łącze B.

Konfiguracja MSTP w Cisco IOS wymaga określenia regionu MST (nazwa + numer rewizji), mapowania VLAN na instancje i ustawienia priorytetów dla każdej instancji.

Polecenie spanning-tree mst configuration otwiera tryb konfiguracji MST, gdzie definiuje się mapowanie instance X vlan Y-Z i nazwę regionu.

21/30 Porównanie STP, RSTP, MSTP, PVST+
CechaSTP (802.1D)RSTP (802.1w)MSTP (802.1s)PVST+ (Cisco)
Czas konwergencji30-50 s1-3 s1-3 s30-50 s (lub 1-3 s z RSTP)
Liczba instancji11Wiele (MSTI)Jedna per VLAN
Stany portów533 (RSTP)5 (lub 3 z RPVST+)
Równoważenie obciążeniaNieNieTak (per instancja)Tak (per VLAN)
KompatybilnośćPodstawaWsteczna ze STPWsteczna z RSTP/STPTylko Cisco
Zalecany dlaMałych sieci domowychSieci firmowychDużych sieci z wieloma VLANSieci Cisco

Wybór protokołu zależy od skali sieci i wymagań.

W małych sieciach STP jest wystarczające.

W sieciach firmowych standardem jest RSTP.

W dużych sieciach z wieloma VLAN zaleca się MSTP.

Wybór odpowiedniego protokołu STP ma kluczowe znaczenie dla wydajności i niezawodności sieci.

W sieciach firmowych (SME) standardem de facto jest RSTP.

W sieciach domowych i małych biurach (SOHO) standardowe STP jest zwykle wystarczające, ponieważ topologia jest prosta, a liczba przełączników nie przekracza 2-3.

Praktycznie wszystkie zarządzalne przełączniki produkowane po 2005 roku domyślnie używają RSTP.

Zaleca się pozostawienie domyślnego protokołu RSTP i skonfigurowanie jedynie niezbędnych parametrów, takich jak priorytet mostu dla wyboru root bridge.

W dużych sieciach korporacyjnych i centrach danych MSTP jest preferowanym wyborem, ponieważ umożliwia równoważenie obciążenia między wieloma łączami przez mapowanie różnych VLAN na różne instancje MSTI.

MSTP jest również zalecany w sieciach z więcej niż 50 przełącznikami, gdzie liczba VLAN przekracza 100.

22/30 PVST+ i Rapid PVST+ w Cisco IOS
spanning-tree mode rapid-pvst
! Włączenie Rapid PVST+ (zalecane dla sieci z VLAN)

spanning-tree vlan 10,20 priority 4096
! Ustawienie priorytetu dla VLAN 10 i 20 (niski priorytet = root bridge)

interface gigabitEthernet 0/1
 spanning-tree portfast
 spanning-tree bpduguard enable
exit
! PortFast i BPDU Guard na porcie access

Aby sprawdzić topologię STP: show spanning-tree – wyświetla root bridge, role i stany portów dla każdego VLAN.

Cisco implementuje STP w dwóch wariantach: PVST+ (Per-VLAN Spanning Tree Plus) i Rapid PVST+ (oparty na RSTP).

PVST+ tworzy osobną instancję STP dla każdego VLAN, co pozwala na niezależną topologię i równoważenie obciążenia.

Rapid PVST+ to wersja wykorzystująca RSTP dla każdego VLAN.

Niższy priorytet zwiększa szansę na zostanie root bridge.

Wynik polecenia show spanning-tree zawiera kluczowe informacje diagnostyczne: adres MAC root bridge, priorytet, koszt ścieżki do roota, role portów (Root, Desg, Altn, Bckp), stany (FWD, BLK, LRN) oraz timery Hello, Max Age i Forward Delay.

W Cisco IOS domyślnym trybem STP jest PVST+ (Per-VLAN Spanning Tree Plus).

Aby przejść na szybszą wersję, należy wydać polecenie spanning-tree mode rapid-pvst w trybie konfiguracji globalnej.

Rapid PVST+ łączy zalety RSTP (szybka konwergencja) z PVST+ (osobna instancja dla każdego VLAN).

Polecenie spanning-tree vlan X priority Y ustawia priorytet mostu dla konkretnego VLAN.

Aby wymusić bycie root bridge, można użyć spanning-tree vlan X root primary, co ustawia priorytet na 24576 (jeśli obecny root ma wyższy priorytet) lub 4096 mniej niż obecny root.

Jest to podstawowe narzędzie do diagnostyki problemów z STP.

23/30 Konfiguracja STP w Cisco IOS – przykład
! SW1 – główny przełącznik (root bridge)
spanning-tree mode rapid-pvst
spanning-tree vlan 1 priority 4096

! SW2 – przełącznik dystrybucyjny
spanning-tree mode rapid-pvst
spanning-tree vlan 1 priority 16384

! PortFast + BPDU Guard na portach access (SW2)
interface range fastEthernet 0/1-20
 spanning-tree portfast
 spanning-tree bpduguard enable
exit
Wskazówka: Zawsze włączaj BPDU Guard na portach access. Zabezpiecza to przed nieautoryzowanym podłączeniem przełącznika do sieci.

Poniżej przykład konfiguracji STP w sieci z trzema przełącznikami (SW1 – root, SW2, SW3) z redundantnymi połączeniami.

Celem jest zapewnienie szybkiej konwergencji i ochrony przed nieautoryzowanymi przełącznikami.

SW2 ma priorytet 16384, a SW3 domyślny 32768.

W przykładzie SW1 ma najniższy priorytet (4096), więc zostaje root bridge.

W przypadku awarii SW1, root bridge zostanie SW2 (niższy priorytet niż SW3).

Taka konfiguracja zapewnia przewidywalną hierarchię przełączników.

PortFast na portach access eliminuje 30-sekundowe opóźnienie przy podłączaniu hostów.

BPDU Guard natychmiast wyłącza port, jeśli pojawi się na nim BPDU, co uniemożliwia atak VLAN hopping przez nieautoryzowane podłączenie przełącznika.

Aby sprawdzić poprawność konfiguracji, należy użyć show spanning-tree na każdym przełączniku.

Polecenie to pokazuje, który przełącznik jest root bridge (This bridge is root), koszt ścieżki do roota, role i stany portów oraz timery.

Jeśli root bridge nie jest tym, który został skonfigurowany jako primary, należy sprawdzić priorytety i ewentualne problemy z BPDU.

24/30 Diagnostyka STP w Cisco IOS
show spanning-tree
! Podstawowe informacje o STP dla VLAN 1

show spanning-tree vlan 10
! STP dla konkretnego VLAN (PVST+)

show spanning-tree interface gigabitEthernet 0/1
! Status i rola konkretnego portu

show spanning-tree detail
! Szczegółowe informacje (timery, BID, Port ID)

show spanning-tree root
! Wyświetla root bridge dla wszystkich VLAN

Root port – port prowadzący do roota.

Interpretacja wyniku show spanning-tree:Root ID – adres MAC i priorytet root bridge.

Bridge ID – adres i priorytet tego przełącznika.

Port role: Root (RP), Desg (DP), Altn (Alternate).

Port states: FWD (Forwarding), BLK (Blocking), LRN (Learning).

Podstawowe polecenia do diagnostyki STP w Cisco IOS:

Polecenie show spanning-tree jest najważniejszym narzędziem diagnostycznym do analizy STP.

Wynik zawiera sekcje: Root ID (identyfikator root bridge), Bridge ID (identyfikator tego przełącznika), timery (Hello, Max Age, Forward Delay) oraz listę interfejsów z ich rolami i stanami.

W sekcji interfejsów każdy port jest opisany przez: Type (Ethernet/GigabitEthernet), Role (Root/Desg/Altn/Backup), State (FWD/BLK/LRN), Cost (koszt ścieżki), Priority (priorytet portu) oraz Type (P2p dla łącza między switchami, Edge dla portu z PortFast).

Gdy wystąpi problem z STP, pierwszym krokiem diagnostycznym jest sprawdzenie show spanning-tree na root bridge.

Jeśli root bridge nie jest oczekiwanym przełącznikiem, sprawdź priorytety.

Jeśli porty są w stanie BLK zamiast FWD, sprawdź koszty ścieżek i BPDU.

Komunikat %SW_MATM-4-MACFLAP_NOTIF wskazuje na pętlę – sprawdź STP.

25/30 Konfiguracja STP/RSTP w RouterOS
/interface bridge add name=most1 protocol-mode=rstp
# Utworzenie mostu z RSTP (domyślnie)

/interface bridge set most1 priority=0x4000
# Ustawienie priorytetu (0x4000 = 16384 – priorytet niższy od domyślnego 32768, ułatwia wybór tego mostu na root)

/interface bridge port add bridge=most1 interface=ether1 edge=yes
# Port access z flagą edge (PortFast)

/interface bridge port add bridge=most1 interface=ether2 edge=yes bpdu-guard=yes
# Port access z edge + BPDU Guard

/interface bridge port print
# Wyświetlenie portów mostu z rolami STP

Można zmienić na STP lub wyłączyć.

W RouterOS (MikroTik) STP/RSTP konfiguruje się na interfejsie mostu (bridge).

Domyślnie most używa RSTP (protocol-mode=rstp).

Domyślnie protocol-mode=rstp zapewnia szybką konwergencję.

Domyślna wartość to 0x8000 (32768).

W RouterOS most (bridge) jest elementem warstwy 2, który może działać jako przełącznik z obsługą STP/RSTP.

Możliwe tryby to: none (STP wyłączone), stp (klasyczny 802.1D) i rstp (802.1w).

Priorytet mostu w RouterOS ustawia się w formacie szesnastkowym (0x0000-0xFFFF).

Aby przełącznik został root bridge, ustaw niższy priorytet, np.

0x4000 (16384) dla backup roota lub 0x1000 (4096) dla głównego roota.

Role portów w RouterOS są widoczne w poleceniu /interface bridge port print.

Kolumna role pokazuje: root (Root Port), designated (Designated Port), alternate (Alternate Port), backup (Backup Port), disabled (Disabled).

Kolumna edge wskazuje, czy port jest krawędziowy (PortFast).

Parametr bpdu-guard=yes włącza BPDU Guard, który wyłącza port przy odebraniu BPDU.

26/30 Loop Guard i UDLD – dodatkowa ochrona

Loop Guard zapobiega przejściu portu w stan Forwarding, gdy przestaje on otrzymywać BPDU (np. z powodu jednostronnej awarii łącza – link jest up, ale tylko w jednym kierunku).

Bez Loop Guard, port Alternate (który nie otrzymuje BPDU przez Max Age) mógłby przejść w Forwarding i utworzyć pętlę.

Loop Guard utrzymuje port w stanie Discarding, dopóki BPDU nie pojawią się ponownie.

UDLD to protokół warstwy 2 (Cisco), który wykrywa jednostronne połączenia, wysyłając ramki echo.

Jeśli urządzenie nie otrzyma odpowiedzi na ramkę UDLD w określonym czasie, uznaje łącze za jednostronne i blokuje port.

Loop Guard i UDLD (UniDirectional Link Detection) to mechanizmy uzupełniające STP/RSTP, chroniące przed pętlami, które mogą powstać mimo działania protokołu STP.

Loop Guard jest szczególnie przydatny na portach, które są Alternate lub Root, ponieważ to właśnie na tych portach może dojść do nieprawidłowego przejścia w Forwarding przy jednostronnej awarii łącza.

W Cisco IOS Loop Guard włącza się poleceniem spanning-tree guard loop na interfejsie.

UDLD działa w dwóch trybach: normal (ostrzega o problemie) i aggressive (blokuje port i wysyła okresowe ramki UDLD w celu weryfikacji).

W trybie aggressive UDLD może wykryć nawet jednostronne awarie na łączach światłowodowych, gdzie nośna jest obecna w obu kierunkach, ale dane nie przechodzą w jednym kierunku.

W RouterOS odpowiednikiem Loop Guard jest parametr horizon=1 ustawiany na interfejsie mostu, który zapobiega forwardowaniu między portami o tym samym horyzoncie.

Jednak w praktyce Loop Guard w RouterOS nie jest bezpośrednio dostępny – zaleca się monitorowanie stanu łączy i stosowanie mechanizmów wykrywania błędów na poziomie fizycznym.

27/30 Root Guard – ochrona root bridge
interface gigabitEthernet 0/24
 spanning-tree guard root
exit
! Root Guard na porcie trunk do sieci zewnętrznej
Wskazówka: Stosuj Root Guard na portach trunk, które łączą się z obszarami poza kontrolą administratora. Na portach access używaj BPDU Guard.

Root Guard to mechanizm bezpieczeństwa, który chroni istniejący root bridge przed przejęciem roli przez nieuprawniony przełącznik.

Działa na poziomie pojedynczego portu – jeśli na porcie z włączonym Root Guard pojawi się BPDU z lepszym (niższym) Bridge ID niż obecny root bridge, port przechodzi w stan Root-Inconsistent (zablokowany).

Root Guard jest szczególnie przydatny na portach trunk, które łączą się z sieciami zewnętrznymi lub z obszarami, gdzie administrator nie ma kontroli nad podłączanymi urządzeniami.

Zapobiega atakowi, w którym atakujący podłącza przełącznik z priorytetem 0 (lub bardzo niskim), aby przejąć rolę root bridge i przechwycić ruch sieciowy.

Root Guard działa na zasadzie "zaufaj, ale weryfikuj".

Gdy port z Root Guard otrzyma BPDU z lepszym Bridge ID, port przechodzi w stan Root-Inconsistent (zablokowany), ale przełącznik nie wysyła powiadomienia o zmianie topologii.

Oznacza to, że pozostała część sieci nie wie o problemie i działa normalnie.

Root Guard włącza się na portach, które nie powinny otrzymywać lepszych BPDU niż obecny root bridge.

Typowe zastosowania: porty łączące się z sieciami klientów, porty w strefach DMZ, porty podłączone do przełączników w oddziałach, gdzie lokalny administrator może przypadkowo skonfigurować niski priorytet.

Po usunięciu zagrożenia (gdy lepsze BPDU znikną), port automatycznie wraca do normalnej pracy po upływie Max Age + Forward Delay.

Root Guard nie wymaga interwencji administratora do przywrócenia portu, w przeciwieństwie do BPDU Guard, który wymaga ręcznego odblokowania portu.

28/30 Rozwiązywanie problemów z STP
ProblemObjawPrzyczyna i rozwiązanie
Broadcast stormSieć nie działa, 100% CPU na switchachSTP wyłączone lub pętla niewykryta. Sprawdź show spanning-tree. Włącz STP/RSTP.
MAC flappingKomunikaty MACFLAP_NOTIF w logachPętla w sieci lub zbyt szybkie przełączanie. Sprawdź role portów – szukaj nieprawidłowych przejść.
Wolna konwergencja30-50 s przerwy po awarii łączaUżywany STP zamiast RSTP. Zmień na spanning-tree mode rapid-pvst.
Nieprawidłowy root bridgeRoot bridge to nie ten przełącznikSprawdź priorytety. Użyj spanning-tree vlan X root primary na właściwym switchu.
Port w errdisablePort wyłączony (errdisable)BPDU Guard wykrył BPDU. Sprawdź, czy nie podłączono switcha do portu access. Włącz port: shutdown/no shutdown.

Najczęstsze problemy związane z STP i sposoby ich diagnozowania:

Diagnostyka problemów z STP wymaga systematycznego podejścia.

Pierwszym krokiem jest zawsze sprawdzenie show spanning-tree na root bridge, aby upewnić się, że topologia jest stabilna.

Jeśli root bridge zmienia się często, może to wskazywać na niestabilność łącza lub uszkodzenie kabla.

Należy sprawdzić, czy STP jest włączone na wszystkich przełącznikach i czy wszystkie porty mają prawidłowo przypisane role.

Jeśli port stałe zmienia rolę między Alternate a Root/Designated, może to wskazywać na uszkodzone łącze lub problem z BPDU.

W przypadku portu w stanie errdisable spowodowanego przez BPDU Guard, należy zidentyfikować źródło BPDU.

Jeśli podłączono legalny przełącznik, przenieś go na port trunk.

Jeśli podłączono nieautoryzowane urządzenie, usuń je i włącz port.

Po rozwiązaniu problemu: shutdown / no shutdown na interfejsie przywraca port do działania.

29/30 Najlepsze praktyki STP/RSTP
  • Używaj RSTP (lub Rapid PVST+) – standardowy STP jest zbyt wolny. RSTP zapewnia konwergencję w 1-3 s.
  • Zaplanuj root bridge – wybierz centralny, wydajny przełącznik jako root. Ustaw priorytet 4096 na głównym root i 16384 na zapasowym.
  • Włącz BPDU Guard na wszystkich portach access – zapobiega nieautoryzowanemu podłączeniu przełączników.
  • Włącz PortFast (Edge Port) na portach access – hosty natychmiast uzyskują łączność.
  • Stosuj Root Guard na portach trunk do sieci zewnętrznych – chroni przed przejęciem roli root bridge.
  • Ogranicz zasięg STP – w dużych sieciach używaj MSTP z regionami, aby zmniejszyć obciążenie protokołowe.
  • Monitoruj zmiany topologii – używaj SNMP i systemów monitorujących do wykrywania częstych zmian STP.

Zestawienie dobrych praktyk dotyczących konfiguracji STP/RSTP w sieciach produkcyjnych.

Wdrożenie najlepszych praktyk STP/RSTP jest kluczowe dla stabilności sieci.
Szczególnie ważne jest zaplanowanie hierarchii root bridge – w sieci z wieloma przełącznikami root bridge powinien znajdować się w warstwie szkieletowej lub dystrybucyjnej, a nie w warstwie dostępu.

BPDU Guard i PortFast powinny być włączone domyślnie na wszystkich portach access.

W Cisco IOS można to zrobić globalnie: spanning-tree portfast default i spanning-tree portfast bpduguard default.

W RouterOS odpowiednikiem jest edge=yes i bpdu-guard=yes w konfiguracji portu mostu.

W sieciach z wieloma VLAN zaleca się stosowanie MSTP (IEEE 802.1s) zamiast PVST+.

MSTP tworzy mniej instancji STP (zwykle 2-8), co zmniejsza obciążenie CPU przełączników przy zachowaniu możliwości równoważenia obciążenia.

Konfiguracja MSTP wymaga starannego planowania mapowania VLAN na instancje MSTI.

30/30 Podsumowanie

Najważniejsze wnioski:

  • STP (IEEE 802.1D) zapobiega pętłom w sieciach Ethernet przez blokowanie nadmiarowych portów – tworzy topologię drzewa rozpinającego.
  • Algorytm STA wybiera jeden root bridge (najniższy Bridge ID), root porty (najniższy koszt ścieżki) i designated porty (najlepszy przełącznik na segmencie).
  • Ramki BPDU są wymieniane co 2 s – zawierają informacje o topologii. Configuration BPDU (root bridge) i TCN BPDU (zmiana topologii).
  • Konwergencja STP trwa 30-50 s – to główna wada, którą eliminuje RSTP (1-3 s).
  • RSTP (802.1w) wprowadza mechanizm proposal-agreement, role Alternate/Backup/Edge i redukuje stany do Discarding/Learning/Forwarding.
  • MSTP (802.1s) umożliwia wiele instancji STP z mapowaniem VLAN – równoważenie obciążenia.
  • Mechanizmy ochronne: PortFast (natychmiastowe Forwarding), BPDU Guard (blokada portu przy BPDU), Root Guard (ochrona root bridge), Loop Guard (zapobieganie pętli przy jednostronnej awarii).
  • W nowoczesnych sieciach standardem jest RSTP (Cisco: Rapid PVST+). W sieciach z wieloma VLAN zaleca się MSTP.

W sieciach firmowych standardem jest RSTP.

STP/RSTP są fundamentalnymi protokołami warstwy 2, które umożliwiają budowanie niezawodnych sieci Ethernet z redundantnymi połączeniami.

Zrozumienie ich działania jest niezbędne dla każdego administratora sieci, ponieważ praktycznie każda sieć LAN z więcej niż jednym przełącznikiem wymaga ochrony przed pętlami.

Wybór odpowiedniego protokołu (STP, RSTP, MSTP) zależy od skali sieci i wymagań dotyczących szybkości konwergencji.

W sieciach domowych i małych firmach STP jest wystarczające.

W dużych sieciach korporacyjnych z wieloma VLAN zaleca się MSTP.

Mechanizmy zabezpieczające (PortFast, BPDU Guard, Root Guard, Loop Guard) powinny być standardowo włączone na wszystkich portach przełączników, aby chronić sieć przed nieautoryzowanymi urządzeniami i atakami na warstwę 2.

Regularne monitorowanie topologii STP za pomocą SNMP i systemów monitorujących pozwala na szybkie wykrywanie i rozwiązywanie problemów.