Protokół Spanning Tree

Zapobieganie pętlom w sieciach przełączanych za pomocą STP, RSTP i MSTP.

Potrzeba Redundancji i Problem, Który Stwarza

W każdym krytycznym projekcie sieciowym niezawodność jest najważniejsza. Pojedynczy punkt awarii może być katastrofalny, prowadząc do przestojów, które kosztują firmy pieniądze i produktywność. Aby zbudować niezawodną sieć, administratorzy celowo tworzą redundancję, dodając dodatkowe łącza i urządzenia. Powszechną strategią w sieci przełączanej jest łączenie przełączników za pomocą wielu fizycznych łączy. Jeśli jedno łącze ulegnie awarii (np. kabel zostanie przecięty), ruch może automatycznie przekierować się przez alternatywną ścieżkę, zapewniając ciągłość działania sieci.

Jednak ta redundancja, choć niezbędna dla dostępności, wprowadza niebezpieczny i potencjalnie paraliżujący problem na Warstwie 2 (Warstwie Łącza Danych). Sama natura przełączników Ethernet, zaprojektowanych do wydajnego przesyłania ruchu, tworzy katastrofalną sytuację, gdy w topologii sieci istnieją fizyczne pętle. Problem ten jest znany jako pętla komutacyjna lub pętla mostkowania.

Katastrofalne Skutki Pętli Warstwy 2

Ramki Ethernet nie mają mechanizmu „czasu życia” (TTL), jak pakiety IP w Warstwie 3. Oznacza to, że jeśli ramka wpadnie w pętlę, nie ma nic w jej nagłówku, co by jej kazało przestać krążyć. Będzie ona przesyłana przez przełączniki w nieskończoność lub do momentu załamania się sieci. Pętla komutacyjna prowadzi do trzech natychmiastowych i niszczycielskich problemów:

  • 1. Burze Rozgłoszeniowe (Broadcast Storms)

    To najbardziej natychmiastowy i destrukcyjny objaw. Gdy urządzenie wysyła (na przykład żądanie ARP w celu znalezienia adresu MAC innego urządzenia), ramka ta wpada w pętlę. Każdy przełącznik w pętli otrzymuje ramkę i, zgodnie z zasadami Ethernetu, przesyła ją dalej przez wszystkie pozostałe porty. Oznacza to, że ramka jest wysyłana z powrotem na pętlę, gdzie jest ponownie odbierana przez inne przełączniki, które również przesyłają ją przez wszystkie swoje porty. Pojedyncza ramka jest nieskończenie powielana, krążąc coraz szybciej, zużywając całą dostępną przepustowość i przeciążając procesory wszystkich przełączników i podłączonych urządzeń. Sieć szybko staje się bezużyteczna, co jest stanem znanym jako burza rozgłoszeniowa.

  • 2. Niestabilność Tablicy Adresów MAC

    Przełączniki uczą się lokalizacji urządzeń, analizując źródłowy adres MAC przychodzących ramek. W pętli ten proces uczenia się załamuje. Rozważmy komputer podłączony do Przełącznika A. Wysyła on ramkę. Przełącznik B może zobaczyć tę ramkę przychodzącą z łącza od Przełącznika A. Chwilę później, z powodu pętli, ta sama ramka może dotrzeć do Przełącznika B z jego łącza z Przełącznikiem C. Z perspektywy Przełącznika B, adres MAC komputera pojawia się w dwóch miejscach jednocześnie. Będzie on szybko i nieustannie aktualizował swoją , zjawisko zwane „trzepotaniem MAC” (MAC flapping). Ta niestabilność oznacza, że przełącznik nigdy nie może podjąć wiarygodnej decyzji o przesłaniu ramki, co prowadzi do wysyłania ramek na niewłaściwe porty lub ich niepotrzebnego zalewania.

  • 3. Wielokrotna Transmisja Ramek

    Nawet dla ramki unicast (wysyłanej z jednego konkretnego urządzenia do drugiego), pętla może powodować poważne problemy. Jeśli docelowy adres MAC nie znajduje się jeszcze w tablicach MAC przełączników, ramka zostanie początkowo zalana. To zalewanie wpada w pętlę, a urządzenie docelowe może otrzymać tę samą ramkę wielokrotnie z różnych ścieżek. Może to dezorientować aplikacje i protokoły, które nie są zaprojektowane do obsługi zduplikowanych ramek.

Rozwiązanie: Protokół Drzewa Rozpinającego (Spanning Tree Protocol)

Jasne jest, że redundancja fizyczna jest niezbędna dla niezawodności, ale pętle w warstwie 2 są zabójcze. Aby rozwiązać ten paradoks, stworzono Protokół Drzewa Rozpinającego (STP). STP to (standaryzowany jako IEEE 802.1D), zaprojektowany specjalnie w celu zapobiegania pętlom komutacyjnym w sieciach z redundantnymi ścieżkami.

Podstawowa idea STP jest genialna w swojej prostocie. Zamiast eliminować redundancję fizyczną, STP tworzy wolną od pętli topologię logiczną poprzez selektywne blokowanie niektórych portów sieciowych. Analizuje całą przełączaną sieć i buduje strukturę „drzewa” obejmującą wszystkie przełączniki, zapewniając istnienie tylko jednej aktywnej ścieżki między dowolnymi dwoma urządzeniami. Redundantne łącza nie są fizycznie odłączane; są po prostu wprowadzane w stan gotowości lub „blokowania”. Są trzymane w rezerwie, a jeśli aktywne łącze ulegnie awarii, STP może automatycznie przeliczyć drzewo i odblokować jedno z łączy zapasowych, aby przywrócić łączność, zazwyczaj w ciągu kilku sekund.

Jak Działa STP: Proces Wyborów i Obliczeń

STP buduje swoje wolne od pętli drzewo poprzez dobrze zdefiniowany, czterostopniowy proces. Wszystkie przełączniki w sieci uczestniczą w tym procesie, wymieniając specjalne wiadomości zwane Jednostkami Danych Protokołu Mostu (BPDU).

Krok 1: Wybór Mostu Głównego (Root Bridge)

Pierwszą rzeczą, jaką robi STP, jest ustanowienie centralnego punktu odniesienia dla całej sieci. Ten punkt odniesienia nazywany jest Mostem Głównym (Root Bridge). Wszystkie inne decyzje w obliczeniach STP są podejmowane z perspektywy dotarcia do Mostu Głównego. Aby go wybrać, przełączniki porównują swoje . BID składa się z dwóch części:

  1. Priorytet Mostu: Konfigurowalna 2-bajtowa wartość (domyślnie zazwyczaj 32768). Administratorzy mogą obniżyć tę wartość, aby wpłynąć na to, który przełącznik zostanie mostem głównym.
  2. Adres MAC: 6-bajtowy unikalny adres MAC przełącznika.

Przełącznik z numerycznie najniższym ID Mostu wygrywa wybory i zostaje Mostem Głównym.

Priorytet jest najważniejszym czynnikiem. Jeśli dwa przełączniki mają ten sam priorytet, ich adresy MAC są używane jako rozstrzygacz remisu (niższy adres MAC wygrywa).

Krok 2: Wybór Portu Głównego (Root Port) na Każdym Moście Innym Niż Główny

Każdy przełącznik, który nie jest Mostem Głównym (most niegłówny), musi znaleźć swoją jedną, najlepszą ścieżkę do Mostu Głównego. Port na przełączniku, który prowadzi do tej najlepszej ścieżki, zostaje wybrany jako Port Główny (Root Port). "Najlepszy" jest określany przez najniższy całkowity .

STP przypisuje koszt do każdego łącza, zazwyczaj na podstawie jego prędkości:

  • Koszt łącza 10 Gb/s: 2
  • Koszt łącza 1 Gb/s: 4
  • Koszt łącza 100 Mb/s: 19
  • Koszt łącza 10 Mb/s: 100

Przełącznik oblicza koszt ścieżki, sumując koszty wszystkich łączy na drodze do Mostu Głównego. Port, który jest początkiem ścieżki o najniższym koszcie, staje się Portem Głównym.

Jeśli przełącznik ma dwie lub więcej ścieżek o tym samym koszcie, używana jest seria rozstrzygaczy remisów: najniższy BID przełącznika nadającego, następnie najniższy ID portu nadającego.

Krok 3: Wybór Portu Wyznaczonego (Designated Port) na Każdym Segmencie Sieci

Następnie, na każdym pojedynczym segmencie sieci (łączu między przełącznikami), jeden port musi zostać wybrany jako Port Wyznaczony (Designated Port). Port Wyznaczony jest odpowiedzialny za przesyłanie ruchu na ten segment. Wszystkie porty na Moście Głównym są zawsze Portami Wyznaczonymi. W przypadku innych segmentów, port na przełączniku, który ma niższy koszt ścieżki do Mostu Głównego, wygrywa wybory i staje się Portem Wyznaczonym dla tego łącza.

Krok 4: Umieszczenie Wszystkich Pozostałych Portów w Stanie Blokowania

Po wybraniu wszystkich Portów Głównych i Wyznaczonych, każdy port, który pozostał, jest portem niewyznaczonym. Są to redundantne łącza, które tworzą pętle. STP umieszcza te porty w stanie blokowania. Zablokowany port nie przesyła żadnych ramek z danymi użytkownika i nie uczy się adresów MAC. Nasłuchuje tylko wiadomości BPDU, aby wiedzieć, czy topologia sieci uległa zmianie. Poprzez zablokowanie tych konkretnych portów, pętla fizyczna zostaje przerwana i tworzona jest pojedyncza, wolna od pętli ścieżka logiczna.

Timery i Stany Portów w STP: Przyczyna Opóźnień

Proces konwergencji do stabilnej, wolnej od pętli topologii nie jest natychmiastowy. Oryginalny protokół STP 802.1D używa kilku timerów i stanów portów, które mogą prowadzić do znacznego przestoju w sieci (30-50 sekund) po zmianie topologii. Port przechodzący od stanu blokowania do przesyłania musi przejść przez dwa stany pośrednie:

  • Blokowanie (Blocking): Port jest logicznie wyłączony, aby zapobiec pętli. Nasłuchuje tylko BPDU.
  • Nasłuchiwanie (Listening, 15 sekund): Pierwszy stan podczas przejścia. Przełącznik upewnia się, że nie powstaną pętle, zanim przygotuje się do przesyłania. Wysyła i odbiera BPDU, ale nie przesyła danych.
  • Uczenie się (Learning, 15 sekund): Port nadal nie przesyła danych użytkownika, ale zaczyna uczyć się adresów MAC z przychodzących ramek, aby zapełnić swoją tablicę adresów MAC.
  • Przesyłanie (Forwarding): Port jest w pełni operacyjny, przesyła ramki z danymi i aktywnie uczestniczy w sieci.

Ta powolna konwergencja (15s+15s=30s15s + 15s = 30s oczekiwania) była główną wadą oryginalnego protokołu STP.

Ewolucja Drzewa Rozpinającego

Aby zaradzić powolnej konwergencji i innym ograniczeniom oryginalnego STP, opracowano i obecnie powszechnie stosuje się kilka ulepszonych wersji.

  • Szybki Protokół Drzewa Rozpinającego (RSTP - IEEE 802.1w)

    RSTP jest znaczącym ulepszeniem STP i jest z nim wstecznie kompatybilny. Wprowadza nowe role portów (Port Alternatywny i Zapasowy dla szybkiego przełączania awaryjnego) i używa bardziej aktywnego mechanizmu propozycji/zgody między przełącznikami. Pozwala to RSTP na osiągnięcie znacznie szybszych czasów konwergencji, często poniżej jednej sekundy po awarii łącza, drastycznie redukując przestoje w sieci.

  • Protokół Drzewa Rozpinającego na VLAN (PVST+)

    Problemem zarówno STP, jak i RSTP jest to, że obliczają one jedno drzewo rozpinające dla całej sieci. W sieci wykorzystującej VLAN-y może to być nieefektywne. Łącze może być zablokowane dla całego ruchu, nawet jeśli jest potrzebne dla konkretnego VLAN-u. PVST+ (ulepszenie firmy Cisco) rozwiązuje ten problem, uruchamiając oddzielną, niezależną instancję STP dla każdego pojedynczego VLAN-u. Pozwala to na , ponieważ administrator może skonfigurować jedno łącze jako ścieżkę przesyłania dla VLAN 10, a inne, redundantne łącze jako ścieżkę przesyłania dla VLAN 20, efektywnie wykorzystując wszystkie dostępne łącza.

  • Protokół Wielu Drzew Rozpinających (MSTP - IEEE 802.1s)

    Chociaż PVST+ jest bardzo elastyczny, uruchamianie setek instancji STP w dużej sieci może zużywać znaczne zasoby procesora przełącznika. MSTP oferuje kompromis. Pozwala administratorowi na grupowanie wielu VLAN-ów o podobnych wymaganiach ruchowych w jedną „instancję”. Jedno drzewo rozpinające jest następnie obliczane dla każdej instancji, a nie dla każdego pojedynczego VLAN-u. To radykalnie zmniejsza liczbę wymaganych obliczeń STP, jednocześnie zapewniając korzyści płynące z równoważenia obciążenia na wielu łączach.

    Protokół Spanning Tree | Teleinf Edu