Jak działa Spanning Tree?

0

Jeśli przełączniki i mosty sieciowe są połączone w innej topologii, niż drzewo, w warstwie drugiej powstają pętlę, które szybko doprowadzają do wyczerpania zasobów urządzeń sieciowych. Problem ten rozwiązuje Spanning Tree Protocol, mający wdzięczną polską nazwę protokołu drzewa rozpinającego.

Protokół Spanning Tree (STP) został opracowany przez Radię Perlman, inżyniera pracującego dla Sun Microsystems. Radia Perlman opracowała metodę umożliwiającą routing w warstwie drugiej modelu OSI/ISO, mającą zapewnić nadmiarowość i wyeliminowanie pętli. Spanning Tree można sobie wyobrazić jako drzewiastą topologię sieci przechowywaną w pamięci przełączników w celu optymalizacji i zapewnienia odporności sieci na błędy.

 

Powyższy rysunek ilustruje problem, z którym borykają się administratorzy sieci. Jeśli przełączniki są połączone w taki sposób bez wykorzystania Spanning Tree, każdy z nich tak długo będzie przekazywać pierwszy odebrany pakiet rozgłoszeniowy (broadcast), aż wyczerpie się pamięć przełącznika i nie przestanie on działać. Pętlę powstają również, gdy w sieci pojawią się pakiety adresowane do urządzeń końcowych, których lokalizacji nie ma jeszcze w tablicach ARP przełączników (takie pakiety są przekazywane do wszystkich portów za wyjątkiem portu źródłowego).

Warstwa druga nie oferuje żadnych mechanizmów, które zapobiegałyby powstawaniu pętli. Na przedstawionym rysunku administrator powinien ręcznie wyłączyć czerwone połączenia, żeby sieć Ethernet mogła działać. Protokół Spanning Tree (protokół drzewa rozpinającego) blokuje wszystkie połączenia, za wyjątkiem jednego, które pozostaje aktywne. Jednak w przypadku awarii aktywnej ścieżki przełącza się na jedną pozostałych dostępnych ścieżek. To, w jaki sposób protokół Spanning Tree decyduje o wyborze połączenia, zależy wyłącznie od topologii sieci, którą widzi.

STP jest obsługiwany przez przełączniki i mostki sieciowe. Podstawowe zasady pracy mostu są takie same, jak przełącznika. Dotyczy to również zasady działania algorytmu Spanning Tree. Występują jedynie różnice w działaniu przełączników i mostów:

  • Funkcje przełącznika są realizowane sprzętowo, natomiast most jest realizowany programowo. Dlatego przełącznik jest dużo szybszy.
  • Most może mieć jedynie od 2 do 16 portów.
  • Most jedynie przekazuje odbierane ramki z jednego portu do drugiego na podstawie źródłowego adresu MAC, natomiast przełącznik może przekazywać ramki do dowolnego portu, na podstawie zarówno źródłowego jak i docelowego adresu MAC.
  • Do jednego portu mostu może być przypisane dokładnie jedno drzewo rozpinające, w przełączniku może być ich wiele.
  • Most działa w trybie półdupleksu, natomiast przełącznik używa pełnego dupleksu.

Algorytm Spanning Tree
Idea leżąca u podstaw Spanning Tree zakłada, że przełączniki są w stanie wykryć zbiór topologii sieci wolnych od pętli, np. drzewo. Kolejnym ważnym założeniem jest, że taka topologia musi umożliwiać połączenie z każdym segmentem sieci, tzn. jest w stanie objąć (span) całą sieć LAN. Przełączniki będą dokonywać analizy z wykorzystaniem algorytmu Spanning Tree w momencie pierwszego podłączenia lub w przypadku zmiany topologii.

Gdy przełącznik odbierze określony typ wiadomości konfiguracyjnej BPDU (Bridge Protocol Data Unit), rozpoczyna wykonywanie algorytmu Spanning Tree. Pakiety BPDU zawierają informacje o portach, adresach, priorytetach i kosztach połączeń. Ich zadaniem jest zapewnienie, że pakiety danych dotrą do celu przeznaczenia. Pakiety BPDU są wymieniane przez przełączniki w celu wykrycia pętli. Następnie pętle są usuwane poprzez zamknięcie wybranych połączeń i przyznanie zablokowanym portom przełącznika statusu łączą zapasowego lub zablokowanego.

STP rozróżnia pięć stanów portów, od których zależy, w jaki sposób protokół MAC przetwarza i transmituje ramki: port aktywny (listening), uczenie się adresów MAC (learning), przekazywanie ramek (forwarding), port zablokowany (blocking), odrzucanie ramek (discarding).

Odebranie konfiguracyjnego pakietu BDPU inicjuje wykonanie algorytmu Spanning Tree. Pierwszym efektem działania tego algorytmu jest wybranie głównego przełącznika, który stanie się sercem topologii sieci i wszystkie istotne dane będą przez niego przekazywane. W tym miejscu warto doradzić ręczny wybór głównego przełącznika, ponieważ w przypadku produktów Cisco na tym etapie występują różne problemy: wybrany zostaje przełącznik z najniższym adresem MAC, a zawsze jest to najstarszy, najwolniejszy przełącznik w sieci.

Następnym krokiem jest określenie dla każdego przełącznika najkrótszych połączeń z przełącznikiem głównym, żeby urządzenia wiedziały, jak komunikować się z centralną lokalizacją. Te proces przebiega w każdym segmencie sieci lokalnej i jego celem jest wybranie wyznaczonego przełącznika lub przełącznika znajdującego się najbliżej przełącznika głównego. Wyznaczony przełącznik będzie przekazywał pakiety z danego segmentu sieci do przełącznika głównego. Finalnym krokiem dla poszczególnych przełączników jest wybranie portu głównego. Oznacza to po prostu wybranie portu, który będzie używany do przesyłania pakietów do głównego przełącznika. Zwróć uwagę, że pojedynczy port przełącznika, nawet ten używany do połączenia z urządzeniem końcowym, będzie częścią Spanning Tree, chyba że otrzyma status „ignore”.

Spanning Tree w praktyce

Taki jest algorytm, ale to wciąż nie wyjaśnia, jak w rzeczywistości działa Spanning Tree. Wykonywanie algorytmu Spanning Tree zaburza pracę sieci – aby wykonać obliczenia, przełączniki muszą wstrzymać cały ruch sieciowy. Następnie przebiega seria faz nasłuchiwania i uczenia, a ruch w sieci zostaje wznowiony dopiero, gdy przełączniki zbudują topologię. Na szczęście proces ten ma miejsce tylko, gdy wystąpią zmiany w topologii sieci lub przełączniki odbiorą pakiet konfiguracyjny BPDU. Niestety, zdarza się to częściej, niż mogłoby się wydawać.

Koncepcja Spanning Tree zakłada, że w sieci może nastąpić awaria połączenia, ponieważ para przełączników jest połączona przynajmniej dwoma ścieżkami. STP będzie utrzymywać zapasowy port w statusie zablokowany, dopóki nie będzie on potrzebny. Wydaje się więc, że zapasowe łącza można odłączyć i podłączyć nowe bez przerywania działania sieci. Niestety, Spanning Tree nie działa w ten sposób.

Gdy pojawia się nowe fizyczne połączenie, przyłączone do niego przełączniki wyślą pakiet konfiguracyjny BPDU, a pozostałe urządzenia odpowiedzą na ten pakiet. Cały ruch sieciowy zostanie wstrzymany na czas potrzebny do przeliczenia Spanning Tree (około 30-60 sekund). Jest to bardzo wygodne w praktyce, ponieważ w przypadku awarii przełącznika czas przestoju jest stosunkowo krótki, jednak w przypadku planowanych prac serwisowych czas przestoju jest daleki od optymalnego.

Żeby skrócić czas przestoju, opracowano protokół RSTP (Rapid Spanning Tree Protocol), który jest dostępny w obecnych przełącznikach i znacznie skraca czas przestoju. Dlatego powinno się używać wyłącznie protokołu RSTP. Jest on w pełni kompatybilny ze starszymi urządzeniami, a jednocześnie skraca czas przestoju do około 3 sekund.

Jak widać, wykorzystanie STP lub RSTP pozwala połączyć ze sobą dwa przełączniki z wykorzystaniem wielu łączy bez tworzenia pętli. Jeśli aktywne połączenie pomiędzy nimi ulegnie awarii, automatycznie zostanie wykorzystane jedno z pozostałych połączeń. Mechanizm ten działa, ponieważ przełącznik blokuje łącza zapasowe, ale nasłuchuje również pakietów BPDU zawierających aktualizację konfiguracji i wie, które łącze prowadzi do głównego przełącznika. Mechanizm ten działa pod warunkiem prawidłowej konfiguracji.

Sprawa się komplikuje, jeśli w sieci są wykorzystywane trunki VLAN. Co nastąpi, jeśli jedno z łączy fizycznych jest jednocześnie trunkiem VLAN? Jeśli w sieci działa tylko jedna instancja Spanning Tree, protokół ten zauważy, że jedna z sieci korzystających tego trunka nie powinna używać danego łącza. W efekcie wyłączone zostanie cała łącze.

W tym przypadku rozwiązaniem jest protokół PVST (Per-VLAN Spanning Tree). Po włączeniu PVST przełącznik będzie uruchamiać oddzielną instancję Spanning Tree dla każdego VLAN’u korzystającego z danego połączenia. Przykładowo, jeśli trunk obsługuje 3 VLAN’y 1, 2, 3, przełącznik z PVST może uznać, że VLAN’y 1 i 2 nie powinny używać danego łącza, natomiast zezwolić na to VLAN’owi 3.

W złożonych sieciach będzie wiele sytuacji, w których VLAN 3 będzie miał jedną ścieżkę na zewnątrz, prawdopodobnie dlatego, że administrator wprowadzi takie ograniczenia. Jeśli protokół PVST nie zostałby włączony i port trunk zostałby zablokowany przez Spanning Tree, VLAN 3 nie miałby komunikacji przez ten przełącznik z resztą sieci LAN. Dlatego w sieciach ze skonfigurowanymi VLAN’ami powinno się używać protokołu PVST. Urządzenia Cisco obsługują także protokół Per VLAN Spanning Tree Plus (PVST+), który różni się od PVST tylko tym, że wykorzystuje technologię trunkingu VLAN’ów 802.1Q 802.1Q zamiast ISL.

Kolejną poprawką do STP jest protokół MSTP (Multiple Spanning Tree Protocol, IEEE 802.1s), który umożliwia równoważenie obciążenia i zwiększa odporność sieci na błędy, dzięki zapewnieniu wielu ścieżek przekazywania ruchu.

Na koniec trzeba pamiętać, że każdy port wysyłający pakiety BPDU może spowodować przestój sieci związany z rekalkulacją Spanning Tree. Może to być komputer z uruchomionym oprogramowaniem ettercap czy złośliwe oprogramowanie. Dlatego powinno się stosować rozwiązania chroniące przed taką ewentualnością, np. BPDU-Guard firmy Cisco, który blokuje pakiety BPDU wychodzące z portów urządzeń końcowych. To ważne, ponieważ takie porty mogą nie tylko inicjować rekalkulację Spanning Tree, ale także doprowadzić do tego, że zostaną uznane za główny przełącznik. Wtedy bardzo łatwo można przeprowadzać ataki typu Man-in-the-middle, ponieważ wszystkie dane przepływają przez port, do które włamywacz ma dostęp.

Podsumowanie
Protokół Spanning Tree zapobiega powstawaniu pętli w sieci, w której przełączniki są połączone ze sobą wieloma ścieżkami. Spanning Tree jest implementacją algorytmu 802.1D IEEE, a jego działanie polega na wymianie wiadomości BPDU pomiędzy przełącznikami w celu wykrycia pętli i ich usunięcia poprzez zablokowanie wybranych interfejsów przełącznika. Ten algorytm gwarantuje, że jest tylko jedna ścieżka pomiędzy dwoma urządzeniami sieciowymi. Jednocześnie gwarantuje nadmiarowość na wypadek awarii aktywnych ścieżek.

Główny przełącznik w Spanning Tree jest logicznym centrum, przez które przechodzi cały ruch sieciowy. Zaleca się ręczne wybieranie przełącznika, który będzie pełnić tę funkcję. Wadą STP są rekalkulacje, dlatego należy prawidłowo skonfigurować porty służące do podłączania urządzeń końcowych oraz używać protokołu RSTP.

BRAK KOMENTARZY

ZOSTAW ODPOWIEDŹ