(T) Funkcje specjalne / bezpieczeństwo protokołu STP

Funkcje specjalne protokołu STP

Funkcja UplinkFast

  • Funkcja UplinkFast umożliwia natychmiastowe przełączenie ruchu sieciowego z interfejsu pełniącego rolę root port, na inne połączenie zapasowe prowadzące do root-a.
  • Aktywowanie funkcji UplinkFast na przełączniku automatycznie zwiększy jego wartość Bridge Priority z 32768 do 49152 oraz wartość (Port Priority) wszystkich jego interfejsów do 3000.
  • Proces działania funkcji UplinkFast jest następujący:
    1. Domyślnie przełącznik przetrzymuje w swojej pamięci, kopie wiadomości superior BPDU na interfejsie pełniącym rolę root port. Funkcja UplinkFast umożliwia zapamiętanie dodatkowej wiadomości Inferior BPDU, wskazującej zapasowe połączenie do root-a.
    2. W przypadku utraty głównego połączenia z root-em, funkcja UplinkFast umożliwia natychmiastowe przełączenie ruchu sieciowego na interfejs zapasowy, posiadający drugą najniższą wartość wiadomości BPDU. Przenosząc go od razu ze stanu „Blocking” do stanu „Forwarding”, pomijając tym samym proces nasłuchu „Listening State” oraz etap nauki adresów MAC „Learning State”.
    3. Po aktywowaniu zapasowego połączenia, przełącznik przenosi zawartość tablicy „MAC address Table” z dezaktywowanego interfejsu na nowy zapasowy, dzięki czemu dany port nie musi na nowo uczyć się wszystkich adresów MAC.  Związku z tym posunięciem powstaje problem związany z brakiem synchronizacji pomiędzy tablicami adresów MAC na sąsiednich urządzeniach, które nadal posiadają adresy przypisane do starego interfejsu.
    4. W celu rozwiązania problemu desynchronizacji, przełącznik rozpoczyna proces przekazywania informacji o zapisanych adresach MAC do swoich sąsiadów. W tym celu wysyła ramki Ethernet-owe adresowane na specjalny multicast-owy adres MAC 0100.0CCD.CDCD, wraz z docelowym adresem zawierającym poszczególne adresy MAC przypisane do dezaktywowanego interfejsu sieciowego. Dzięki takiemu zabiegowi sąsiednie urządzenie może zmienić zawartość swojej tablicy „MAC address Table” (Wiadomości są wysyłane z prędkością określaną poprzez wartość „max-update-rate”).
Funkcja UplinkFast powinna być aktywna jedynie na przełącznikach warstwy dostępowej (Access Layer). 

Funkcja BackboneFast

  • Funkcja BackboneFast umożliwia skrócenie czasu oczekiwania przy zmianie topologii sieciowej „Indirect Topology Changes”, z około 52 sekund do 30 sekund (Funkcja ta umożliwia pominięcie czasu oczekiwania Max-Age).
  • Funkcja BackboneFast umożliwia przyspieszenie procesu zmiany topologii sieciowej, zależnie od miejsca odebrania wiadomości Inferior BPDU. Poszczególne opcje prezentują się następująco:
    • Jeżeli wiadomość Inferior BPDU dotarła na interfejs Blocking Port, przełącznik uzna port będący w trybie Root Port jak i wszystkie inne blokowane interfejsy za połączenia alternatywne względem root-a (Alternative).
    • Jeżeli wiadomość Inferior BPDU dotarła na interfejs Root Port, przełącznik uzna wszystkie blokowane interfejsy za połączenia alternatywne (Alternative) do przełącznika pełniącego rolę root-a.
    • Jeżeli wiadomość Inferior BPDU dotarła na interfejs Root Port a przełącznik nie posiada innych portów będących w stanie blokowania uzna, że utracił on połączenie z root-em, a tym samym uzna się za nowego root-a, przed upływem czasu „Max-Age”.
  • Jeżeli lokalny przełącznik posiada blokowane interfejsy z włączoną funkcją BackboneFast, wykorzysta protokół RLQ (Root Link Query) do sprawdzenia czy inne przełączniki posiadają połączenie z root-em.
  • Po wysłaniu pierwszego zapytania RLQ Request przełącznik oczekuje na odpowiedź od urządzenia pełniącego rolę root-a lub mającego z nim łączność. Jeżeli sąsiadujące przełączniki nie spełniają opisanych powyżej wymagań przesyłają zapytanie RLQ Request dalej, dopóki jedno z urządzeń nie spełni wymagań odsyłając tym samym odpowiedzi RLQ Replay.
  • Jeżeli otrzymana odpowiedź RLQ Replay nadeszła z interfejsu działającego w trybie RP połączenie z root-em jest stabilne, jeżeli jednak odpowiedź nadeszła na porcie działającym w innym trybie, alternatywne połączenie musi być wybrane, a czas „Max-Age” automatycznie upływa umożliwiając szybszy proces wyboru RP.
Funkcja BackboneFast powinna być włączona na wszystkich przełącznikach w sieci, aby zapewnić obsługę zapytań RLQ Request oraz RLQ Replay na wszystkich przełącznikach. 

Funkcja PortFast

  • Funkcja PortFast automatycznie przenosi interfejs ze stanu „Blocking” do stanu „Forwarding State”, pomijając tym samym proces nasłuchu „Listening State” oraz etap nauki adresów MAC „Learning State”. Dzięki czemu czas oczekiwania na zmianę topologii zostaje skrócony o 30 sekund do czasu 0 sekund.
  • Pomimo przyspieszonego tempa, funkcja PortFast nadal umożliwia wykrywania pętli sieciowych, ponieważ każda otrzymana wiadomość BPDU na interfejsie z włączoną funkcją PortFast powoduje automatyczne zresetowanie interfejsu a tym samym dezaktywację funkcji.
  • W przypadku wykrycia wiadomość BPDU na interfejsie z aktywną funkcją PortFast, przełącznik przeniesie określony  port przez podstawowy proces „Listening State” -> „Learning State” -> „Forwarding State”.
  • Funkcja PortFast powinna być włączona na interfejsach:
    • Dostępowych (Access, Edge) podłączonych do urządzeń końcowych.
Funkcja BPDU Guard tudzież funkcja BPDU Filter powinna być aktywowana razem z funkcją PortFast.

Bezpieczeństwo protokołu STP

Funkcja Root Guard

  • Funkcja Root Guard chroni sieć lokalną LAN, przed niekontrolowanym podłączaniem niezaufanych urządzeń, rozgłaszających pakiety STP z niższą wartość BID. Sytuacja tego typu może doprowadzić do zmiany obecnego root-a na nowego, znajdującego się na innym niekorzystnym dla sieci miejscu. Zasada działania Root Guard-a jest następująca:
    1. Przełącznik zapamiętuje wartość BID obecnego root-a, podłączonego do interfejsu z wyłączoną funkcją Root Guard.
    2. Jeżeli przełącznik odbierze wiadomość BPDU z niższą wartością BID (Superior BPDU) na interfejsie z włączoną funkcją Root Guard, przejdzie w stan root-inconsistent STP state blokując zmianę obecnego root-a (Stan ten blokuje również ruch sieciowy na danym interfejsie umożliwiając przesyłanie jedynie wiadomości BPDU).
    3. Jeżeli wiadomości BPDU z niższą wartością BID przestaną napływać na blokowanym interfejsie Root Guard, stan „root-inconsistent” zostanie odwołany.
  • Funkcja Root Guard powinna być włączona na interfejsach:
    • Które nigdy nie powinny być podłączone do root-a, np. interfejsach dostępowych (Access, Edge).

Funkcja Loop Guard

  • Funkcja Loop Guard chroni sieć przed powstaniem pętli, w skutek przerwania napływu wiadomości Configuration BPDU.
  • Jeżeli do interfejsu sieciowego nie docierają wiadomości BPDU lokalny urządzenie uznaje, że dany port nie jest podłączony do innego przełącznika, rozpoczynając tym samym proces aktywacji interfejsu do stanu „Forwarding” (Po upływie czasu „Max-Age”). Może jednak zaistnieć sytuacja, w której wiadomości BPDU były filtrowane bądź w inny sposób zablokowane, a tym samym do danego interfejsu sieciowego nadal podłączony inny przełącznik, który może doprowadzić do powstania pętli sieciowej.
  • Aby uniknąć takiego scenariusza, funkcja „Loop Guard” śledzi interfejsy na których przełącznik otrzymuje wiadomości BPDU, jeżeli przestaną one napływać przenosi dany interfejs do stanu blokowania Loop-inconsistent State.
  • Funkcja Loop Guard powinna być włączona na interfejsach:
    • Pełniących rolę Root Port, Alternate Port oraz Backup Port.

Funkcja BPDU Guard

  • Funkcja BPDU przenosi interfejs sieciowy w stan Errdisable State po odebraniu pierwszej nadchodzącej ramki BPDU.
  • W przypadku podłączenia do interfejsu z włączoną funkcją BPDU:
    • Przełącznika zarządzanego, blokada nastąpi po wysłaniu przez niego pierwszej wiadomości BPDU.
    • Natomiast w przypadku przełącznika niezarządzanego, blokada nastąpi w przypadku wykrycia pętli, kiedy to pakiet STP wysłany z sieci lokalnej LAN zostaną zapętlone w podłączonym przełączniku a następnie wrócą z powrotem do sieci lokalnej LAN.
BPDU Guard nie posiada żadnych mechanizmów zapobiegających powstawaniu pętli, w przypadku podłączenia hub-a.
BPDU Guard przepuszcza pakiety BPDU wychodzące ze skonfigurowanego interfejsu, dzięki czemu w przypadku powstania pętli, wysyłane pakiety powrócą na interfejs wywołując alarm bezpieczeństwa a tym samym aktywują jego blokadę.

Funkcja Filtering STP

  • Funkcja Filtering BPDU blokuje możliwość wysyłania jak i odpierania wiadomości BPDU na określonym Interfejsie sieciowym. W przypadku otrzymania ramki BPDU, interfejs przejdzie domyślny proces aktywacji protokołu STP: „Blocking State” <->  „Forwarding State”.

UDLD (Unidirectional Link Detection)

  • Protokół UDLD umożliwia wykrycie awarii przewodu światłowodowego, w przypadku poluzowania się bądź też całkowitego przerwania Jednej z nitek światłowodu. A tym samym wywołując zjawisko komunikacji jednostronnej.
  • Bez skonfigurowanego protokołu UDLD uszkodzenie światłowodu może nie zostać wykryte, a tym samym wymiana danych będzie odbywać się bez przeszkód, oczywiście tylko jedynie w jednym kierunku. Takie zdarzenie może doprowadzić do powstania pętli sieciowej, ponieważ jedna ze stron komunikacji nie będzie otrzymywała wiadomość BPDU a tym samy uzna, że na danym interfejsie nie ma już innego przełącznika. Tymczasem druga strona połączenia nadal będzie otrzymywała wiadomości BPDU, nie zmieniając swojego statusu protokołu STP, względem określonego interfejsu sieciowego.
  • W celu wykrycia awarii przewodu światłowodowego, protokół UDLD systematycznie wysyła wiadomości pomiędzy obydwoma przełącznikami, przetrzymując informacje o sąsiednich urządzeniach w tablicy Neighbor Database.
  • Wiadomości protokołu UDLD są systematycznie wysyłane przez obydwie strony komunikacji co 15 sekund. Jeśli przełącznik nie otrzyma na nie odpowiedzi przez potrójny okres skonfigurowanego czasu (3 x 15 sekund) uzna, że połączenie nie funkcjonuje poprawnie, a tym samym je zablokuje. Wartość czasu oczekiwania nie powinna być dłuższa niż sumowana wartość czasu „Max-Age” z podwójną wartością czasu „Delay Timers” (20 sekund + 2 x 15 sekund = 50 sekund). Ponieważ protokół STP mógłby aktywować blokowany wcześniej interfejs.
  • Protokół UDLD działa w dwóch trybach:
    • Normalny (Normal) – Po wykryciu jednokierunkowego połączenia pomiędzy przełącznikami, protokół UDLD nie wstrzymuje komunikacji pomiędzy nimi, a jedynie wysyła wiadomości Syslog.
    • Agresywny (Aggressive) – Po wykryciu jednokierunkowego połączenia pomiędzy przełącznikami, protokół UDLD wysyła 8 wiadomości w odstępach czasowych co jedną sekundę, jeśli nie otrzyma na nie odpowiedzi przenosi dany interfejs w stan blokowania Errdisable State.
  • W przypadku pierwszej aktywacji protokołu UDLD na interfejsie sieciowym, przełącznik oczekuje na otrzymanie co najmniej jednej odpowiedzi UDLD z drugiej strony połączenia (Znajdując się przy tym w stanie „Unknown”), zanim przeniesie określony interfejs w stan „Errdisable”. Dzięki czemu nieskonfigurowany interfejs z aktywowanym protokołem UDLD nie zostanie zablokowany zaraz po włączeniu protokołu UDLD.
  • Protokół UDLD powinien być włączona na interfejsach:
    • Wykorzystujących połączenia światłowodowe, pomiędzy przełącznikami.
Proces wykrywania jednokierunkowego połączenia jest nazywany Event Driven Detection and Echoing.
Czas wysyłania wiadomości UDLD nie musi być taki sam na obydwóch urządzeniach.
Jeżeli awarii ulegnie interfejs należący do grupy EthernetChanel, zablokowany zostanie jedynie wadliwy interfejs.
Protokół UDLD musi być skonfigurowany na obydwóch stronach połączenia, ponieważ przełącznik z wyłączoną funkcją UDLD nie odpowiada na wiadomości UDLD drugiej strony.
Protokół UDLD stanowi własność firmy CISCO.

Podsumowanie funkcji protokołu STP

Zastosowanie funkcji protokołu STP
Funkcja Konfiguracja Globalna (Zalecane zastosowanie) Konfiguracja interfejsu (Zalecane zastosowanie) Stan błędu
Root Guard ———————————————– spanning-tree guard root Root-inconsistent
Zastosowanie: Interfejsy które nigdy nie powinny pełnić roli Root Port
Loop Guard spanning-tree loopguard default spanning-tree guard loop Loop-inconsistent
Zastosowanie: Interfejsy pełniące rolę Root, Alternate oraz Backup Port
  BPDU Guard spanning-tree portfast bpduguard default spanning-tree bpduguard enabled   Errdisable State
Zastosowanie: Interfejsy podłączone do urządzeń końcowych
BPDU Filter spanning-tree bpdufilter default spanning-tree bpdufilter enabled —————————-
UDLD udld enable udld enable Errdisable State
Zastosowanie: Wszystkie interfejsy światłowodowe
UplinkFast Zastosowanie: Wszystkie przełączniki warstwy dostępowej (Access)
BackboneFast Zastosowanie: Wszystkie przełączniki w danej sieci

Porównanie funkcji protokołu STP

Zalecenia związane ze stosowaniem protokołu STP

  • W celu optymalizacji konfiguracji protokołu Spanning Tree Protocol, należy
    1. Statycznie skonfigurować główny oraz zapasowy przełącznik pełniący rolę root-a.
    2. Określić role interfejsów w topologii protokołu STP.
    3. Wykorzystywać funkcje specjalne protokołu STP.
    4. Włączyć funkcję UDLD na połączeniach światłowodowych.
    5. Tworzyć proste topologie protokołu STP.
    6. Wykorzystywać protokół PVRST+ bądź MST.

Pozostałe tematy związane z protokołem STP

PDFPRINT

Robert T Kucharski

Cisco Network Engineer in GPW.

Dodaj komentarz