Wybierz swój język

Podstawy sieci z Cisco IOS. Moduł 2: Spanning Tree Protocol

Jedną z najpopularniejszych technologii warstwy drugiej, jaka stosowana jest w dzisiejszych sieciach LAN/MAN, a coraz częściej nawet WAN, jest technologia Ethernet (IEEE 802.3). Niestety, technologia ta sama w sobie nie umożliwia budowania sieci z nadmiarowymi połączeniami. Z punktu widzenia technologii Ethernet, tworzą one pętle w których ruch będzie krążył w nieskończoność. W efekcie ubocznym, powodować to będzie destabilizację tablic przełączania i dodatkowe obciążenie ruchem. Dotyczy to nie tylko połączeń pomiędzy przełącznikami tworzącymi pętlę, ale też połączeń do innych urządzeń w sieci. W technologii Ethernet nie ma odpowiednika dla funkcjonalności, jaką pełni pole Time To Live/Hop Limit w protokole IPv4/IPv6.

Omawiane tutaj protokoły nie tylko mają swoją rolę w budowie aktywnej topologii pomiędzy przełącznikami, gdzie istnieją nadmiarowe połączenia, ale są także świetną ochroną przed wszelkiego rodzaju pętlami od strony użytkowników sieci. Chronią one przed unieruchomieniem sieci w przypadku nieuważnego wpięcia dodatkowego okablowania i urządzeń.

Powyżej został zobrazowany efekt wysłania do sieci z nadmiarowym połączeniem pakietu rozgłoszeniowego. Pakiet taki będzie transmitowany na wszystkie porty oprócz tego, na którym został odebrany. Warto zwrócić uwagę nie tylko na rosnącą ilość pakietów, ale także na to, że tablica przełączająca przełącznika uczy się na podstawie źródłowego adresu MAC z ramki. Ten za to, gdy dojdzie do pętli ciągle widoczny jest za innym portem. Zatem nie dość, że adres MAC komputera H4 flapuje (pojawia się i znika) pomiędzy trzema różnymi portami, to dodatkowo losowa część ruchu może do niego nie docierać od razu lub w ogóle.

Jednym z rozwiązań wyżej opisanego problemu są protokoły drzew opinających, działające w warstwie drugiej modelu OSI/ISO. Umożliwiają one tworzenie redundantnych połączeń w sieciach przełączanych opartych o technologię Ethernet. Dzięki protokołom drzew opinającym, te redundantne połączenia mogą być wykorzystane jednocześnie do rozkładu ruchu, a w przypadku awarii połączenia podstawowego dla danej grupy ruchu, przejmować jego rolę.


Znajomość tych protokołów jest bardzo kluczowa. Nawet, jeżeli mamy IP Fabric opartą na routingu, korzystamy z technologii nakładkowych (ang. overlays) i kontrolerów SDN (Software Defined Network), to zawsze gdzieś tam na brzegu pojawią się kwestie powiązane z pętlami, instancjami STP, tunelowaniem przez IP Fabric wiadomości BPDU czy sposobie jej kooperacji w przypadku wykrycia TCN. Nie rozwijamy tutaj tych skrótów, jako że po przejściu tego modułu staną się one jasne. Niemniej, jeżeli omawiane tutaj podstawy podstaw nie będą dla nas klarowne, to przez resztę kariery nie będziemy rozumieć co klikamy i ustawiamy w tych super nowoczesnych, łatwych i intuicyjnych interfejsach kontrolerów SDN.

Inna rzecz, że nieznając podstaw tego co i jak działa, będzie nam ciężko znaleźć cokolwiek w konfiguracji ich interfejsów. A kiedy już to znajdziem to czego szukamy, to bez podstawowej wiedzy czy znajomości terminologii i tak na niewiele nam się to zda. Zapewne skończy się na losowej zmianie ustawień. Przy większych środowiskach taka sytuacja nie powinna mieć miejsca, gdyż tam liczy się precyzja i dokładność, a każda pomyłka jest bardzo "odczuwalna".


Algorytm protokołu Spanning Tree wybiera jeden punkt referencyjny dla całej sieci, a następnie lokalizuje wszystkie połączenia do niego. Kiedy połączenia te zostaną już zlokalizowane, decyduje które z nich mają pozostać aktywne, a które trzeba chwilowo zablokować. Połączenia, które zostały zablokowane pozostaną w takim stanie do czasu awarii połączenia podstawowego, kiedy to algorytm przywróci je do stanu aktywności. Poniżej został zobrazowany efekt działania algorytmu STP (Spanning Tree Protocol).

Protokoły drzew opinających używane w warstwie drugiej modelu OSI/ISO są dość szerokim zagadnieniem. Dlatego w tym module skupimy się na przedstawieniu ich oficjalnej implementacji, która to jest domyślnie uruchomiona na większości przełączników Ethernet. Mowa o protokole STP (ang. Spanning Tree Protocol) opisanym w IEEE 802.1D-1998. Następnie omówimy zmiany jakie zostały wprowadzone w IEEE 802.1t-2001 w związku z pojawieniem się VLAN i przejdziemy do PVSTP/PVSTP+.

STPs (Spanning Tree Protocols) jest rodziną protokołów działających w warstwie drugiej modelu OSI/ISO. Istnieje kilka wersji i rozszerzeń dla tego protokołu, które to poprawiają jego zbieżność, skalowalność i bezpieczeństwo. My w tym module skupimy się na STP, PVSTP i PVSTP+. Natomiast w skład rodziny tych protokołów głównie wchodzą oryginalne jego implementacje, jak:

  • STP (Spanning Tree Protocol)
  • RSTP (Rapid Spanning Tree Protocol)
  • MSTP (Multiple Spanning Tree Protocol)

Warto zaznaczyć, iż STP może działać również na innych technologiach warstwy drugiej modelu OSI/OSI, opisanych w dokumentach IEEE 802. Nie jest ograniczony w swojej implementacji do technologii Ethernet.


Algorytm Spanning Tree jest algorytmem rozproszonym, który wykonuje się jednocześnie na wielu urządzeniach w sieci. Aby możliwa była jego praca, STP musi umożliwiać wymianę informacji pomiędzy obsługującymi go urządzeniami. Do wymiany tych informacji stosowane są dwa rodzaje pakietów BPDU (Bridge Protocol Data Unit): Configuration BPDU oraz Topology Change Notification BPDU (TCN BPDU). Configuration BPDU będziemy nazywali zamiennie wiadomością konfiguracyjną. Budowa tych pakietów została przedstawiona poniżej, niemniej poszczególne pola zostaną omówione w dalszej części.

Configuration BPDU wykorzystywane jest podczas tworzenia aktywnej topologii sieci, a TCN BPDU w trakcie wykrycia w niej zmian. Wszystkie pakiety BPDU przenoszone przy użyciu technologii Ethernet korzystają z enkapsulacji IEEE 802.3. Wartość pola SSAP (Source Service Access Point) oraz DSAP (Destination Service Access Point) w nagłówku LLC wynosi 0x42.

Wartość 0x42 ma unikalną właściwość. Wygląda tak samo bez względu na wykorzystywaną kolejność bitów w oktecie - 0100 0010 - dzięki czemu unikało się zamieszania w środowiskach, gdzie stosowane było przełączanie z tłumaczeniem. Dla przykładu pomiędzy technologią Token Ring, a Ethernet – SR/TLB (Source-Routing/Translational Bridging).

Do transmisji BPDU stosowane są operacje tylko Typu 1 LLC, stąd pole Control zawiera wartość 0x03 (Unnumbered PDU czy U PDU). Ramka wysyłana jest z adresu MAC portu przełącznika (każdy port przełącznika posiada unikalny adres MAC), na adres MAC multicastowy 0180.C200.0000. Wszystko co jest zaadresowane na ten adres, trafia do warstwy wyższej obsługującej protokoły działające na przełączniku i nie jest bezpośrednio przekazywane na inne porty przełącznika.


Wspomnianym punktem referencyjnym, względem którego budowana jest cała topologia, jest przełącznik główny (Root Bridge) będący korzeniem drzewa opinającego. Na samym początku każdy z przełączników zakłada, że jest korzeniem drzewa opinającego i rozpoczyna wysyłanie Configuration BPDU. Wynika to z tego, że nie jest świadomy istnienia innych przełączników.

W wiadomości Configuration BPDU zawarte są informacje wykorzystywane do budowy aktywnej topologii, w tym wyboru przełącznika głównego dla całej sieci oraz przełącznika desgnowanego dla każdego z segmentów sieci. Informacje te zostały oznaczone czerwonym kolorem. Zostaną one bardziej szczegółowo omówione na kolejnych slajdach. Przełącznikiem desygnowanym (Designated Bridge) zostaje ten, który oferuje danemu segmentowi najlepszą drogę do przełącznika głównego.


W trakcie budowania aktywnej topologii dochodzi również do określenia roli portów, każdego z przełączników. Role określają relacje i umiejscowienie portów względem przełącznika głównego oraz to, czy mogą one przenosić ruch.

Każdy z portów przełącznika otrzymuje jedną z trzech ról:

  • Port główny („Root Port”) - R - jest to port na przełączniku, przez który prowadzi najlepsza droga do przełącznika głównego (port ten prowadzi w kierunku korzenia drzewa opinającego). Port ten przekazuje ruch.
  • Port desygnowany („Designated Port”) - D - jest to port w segmencie sieci, przez który prowadzi najlepsza droga do przełącznika głównego (port ten należy do przełącznika desygnowanego danego segmentu sieci i prowadzi on w kierunku liści drzewa opinającego). Port ten przekazuje ruch.
  • Port alternatywny („Alternate Port”) - A - są to wszystkie porty, które nie są portami głównymi ani desygnowanymi. Porty te nie przekazują ruchu. 

Wykorzystywane do tego celu informacje również znajdują się w wiadomości Configuration BPDU. Zostały one oznaczone na slajdzie czerwonym kolorem i zostaną bardziej szczegółowo omówione na kolejnych slajdach. 


Po wstępnej terminologii możemy w końcu przejść do tego, jak budowana jest aktywna topologia. Pierwszym etapem tworzenia aktywnej topologii jest wybór przełącznika głównego (Root Bridge). To względem niego będzie budowana cała reszta topologii. Wybór realizowany jest w oparciu o unikalny identyfikator przełącznika BID (Bridge Identifier). Pole Bridge Identifier ma 8 oktetów i składa się z dwóch części. Mniej znaczące 6 oktetów zawiera adres MAC przełącznika, co gwarantuje unikalność identyfikatora w odrębie sieci. Bardziej znaczące 2 oktety (Bridge Priority) umożliwiają ręczne ustalenie priorytetu przełącznika (0-65535), co daje administratorowi możliwość wpłynięcia na tworzoną topologię. Zalecana przez organizację IEEE domyślna wartość pola priorytetu przełącznika to 32768 (Bridge Priority). Budowę oraz umiejscowienie pola BID można zobaczyć poniżej.

Im mniejsza numerycznie jest wartość BID przełącznika, tym ma on wyższy priorytet. Przełącznikiem głównym w sieci zostanie ten, który posiada najwyższy priorytet, czyli najmniejszą wartość BID.

Przyjęliśmy, że najniższą numerycznie wartość identyfikatora przełącznika w naszej topologii ma przełącznik S1, a identyfikatory pozostałych przełączników zapisane są w relacji mniejszości: S1 < S2 < S3 < S4 < S5 < S6 < S7. 


Kolejnym bardzo istotnym parametrem przy tworzeniu aktywnej topologii jest Root Path Cost. Koszt ten zawiera w sobie sumę kosztów z portów głównych, na drodze od przełącznika głównego do przełącznika odbierającego Configuration BPDU.

Dla uproszenia, koszty wszystkich połączeń w omawianej przez nas przykładowej topologii są takie same i wynoszą 1. Powyżej widać też zestawienie zawierające zalecane przez organizację IEEE wartości kosztów dla poszczególnych prędkości łącz.


Po wybraniu przełącznika głównego, algorytm przechodzi do kolejnego etapu, którym jest wybór przełącznika desygnowanego (Designated Bridge) dla każdego z segmentów sieci oraz określenia roli poszczególnych portów. Przełącznikiem oraz portem desygnowanym dla danego segmentu sieci zostaje ten, który proponuje segmentowi sieci najniższy koszt dotarcia do przełącznika głównego (Root Path Cost) czy inaczej, najlepszą drogę do przełącznika głównego.

Wszystkie włączone porty przełącznika głównego otrzymują rolę portów desygnowanych (D).

Portem głównym (R) na przełączniku desygnowanym zostaje ten, którego wartość kosztu ścieżki do przełącznika głównego jest najniższa. Jeżeli istnieją dwa porty, które oferują identyczny koszt dotarcia do przełącznika głównego, wtedy dodatkowo brane pod uwagę są wartości pól Bridge Identifier z Configuration BPDU (mniejsza numerycznie wartość zwycięża).


Wyobraźmy sobie teraz sytuację, w której pomiędzy przełącznikiem S4 i S7 znajdują się dwa połączenia. Configuration BPDU wysłane przez porty przełącznika S4, będzie zawierało te same wartości Root Path Cost i Bridge Identifier. W takim przypadku, dodatkowo brane są pod uwagę wartości PID (Port Identifier) z otrzymanych Configuration BPDU. Parametr ten składa się z dwóch oktetów, podzielonych na dwie części. Mniej znaczący 1 oktet zawiera unikalny w ramach przełącznika identyfikator portu, przy czym wartość zero nie jest wykorzystywana. Bardziej znaczący 1 oktet daje możliwość ręcznego przypisania priorytetu portowi (0-255), co umożliwia wpłynięcie na tworzoną topologię (zalecana przez organizację IEEE domyślna wartość to 128).

Im mniejsza numerycznie jest wartość PID portu, tym ma on wyższy priorytet. Kiedy rozpatrywany jest ten parametr w celu wyboru portu głównego lub desygnowanego, to zostanie nim ten port, który odbierze Configuration BPDU z PID o najwyższym priorytecie, czyli najmniejszej numerycznie wartości PID. W naszym przykładzie przyjęliśmy relację: PID(S4(P1)) < PID(S4(P2)).


Może też zdarzyć się sytuacja, w której wartości PID z otrzymanych Configuration BPDU będą takie same. Załóżmy, że pomiędzy przełącznikiem S4 i S7 znajduje się przełącznik nieobsługujący protokołu STP lub koncentrator (ang. hub). Przełącznik S4 jest do niego wpięty jednym kablem, a przełącznik S7 dwoma. Otrzymywane Configuration BPDU na obydwóch portach przełącznika S7 zawiera te same wartości parametrów Root Path Cost, BID i PID. Poniższy rysunek obrazuje taką sytuację.

W takim przypadku brane pod uwagę są lokalne wartości PID portów, które zawsze gwarantują rozstrzygnięcie wyboru. W naszym przykładzie przyjęliśmy relację: PID(S7(P1)) < PID(S7(P2)). W taki sposób zostaje zbudowana aktywna topologia. Jeśli dojdzie w niej do zmian, to część lub jej całość będzie musiała zostać zweryfikowana i cała lub część procedury wykonywana jest na nowo.


Poniżej znajduje się zestawienie i podsumowanie tych pięciu omówionych przed chwilą parametrów czy też reguł rozstrzygających, wykorzystywanych podczas budowy aktywnej topologii. Nazywane są one wektorem priorytetu (Priority Vector).

  1. Preferowana mniejsza wartość Root Identifier (RID) z otrzymanego Configuration BPDU
  2. Preferowana mniejsza wartość Root Path Cost (wartość z Configuration BPDU + koszt portu).
  3. Preferowana mniejsza wartość Bridge ID z otrzymanego Configuration BPDU.
  4. Preferowana mniejsza wartość Port ID z otrzymanego Configuration BPDU.
  5. Preferowana mniejsza wartość Port ID portu lokalnego przełącznika.

Są one sprawdzane zawsze w tej samej kolejności. Jeśli wcześniejsza reguła wyłoni zwycięzcę, to pozostałe nie są już sprawdzane.

Na wektor priorytetu można patrzeć jak na jedną dużą liczbę, której najbardziej znaczącym elementem jest Root Bridge Identifier. Ma on największy wpływ na wartość tej liczby, jako iż mieści się w jej najbardziej znaczących bitach. 


Na początku każdy z przełączników zakłada, że sam jest korzeniem drzewa opinającego. Wynika to z faktu, że przełącznik ten nie usłyszał jeszcze o żadnym innym przełączniku w sieci. Zatem uznaje, że jego BPDU jest najlepsze we wszystkich segmentach sieci, do których przyłączone są jego porty. W związku z tym, że wszystkie uruchomione porty przełącznika głównego są portami desygnowanymi, to przenosi on je do stanu Listening i rozpoczyna przez nie transmisję Configuration BPDU. Wiadomości te wysyłane są co czas Hello Time, który domyślnie wynosi 2 sekundy. Dzięki takiemu podejściu, przełączniki mogą usłyszeć się w każdym z segmentów i mogą wspólnie wybrać przełącznik główny. Stan ten obrazuje pierwszy rysunkek "Zaraz po włączeniu". 

W stabilnej topologii, Configuration BPDU generowane są tylko przez przełącznik główny co czas Hello Time. Pozostałe przełączniki transmitują je tylko na skutek wcześniejszego odebrania Configuration BPDU na swoim porcie głównym. Zostało to zobrazowane na rysunku podpisanym "Stabilna topologia". Podejście takie sprawia, że sieć łatwo może się sama zrekonfigurować w przypadku utraty połączenia do korzenia drzewa opinającego. 


Automatyczna rekonfiguracja aktywnej topologii jest możliwa dzięki zaimplementowaniu mechanizmu starzenia się wiadomości Configuration BPDU, który realizowany jest w oparciu o pola Message Age i Max Age. Końcowa wartość licznika ważności wiadomości konfiguracyjnej ustawiana jest na wartość pola Max Age, a początkowa na wartość z pola Message Age. Realizowane jest to dla każdego portu, który odbiera Configuration BPDU.

Początkowa wartość Message Age wynosi 0 i jest zwiększana o 1 przez każdy kolejny przełącznik na drodze od korzenia drzewa opinającego w stronę jego liści. Do powiększenia tej wartości dochodzi dopiero w trakcie wysyłania Configuration BPDU.

Jeśli Max Age ma standardową wartość 20 sekund i odebraliśmy Configuration BPDU z wartością pola Message Age równą 2, to wiadomości konfiguracyjna straci ważność po 18 sekundach. Do powyższej sytuacji może dojść, kiedy pomiędzy dwoma przełącznikami znajduje się koncentrator lub przełącznik nieobsługujący STP. Przełącznik przestaje wtedy odbierać Configuration BPDU, ale nadal widzi że link w stronę przełącznika głównego jest aktywny. Dopiero po minięciu licznika czasu ważności wiadomości konfiguracyjnej, port może przejść do stanu Listening i przez stan Learning, udać się do stanu Forwarding.

Proces starzenia się wiadomości konfiguracyjnej ilustruje powyższy slajd. Zostało to także zobrazowane na slajdzie poniżej, gdzie widać stan przejścia portu przez różne stany i strzałkę, oznaczającą minięcie licznika przetrzymywanej wiadomości konfiguracyjnej.


Zanim porty będą mogły rozpocząć typową pracę, tj. uczenie się adresów MAC i przekazywanie ramek, muszą jeszcze przejść przez kilka stanów. Porty, które otrzymały rolę portu alternatywnego, przechodzą do stanu Blocking. Pozostałe porty, które będą uczestniczyły w aktywnej topologii (porty desygnowane i główne) przechodzą przez stany Listening, Learning do stanu Forwarding. Porty wyłączone znajdują się w stanie Disabled. Przejście portu do stanu przekazywania zostało zilustrowane na poniższym obrazku. Widać na nim, iż jest ono opóźniane każdorazowo o czas Forward Delay, którego domyślna wartość wynosi 15 sekund.

Stan każdego z portów określa jak powinien wyglądać proces odbioru oraz transmisji ramek, Configuration BPDU oraz to czy port powinien uczestniczyć w aktywnej topologii. Każdy z portów może znajdować się w jednym z pięciu stanów: Blocking, Listening, Learning, Forwarding oraz Disabled. Poniżej stany te zostały opisane bardziej szczegółowo:

  • Blocking - port znajdujący się w tym stanie nie bierze udziału w procedurze przekazywania ramek oraz uczeniu tablicy przełączania. Zabezpiecza to przed duplikacją ramek, gubieniem ramek, burzami rozgłoszeniowymi oraz niestabilnością tablic przełączania. Port ten nie wysyła BPDU, ale powinien je odbierać. Do tego stanu port może przejść z dowolnie innego stanu na skutek odebrania BPDU informującego o tym że inny z portów, jest portem desygnowanym segmentu sieci, do której zapięty jest ten port. Ze stanu Blocking port może wyjść na skutek minięcia licznika protokołu na tym lub innym porcie dla przetrzymywanej wiadomości konfiguracyjnej i wejść do stanu Listening. Dodatkowo ze stanu Blocking port może przejść do stanu Disabled poprzez ręczne jego wyłączenie.
  • Listening - w tym stanie port przygotowuje się do przekazywania ramek, przy czym funkcja ta, jak i funkcja uczenia tablicy przełączania, ze względu na możliwość powstania chwilowej pętli są zablokowane (aktywna topologia nie jest jeszcze ustabilizowana). Port ten może wysyłać i odbierać BPDU i jest brany pod uwagę podczas wyliczania aktywnej topologii. Podczas tego stanu odbywa się wyliczanie aktywnej topologii. Do tego stanu port przełącznika przechodzi ze stanu Blocking na skutek odpowiedniej reakcji STP, określającej że port ten powinien przekazywać ramki lub na skutek minięcia licznika wiadomości konfiguracyjnej. Ze stanu Listening port może wyjść poprzez minięcie odpowiedniego licznika protokołu i wejść do stanu Learning. Wejść do stanu Blocking na skutek odebrania BPDU informującego o tym że inny z portów, jest portem desygnowanym segmentu sieci, do której zapięty jest ten port. Dodatkowo ze stanu Listening port może przejść do stanu Disabled poprzez ręczne jego wyłączenie.
  • Learning - w tym stanie port przygotowuje się do przekazywania ramek, przy czym funkcja ta, ze względu na możliwość powstania chwilowej pętli w tym stanie, jest zablokowana (aktywna topologia nie jest jeszcze ustabilizowana). Funkcja uczenia tablicy przełączania jest aktywna, dzięki czemu możemy zminimalizować efekt niepotrzebnego przesyłania niektórych ramek na wszystkie porty, kiedy tablica przełączania jest jeszcze niepełna. Port ten może wysyłać i odbierać BPDU i jest brany pod uwagę podczas wyliczania aktywnej topologii. Do tego stanu port przełącznika przechodzi ze stanu Listening na skutek minięcia odpowiedniego licznika. Ze stanu Learning port może wyjść poprzez minięcie odpowiedniego licznika protokołu i wejść do stanu Forwarding. Wejść do stanu Blocking na skutek odebrania BPDU informującego o tym że inny z portów, jest portem desygnowanym segmentu sieci, do której zapięty jest ten port. Dodatkowo ze stanu Learning port może przejść do stanu Disabled poprzez ręczne jego wyłączenie.
  • Forwarding - port w tym stanie realizuje funkcje przełączania ramek oraz uczenia tablicy przełączania. Port ten może wysyłać i odbierać BPDU i jest brany pod uwagę podczas wyliczania aktywnej topologii. Do tego stanu port przełącznika przechodzi ze stanu Learning na skutek minięcia odpowiedniego licznika. Ze stanu Forwarding port może wejść do stanu Blocking na skutek odebrania BPDU informującego o tym że inny z portów, jest portem desygnowanym segmentu sieci, do której zapięty jest ten port. Dodatkowo ze stanu Forwarding port może przejść do stanu Disabled poprzez ręczne jego wyłączenie.
  • Disabled - port w tym stanie nie realizuje funkcji przełączania ramek, uczenia tablicy przełączania oraz żadnych operacji STP. Port ten nie wysyła oraz nie odbiera BPDU i nie jest brany pod uwagę podczas wyliczania aktywnej topologii. Do tego stanu można wejść z jakiegokolwiek stanu po przez ręczne wyłączenie portu.

W klasycznym STP rola portu jest powiązana z jego stanem. Port, który jest w stanie Blocking lub Listening odrzuca ramki i nie uczy się adresów MAC. Jest to realizacja dokładnie takich samych funkcji. Różni te porty ich rola. Port alternatywny nie uczestniczy w aktywnej topologii, stąd zawsze jest w stanie Blocking. Port, który jest w stanie Listening otrzymał rolę portu desygnowanego lub głównego i uczestniczy w aktywnej topologii. Port desygnowany i główny nigdy nie przebywa w stanie Blocking w STP. 


Wartości czasów Forward Delay (domyślnie 15 sekund), Hello Time (domyślnie 2 sekundy) oraz Max Age (domyślnie 20 sekund) można skonfigurować na każdym z przełączników. Niemniej, w stabilnej topologii wykorzystywane są tylko wartości, jakie zostały ustawione na przełączniku głównym. Wstawia on je do wysyłanego Configuration BPDU i następnie są one przekazywane czy propagowane bez modyfikacji w kierunku liści drzewa opinającego.

Z powyższego wynika, że w najbardziej niekorzystnym przypadku potrzeba aż 50 sekund do ustabilizowania się topologii po awarii. Natomiast, gdy przełączniki są uruchamiane pierwszy raz lub gdy zostanie wykryta zmiana w topologii, to potrzebne jest tylko 30 sekund. Jeżeli port zmieni status na "down", to można od razu przeterminować na nim wiadomość konfiguracyjną.

Zatem przyjmuje się, że domyślny czas stabilizacji aktywnej topologii w klasycznym STP wynosi od 30 do 50 sekund.


Pierwsza wersja protokołu STP (Spanning Tree Protocol) dla technologii Ethernet została opracowana 1985 roku przez Radia Perlmana z Digital Equipment Corporation (DEC). Dopiero w 1990 roku został zatwierdzony przez IEEE oficjalny dokument opisujący STP - IEEE 802.1D-1990. Bazował on na implementacji stworzonej w firmie DEC. Wtedy nie istniała jeszcze technologia VLAN. Zostało też przyjęte założenie, że przełącznik nie będzie miał więcej niż 255 portów.

Ostatni dokument IEEE przedstawiający klasyczne STP został zatwierdzony 28 czerwca 1998 roku - IEEE 802.1D-1998. Zawiera on w sobie zapowiedź kolejnego standardu, który będzie opisywał działanie STP w środowisku z obsługą technologii VLAN. Mowa była o standardzie IEEE 802.1Q, zatwierdzony 8 grudnia 1998 roku. Standard IEEE 802.1Q-1998 nie wniósł zbyt wiele do samego protokołu STP. Niemniej, zdefiniował on wymogi stawiane protokołowi STP w sieciach z obsługą VLAN. Wynikało z niego, że powinna działać tam pojedyncza instancja STP dla wszystkich VLAN. Znalazła się też informacja, że standard nie wyklucza w przyszłości rozszerzenia do wielu instancji, a nawet trwają już nad tym prace. Według dokumentu 802.1Q-1998, pakiety BPDU powinny być przesyłane bez znaczników, tak aby odebrać je mógł każdy przełącznik załączony do segmentu sieci (również taki, która nie obsługuje VLAN). 


Kolejny dokument IEEE 802.1t-2001, który został zatwierdzony 17 marca 2001 roku, wniósł sporo zmian do STP. Dzięki niemu poprawiona została skalowalność i funkcjonalność STP. Zmianie uległa definicja wartości czasu Hold Time. Wcześniej umożliwiała ona wysyłanie na porcie tylko jednego BPDU w okresie 1 sekundy. Obecnie jest to nie więcej niż trzy BPDU w okresie Hello Time (domyślnie 2 sekundy). W związku z uwzględnieniem pracy w środowisku obsługującym VLAN, została zmieniona budowa pól Bridge Identifier oraz Port Identifier. Bridge Identifier został rozszerzony o pole Extended System ID. Wartość tego pola składa się z 12 bitów i umożliwia przyjmowanie 4094 (0 i 4095 są zarezerwowane) różnych identyfikatorów dla pojedynczego adresu MAC.

Wcześniej każdy dodatkowy BID dla przełącznika wiązał się z oddzielnym adresem MAC, co było dość kłopotliwe biorąc pod uwagę to, w jaki sposób przyznawane są te adresy. Trzeba wykupić OUI (Organizationally Unique Identifier) - pierwsze 3 oktety, a następnie dbać o unikalność drugiej części adresu - kolejne 3 oktety. Na slajdzie widać budowę nowego pola BID.

Unikalny identyfikator przełącznika dla danego VLAN zajmuje teraz 60 najmniej znaczących bitów, a tylko 4 najbardziej znaczące bity umożliwiają ręczne określanie wartości priorytetu. Aby zachować kompatybilność wstecz, wartości jakie może przyjmować Bridge Priority są nadal z takiego samego zakresu, to jest od 0 do 65535. Przy czym teraz mamy możliwość konfigurowania tylko 16 różnych wartości. W tym samym zakresie, to jest od 0 do 61440, ale z krokiem 4096.

Port Identifier składa się nadal z dwóch pól, ale zmienił się ich rozmiar. Pole Port Priority składa się teraz z 4 bitów, a pole Port Number z 12 bitów. Zmiana ta umożliwia obsługę do 4095 portów przez przełącznik (wartość 0 nie jest używana). Aby zachować kompatybilność wstecz, wartości jakie może przyjmować Port Priority są nadal z zakresu od 0 do 255. Przy czym mamy możliwość konfigurowania 16 różnych wartości z krokiem 16, w przedziale od 0 do 240.

W polach PID oraz BID zostały wydzielone pola, które zawierają po 12 bitów. Jest to maksymalna, dozwolona liczba VLAN jaka została zdefiniowana w dokumencie IEEE 802.1Q-1998. Zmiana pół BID i PID związana była z przygotowywaniem dokumentu IEEE 802.1s-2002, który miał być dodatkiem do wcześniejszego standardu IEEE 802.1Q-1998. Jego zadaniem było opisanie wykorzystania wielu instancji drzew opinających, które potrzebują różnej wartości BID dla każdego VLAN. Najbardziej znaczące bity pół PID oraz BID nadal są konfigurowalne, dzięki czemu mamy ciągle wpływ na budowę aktywnej topologii.

Kolejna zmiana wprowadzona w dokumencie IEEE 802.1t-2001 związana jest z procesem odbiorczym wiadomości konfiguracyjnej. Zostało dodane, że jeśli wartość Bridge Identifier i Port Identifier odebranej wiadomości konfiguracyjnej są wartościami jakie mogły zostać wysłane przez ten port, to wiadomość konfiguracyjna powinna zostać odrzucona. Wcześniej istniało jedynie ograniczenie co do wielkości oraz czasów Message Age i Max Age. Configuration BPDU nie mogło zawierać mniej niż 35 oktetów, a to co powyżej 35 oktetów było ignorowane. Dodatkowo Message Age musiało być mniejsze od Max Age. Dodatek ten zabezpiecza przed sytuacją przyjęcia własnej wiadomości konfiguracyjnej na skutek powstałej pętli.

Zmianie uległy również domyślne wartości kosztów na portach. Przeznaczone na tę wartość pole w wiadomości konfiguracyjnej posiada aż 4 oktety. Niemniej standard IEEE 802.1D-1998 ograniczył zakres możliwych wartości kosztu dla pojedynczego portu do 65535. W związku z pojawieniem się łącz o szybszych prędkościach, umożliwiono korzystanie z wartości do aż 200,000,000. Korzystanie z maksymalnej wartości tego zakresu gwarantuje nam to, że całkowity koszt dotarcia do przełącznika głównego nie przekroczy końcowej wartości, na ścieżce prowadzącej przez maksymalnie 20 przełączników.

Bardzo ważne jest to, aby wszystkie przełączniki w sieci korzystały ze spójnych wartości kosztów dla odpowiednich prędkości portów. Inaczej może dojść do nieoptymalnego wyboru aktywnej topologii. Stąd na przełącznikach posiadających stare wartości domyślnych kosztów, należy wprowadzić ręczne modyfikacje.

Zmiany wprowadzone w dokumentach IEEEE 802.1Q-1998 i IEEE 802.1t-2001 nie mają większego wpływu na działanie protokołu STP, przez co są kompatybilne wstecz. Wprowadzone też zostały usprawnienia dla portów brzegowych (Edge Port), o których powiemy sobie dalej. Najważniejsze jest to, że protokół został przygotowany do obsługi wielu VLAN i szybszych portów. Zmiany wprowadzone w tych dokumentach miały wypływ na używane narzędzia konfiguracyjne, co zobaczyć będzie można dalej.


Zwykle w jednej sieci fizycznej działa wiele VLAN. Pojedyncza instancja drzewa opinającego z którego korzystają wszystkie sieci VLAN określana jest często jako Mono Spanning Tree (lub czasem nie zawsze poprawnie jako Common Spanning Tree). Nie należy mylić tej nazwy z Multiple Spanning Tree Protocol (MSTP). Stąd, grupa przełączników obsługujących protokół kompatybilny z tradycyjnym STP IEEE 802.1D-1998 nazywana jest regionem MST (Mono Spanning Tree).

Wykorzystanie Mono Spanning Tree zwykle nie jest dobrym rozwiązaniem. Plusem jest małe obciążenie CPU przełączników przy dużej liczbie sieci VLAN. Wadą brak możliwości realizacji równoważenia obciążenia pomiędzy sieciami VLAN na wielu ścieżkach. Ograniczenie to powoduje, że niektóre połączenia są przez cały czas niewykorzystane. Wynika to z tego, że wszystkie sieci VLAN muszą mieć taką samą aktywną topologię, co też nie zawsze jest optymalne dla każdej sieci VLAN.


Aby pozbyć się tych ograniczeń, firma Cisco Systems wprowadziła pewne modyfikacje. Umożliwiają one utworzenie odrębnej aktywnej topologii dla każdej sieci VLAN oraz rozkład obciążenia (per VLAN) na redundantnych połączeniach.

Dostępne są one w PVST (Per VLAN Spanning Tree) i PVST+ (Per VLAN Spanning Tree Plus).

Z funkcjonalności PVST możemy korzystać na portach skonfigurowanych jako Cisco ISL (Inter Switch Link) Trunk, a PVST+ na portach skonfigurowanych jako IEEE 802.1Q Trunk. Sposób działania STP w ramach jednej sieci VLAN zgodny jest z tradycyjnym STP, stąd wcześniej opisana teoria jak najbardziej w pełni tutaj obowiązuje. Różnicą jest to, że wszystko to dzieje się teraz per VLAN.

PVST/PVST+, umożliwiają utworzenie oddzielnej instancji STP dla każdej z sieci VLAN. Oznacza to, że dla każdej z sieci VLAN możemy oddzielnie konfigurować parametry protokołu STP (np. wartości liczników czasowych), z osobna przeprowadzany jest wybór przełącznika głównego oraz cały proces stabilizacji aktywnej topologii. Niestety pamiętać należy o tym, że każda instancja STP zajmuje pewną ilość zasobów. W związku z tym, ilość obsługiwanych instancji zależna jest od platformy (zwykle na przełącznikach warstwy dostępowej można uruchomić do 128 instancji STP, co jest bardziej niż wystarczające).

Dzięki PVST/PVST+ na danym porcie Trunk mamy możliwość przenoszenia ramek tylko z wybranych sieci VLAN (tych, dla których port ten jest połączeniem podstawowym), oraz jednocześnie blokowania z innych (tych, dla których port ten jest połączeniem zapasowym). W przypadku awarii portu podstawowego dla danej grupy sieci VLAN, uruchamiany jest port zapasowy dla tej grupy. W ten sposób zyskuje się rozkład obciążenia per VLAN z zachowaniem niezawodności.

Za sprawą enkapsulacji Cisco ISL lub IEEE 802.1Q, oryginalna ramka przenosząca pakiet BPDU wzbogacana jest o dodatkowe informacje, umożliwiające rozróżnienie, z której sieci VLAN ramka została wysłana czy też której sieci VLAN dotyczy jej zawartość. Dla każdej z sieci VLAN, przez port Trunk, generowana jest oddzielna ramka przenosząca BPDU.

Grupa przełączników połączona ze sobą z użyciem Cisco ISL Trunk nazywana jest regionem PVST, natomiast grupa przełączników połączona ze sobą z użyciem IEEE 802.1Q Trunk nazywana jest regionem PVST+. Kooperacja pomiędzy regionem PVST, a PVST+ następuje poprzez bezpośrednie mapowanie VLAN. Niemniej, obecnie powinniśmy mieć do czynienia tylko z PVST+.


Protokołu STP nie da się wyłączyć na pojedynczych portach. Można dokonać tego tylko dla całego VLAN. Wprowadza to problem dla stacji końcowych. Muszą one po załączeniu odczekiwać 30 sekund (domyślnie), zanim port stanie się użyteczny. Co gorsza może zdarzyć się, że stacja załączy się dużo szybciej i nie uzyska przez to adresu IP od serwera DHCP. Oprócz tego, kiedy port przechodzi do stanu Forwarding dochodzi do wykrycia zmiany w topologii, co zaburza pracę w stabilnej sieci - generowane są TCN BPDU (Topology Change Notification BPDU), o których więcej powiemy sobie dalej.

Dlatego dla portów, do których przyłączone są tylko stacje końcowe zostało wprowadzone rozwiązanie o nazwie Edge Port umożliwiające przejście tym portom od razu do stanu Forwarding, bez generowania powiadomienia o zmianie w aktywnej topologii. Domyślnie funkcjonalność ta jest wyłączona na wszystkich portach i należy ją uruchomić ręcznie. Powinno się to robić tylko na portach, do których załączone są pojedyncze stacje, aby nie spowodowało to powstania pętli.

W celu uniknięcia pętli, został wbudowany do tego rozwiązania dodatkowy mechanizm zabezpieczający, który nasłuchuje na porcie pakietów Configuration BPDU oraz TCN BPDU. Jeśli któryś z tych pakietów zostanie wykryty, port automatycznie traci status Edge Port i jest obsługiwany przez standardową procedurę do momentu jego reinicjalizacji (np. ręcznego wyłączenia i włączenia, lub zmiany stanu połączenia z nieaktywnego na aktywne). Konfiguracja nie jest z tego portu usuwana.

PortFast jest mechanizmem Edge Port opisanym w dokumencie IEEE 802.1t-2001, ale dostępnym o wiele wcześniej w urządzeniach firmy Cisco Systems. Umożliwia on pominięcie okresu dwukrotnej wartości czasu Forward Delay podczas przechodzenia portu do stanu Forwarding oraz pozbycie się problemu związanego z wykryciem zmiany w aktywnej topologii.


W przełącznikach Cisco Catalyst z oprogramowaniem Cisco IOS, domyślnie działa per każdy VLAN tradycyjna wersja protokołu STP (IEEE 802.1d-1998), uwzględniająca późniejsze zmiany wprowadzone w dodatkach IEEE 802.1t-2001 i IEEE 802.1Q-2004. Oznacza to, że tworzona i utrzymywana jest oddzielna instancja STP dla każdej sieci VLAN. Mowa tutaj o wcześniej opisanym PVST/PVST+.

Na portach działających w trybie Access wszystko działa tak jak w tradycyjnej wersji STP opisanej przez IEEE, dzięki czemu mamy możliwość tworzenia aktywnej topologii z urządzeniami zgodnymi z zaleceniami IEEE. Na portach skonfigurowanych jako Trunk działa PVST/PVST+. Grupa takich połączonych przełączników za pomocą połączeń Trunk nazywana jest regionem PVST/PVST+. 

Powyższe związane jest z dwoma poleceniami: "spanning-tree mode pvst" i "spanning-tree extend system-id". Są one domyślnie aktywne w obecnych wersjach Cisco IOS. Pierwsze oznacza tryb pracy protokołu, którym jest klasyczne STP (zgodnego z IEEE), ale obsługujące oddzielną instancję per VLAN. Drugie dotyczy pola Extended System ID, jakie zostało dodane do Bridge Identifier. Tego drugiego polecenia nie da się już wyłączyć na nowych platformach z Cisco IOS, stąd błąd widoczny na czerwonawym tle.

Domyślnie na przełącznikach istnieje VLAN o numerze 1 i działa w nim STP. Dla każdej nowo tworzonej sieci VLAN domyślnie uruchamiana jest oddzielna instancja STP (pod warunkiem, że nie została przekroczona maksymalna liczba dozwolonych instancji STP). Aby wyłączyć STP dla danego VLAN należy użyć polecenia "no spanning-tree vlan", a aby ponownie włączyć - polecenia "spanning-tree vlan", oczywiście ze wskazaniem VLAN czy zakresu VLAN.


Do weryfikacji ustawień i aktualnego stanu STP służy polecenie "show spanning-tree". Wyświetli ono informacje dotyczące wszytkich działających instancji STP. Jako, że mamy do czynienia z PVST czy PVST+ taką weryfikację możemy przeprowadzić dla każdego z VLAN oddzielnie ze wskazaniem numeru VLAN w pelceniu "show spanning-tree vlan".

Na czerwonawym tle widać w jakim trybie działa instancja STP. Na niebieskawym znajdują się informacje dotyczące przełącznika głównego (Root Bridge). Na zielonawym widoczne są informacje powiązane z lokalnym przełącznikiem, na którym zostało wydane polecenie. A na żółtawym tle zawarte są informacje o stanie każdego z portów. Dla każdego portu, na którym działa STP można odczytać kolejno: jego rolę, stan, skonfigurowany na nim koszt, wartość priorytetu oraz typ.


Jedną z ważniejszych rzeczy podczas konfiguracji protokołu STP jest wskazanie przełącznika głównego. To względem niego zostanie zbudowana aktywna topologia. Wybór tego przełącznika odbywa się na podstawie pola Bridge Identifier, w którym zawarty jest priorytet przełącznika. Dla przykładu, aby wartość priorytetu przełącznika była ustawiona na 61440 dla VLAN 1, 3, 4 i 5 można posłużyć się poniższym poleceniem trybu konfiguracji globalnej "spanning-tree vlan 1,3-5 priority 61440".

Powyższe polecenie ma wysoką wartość priorytetu. Zatem przydatne będzie w sytuacji, kiedy któryś z przełączników nie powinien zostać przełącznikiem głównym (np. ze względu na niekorzystną lokację w topologii lub brak niektórych funkcjonalności).

Jeśli posiadamy przełączniki, które obsługują oraz nie obsługują Extended System ID i ustawimy im tę samą wartość priorytetu przełącznika, to przełącznikiem głównym zostanie ten, który nie obsługuje tego rozszerzenia. Jest to związane z tym, że Extended System ID powiększa wartość priorytetu o numer VLAN - do czego nie dochodzi na przełącznikach, które go nie obsługują.

Modyfikacja priorytetu przełącznika odbywa się w trybie konfiguracji globalnej, gdyż zmiana ta dotyczy całego przełącznika. Jako, że modyfikacje priorytetów portów oraz kosztów portów dotyczą poszczególnych interfejsów, należy wydawać je w konfiguracji poszczególnych interfejsów czy też w ramach zakresu interfejsów.

Aby ustawić priorytet portu dla wszystkich VLAN na 64, należy użyć polecenia "spanning-tree port-priority 64". Oczywiście dla każdego z VLAN ta wartość może być inna, stąd da się ją nadpisać. Jeżeli dla VLAN od 1 do 5 ma ona wynosić 48, to należy użyć polecenia: "spanning-tree vlan 1-5 port-priority 48". Zatem pierwsze polecenia zmienia domyślny priorytet portu dla wszystkich sieci VLAN, dla których nie została ustawiona wartość drugim poleceniem. Stąd po wydaniu dwóch powyższych poleceń, dla sieci VLAN od 1 do 5 wartość priorytetu danego portu będzie wynosiła 48, a dla wszystkich pozostałych 64.

Analogicznie jest z konfiguracją kosztów na portach. Aby zmienić domyślny dla wszystkich VLAN koszt portu na 4, należy użyć polecenia "spanning-tree cost 4". A aby ustawić koszt 8 dla VLAN 1, 3 i 4 polecenia: "spanning-tree vlan 1,3-4 cost 8". W ten sposób na tym interfejsie dla VLAN 1, 3 i 4 koszt będzie wynosił 8, a dla wszytkich pozostałych 4.


Domyślnie na portach w Cisco IOS stosowane są wartości kosztów opisane w dokumencie 802.1D-1998.

Aby przełącznik korzystał z wartości zalecanym w dokumencie 802.1t-2001, należy użyć polecenia trybu konfiguracji globalnej "spanning-tree pathcost method long". W celu przywrócenia domyślnych wartość, należy zanegować to polecenie z użyciem “no” na jego początku lub skorzystać z polecenia: "spanning-tree pathcost method short".


Wartości czasów Forward Delay (domyślnie 15 sekund), Hello Time (domyślnie 2 sekundy) oraz Max Age (domyślnie 20 sekund) można skonfigurować na każdym z przełączników. Niemniej, w stabilnej topologii wykorzystywane są tylko wartości, jakie zostały ustawione na przełączniku głównym. Wstawia on je do wysyłanego Configuration BPDU i następnie są one przekazywane czy propagowane bez modyfikacji w kierunku liści drzewa opinającego.

Jeśli chcemy ręcznie dostosować wartości liczników czasowych dla każdej z sieci VLAN czy w naszym przykładzie dla VLAN 1, można użyć następujących poleceń w trybie konfiguracji globalnej:

  • "spanning-tree vlan 1 hello-time 2" ustawia wartość Hello Time w VLAN 1 na 2 sekundy,
  • "spanning-tree vlan 1 forward-time 15" ustawia wartość Forward Delay w VLAN 1 na 15 sekund,
  • "spanning-tree vlan 1 max-age 20" ustawia wartość Max Age w VLAN 1 na 20 sekund.

Podczas wykrycia zmiany w aktywnej topologii (Topology Change Notification), dla wpisów znajdujących się w tablicy przełączania stosowana jest wartość czasu Forward Delay, którą możemy skonfigurować poleceniem przedstawionym powyżej.

Natomiast jeśli chcemy zmienić standardowy czas starzenia się wpisów w tablicy przełączania, należy użyć polecenia trybu konfiguracji globalnej "mac-address-table aging-time". Jeśli w poleceniu tym użyjemy wartości zero, to wyłączymy starzenie się wpisów w tablicy przełączania. Istnieje również możliwość zmiany tej wartości dla poszczególnych sieci VLAN. W tym celu wystarczy dodać na końcu polecenia parametr “vlan” oraz wskazać numer VLAN.


Do wskazania przełącznika głównego można też użyć makra. W naszym przykładzie używamy go dla VLAN 1, wydając polecenie trybu konfiguracji globalnej: "spanning-tree vlan 1 root primary".

Wydanie powyższego polecenia powoduje zmianę priorytetu przełącznika z domyślnej wartości 32768 na wartość mniejszą, która umożliwi mu uzyskanie roli przełącznika głównego. Po wydaniu tego polecenia na przełączniku obsługującym Extended System ID sprawdzana jest dla sieci VLAN wartość priorytetu aktualnego przełącznika głównego. Jeśli jest ona standardowa, to ustawiana jest wartość priorytetu na 24576. Powoduje to, że przełącznik ten staje się przełącznikiem głównym dla wskazanego VLAN. Jeśli wartość priorytetu przełącznika głównego dla danego VLAN jest mniejsza niż 24576, to ustawi on wartość priorytetu w tym VLAN na mniejszą o 4096 od tej jaką posiada aktualny przełącznik główny. Polecenie to nie przyniesie rezultatu tylko wtedy, gdy aktualny priorytet przełącznika głównego będzie mniejszy od 8192. Jeśli któryś z przełączników w sieci ma przypisaną wartość priorytetu z przedziału od 0 do 8191 podczas wykonywania tego polecenia, to pojawi się błąd ze stosowną informację i nie będzie to możliwe.

Wprowadzenie powyższego polecenia w oprogramowaniu przełącznika, który nie obsługiwał Extended System ID powoduje ustawienie wartości priorytetu na 8192, chyba że nie umożliwia to otrzymanie roli przełącznika głównego, wtedy wartość priorytetu będzie ustawiana na o 1 mniejszą od najlepszej wartości priorytetu w VLAN.

Pamiętając o tym, że przełącznik główny może ulec awarii, dobrą praktyką jest przygotowanie zapasowego przełącznika głównego z podobnym zestawem parametrów, jakie powinny być propagowane do sieci. Aby zwiększyć prawdopodobieństwo, że przełącznik zostanie zapasowym przełącznikiem głównym dla VLAN 1, należy użyć polecenia: "spanning-tree vlan 1 root secondary".

Wydanie powyższego polecenia powoduje zmianę wartości priorytetu przełącznika z domyślnej 32768, na wartość 28672 jeśli obsługiwane jest Extended System ID, lub na wartość 16384, jeśli nie jest obsługiwane Extended System ID. W większych VLAN można ustawić kilka przełączników, jako zapasowe przełączniki główne. Zakładając, że pozostałe przełączniki w VLAN mają standardowe wartości priorytetu zyskujemy pewność, że po awarii przełącznika głównego nadal będą używane odpowiednie wartości parametrów, a aktywna topologia po awarii będzie z góry znana i przewidywalna. 

Należy pamiętać, że przedstawione tu dwa polecenia nie znajdą się w konfiguracji. Zamiast nich pojawi się polecenie z odpowiednio dobraną wartością priorytetu. Wartość ta dobierana jest jednorazowo. Jest to związane z tym, że polecenia te powodują znalezienie odpowiednich wartości priorytetu jakie należy przypisać, a następnie wprowadzają do konfiguracji określone polecenia z tą wartością. Jest to o tyle ważne, że ta procedura przeprowadzona jest tylko raz, podczas wpisywania polecenia. Dalej przełącznik będzie korzystał cały czas z dobranej dla niego wartości priorytetu.

Zatem, jeśli po jakimś czasie wpiszemy to polecenie na innym z przełączników, to ten inny przełącznik stanie się przełącznikiem głównym - zostanie dla niego znaleziona lepsza wartość. Powyższe polecenia należy traktować jak makra.


Podczas określania roli przełączników możemy też ustawić wartości liczników. Zamiast podawać ich wartości wprost, można je skalować poprzez dwa parametry poznanych makr. Średnicę sieci (diameter) oraz wartość czasu Hello Time (hello-time).

Aby wartości liczników czasowych zostały odpowiednio przeskalowane dla VLAN 1, o średnicy 4 przełączników i czasie Hello Time wynoszącym 1 sekundę na przełączniku głównym i zapasowym, można użyć poleceń konfiguracji globalnej:

  • "spanning-tree vlan 1 root primary diameter 4 hello-time 1" dla przełącznika głównego,
  • "spanning-tree vlan 1 root secondary diameter 4 hello-time 1" dla przełącznika zapasowego.

Polecenia te zmieniają wartości liczników czasowych Forward Delay (domyślnie 15 sekund) oraz Max Age (domyślnie 20 sekund), które to zostały dobrane dla sieci o średnicy 7 przełączników. Automatyczne dostosowanie wartości do podanej średnicy sieci (diameter) i wartości Hello Time (hello-time), realizowane jest zgodnie z zaleceniami standardu.


Aby uruchomić mechanizm PortFast na porcie działającym w trybie Access należy skorzystać z polecenia trybu konfiguracji interfejsu: "spanning-tree portfast". A dla portu działającego w trybie Trunk polecenie: "spanning-tree portfast trunk". Aby wyłączyć PortFast na interfejsie wystarczy zanegować wcześniej wpisane polecenie z użyciem: "no".

Aby PortFast był uruchamiany domyślnie na wszystkich interfejsach, można skorzystać z polecenia trybu konfiguracji globalnej: "spanning-tree portfast default". Następnie można wyłączyć ten mechanizm na poszczególnych interfejsach, używając polecenia konfiguracji interfejsu: "spanning-tree portfast disable".

Z użyciem polecenia "show spanning-tree interface" możemy zarówno zweryfikowanie czy mechanizm PortFast jest aktualnie uruchomiony na danym interfejsie jak i to, w jaki sposób został on tam uruchomiony.


Przed kolejną porcją wiedzy zachęcamy do przećwiczenia i utrwalenia tej poznanej tutaj. Skorzystaj z naszych ćwiczeń!


Zachęcamy do śledzenia nas w mediach społecznościowych Facebook i LinkedIn.


Zapraszamy do kontaktu drogą mailową Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript. lub telefonicznie +48 797 004 932 lub +48 797 004 938.