Spanning Tree
Cel istnienia: zapobieganie pętlom w warstwie 2
Spanning Tree Protocol (STP) to fundamentalny protokół warstwy 2 (łącza danych), którego jedynym, ale krytycznym zadaniem jest zapobieganie powstawaniu pętli w sieciach z nadmiarowymi, fizycznymi łączami między przełącznikami. Pętla sieciowa (broadcast storm) powoduje natychmiastową degradację, a często całkowite załamanie działania sieci, poprzez wykładnicze namnażanie ramek broadcast i multicast. STP inteligentnie tworzy logiczne, drzewiaste topologie (wolne od pętli) nawet w najbardziej złożonych, fizycznie zapętlonych sieciach, poprzez obliczeniowe wyłączenie (blokowanie) redundantnych portów.
Ewolucja i wersje protokołu
Podstawowa wersja STP (802.1D) jest dziś uważana za przestarzałą ze względu na wolny czas zbieżności (30-50 sekund) po awarii. Zastąpiły ją znacznie szybsze i bardziej zaawansowane wersje:
- Rapid STP (RSTP, 802.1w) – Obecny standard. Skraca czas zbieżności do kilku sekund, wprowadzając nowe stany portów i mechanizmy szybkiej reakcji na zmiany topologii. Jest wstecznie kompatybilny z klasycznym STP.
- Multiple STP (MSTP, 802.1s) – Pozwala na mapowanie wielu VLANów do jednej instancji drzewa rozpinającego (MST Instance). Dzięki temu można tworzyć multiple drzewa i balansować ruch pomiędzy różnymi ścieżkami dla różnych grup VLANów, optymalnie wykorzystując dostępną przepustowość łączy.
Kluczowe pojęcia, proces wyboru i ramki BPDU
Mechanizm STP opiera się na wymianie ramek BPDU (Bridge Protocol Data Units) między przełącznikami. Na ich podstawie odbywa się proces wyboru:
- Root Bridge – Jeden przełącznik w sieci jest wybierany jako korzeń całego drzewa. Wybiera się go na podstawie najniższego Bridge ID (priorytet + adres MAC).
- Root Port – Na każdym nie-root przełączniku, port z najtańszą ścieżką do Root Bridge jest wybierany jako Root Port (w stanie forwarding).
- Designated Port – Na każdym segmencie sieci (łącze między przełącznikami), port z najtańszą ścieżką do Root Bridge jest wybierany jako Designated Port (forwarding). Drugi port na tym segmencie zostaje zablokowany (alternate/backup port).
Konfiguracja, optymalizacja i najlepsze praktyki
Podstawową najlepszą praktyką jest ręczne przypisanie priorytetu najbardziej wydajnemu przełącznikowi, aby stał się Root Bridge, zapobiegając jego przypadkowemu wyborowi. Funkcja PortFast powinna być włączona na portach podłączonych do hostów (komputerów, serwerów), aby natychmiast przełączała je w stan forwarding, omijając stany listening i learning. NIGDY nie należy włączać PortFast na portach łączących przełączniki! BPDU Guard chroni porty z PortFast przed otrzymaniem BPDU (co wskazywałoby na podłączenie nieautoryzowanego przełącznika), przełączając je w stan error-disable.
Rola we współczesnych sieciach i alternatywy
Mimo że STP jest wszechobecny, w nowoczesnych sieciach często dąży się do jego minimalizacji. Technologie takie jak EtherChannel (LAG) pozwalają agregować multiple porty fizyczne w jedno logiczne łącze, które STP widzi jako pojedynczą ścieżkę, umożliwiając wykorzystanie pełnej przepustowości bez blokowania. W sieciach fabric opartych na trasowaniu (routing) warstwy 3, pętle w warstwie 2 są eliminowane, co renderuje STP niepotrzebnym.
FAQ
Kiedy STP jest absolutnie konieczny?
Zawsze, gdy w sieci warstwy 2 istnieje więcej niż jedna fizyczna ścieżka pomiędzy dwoma punktami (np. dwa łącza między tymi samymi przełącznikami).
Co to jest „Listening” i „Learning” stan portu?
To stany przejściowe. Listening: port nasłuchuje BPDU, aby upewnić się, że nie stworzy pętli. Learning: port uczy się adresów MAC, ale jeszcze nie przekazuje ramek danych. Każdy trwa 15 sekund w STP.
Czym różni się RSTP od STP?
Głównie czasem zbieżności. RSTP wprowadza stany „discarding” i mechanizmy „proposal/agreement”, które pozwalają portom szybciej przejść do stanu forwarding bez czekania na timery.
Dlaczego mój port jest zablokowany (Alternate)?
Ponieważ nie jest ani Root Portem, ani Designated Portem dla danego segmentu. Jego zablokowanie zapobiega utworzeniu pętli.
Czy STP działa z VLANami?
Klasyczny STP (CST) tworzy jedno drzewo dla wszystkich VLANów. PVST+ (Cisco) tworzy instancję drzewa na VLAN. MSTP (standard) grupuje VLANy w instancje.
