STP Topology Change Notification

 

STP TCN (Topology Change Notification) jest procedurą jawnego powiadomienia o zmianie w sieci. Dzięki niej, sieć zyskuje szybszą możliwość rekonfiguracji i uwzględnienia zmian do jakich doszło w aktywnej topologii.


Problem sieci bez STP TCN

Podczas zmian w aktywnej topologii, może dojść do zmiany położenia przełączników względem siebie oraz sposobu połączenia ich portów. Taka zmiana może doprowadzić do tego, że z punktu widzenia przełącznika, adresy osiągalne za pośrednictwem jednego z portów, staną się osiągalne przez całkiem inny. Warto dodać, że nie dochodzi tutaj do zmiany portów przyłączeniowych urządzeń końcowych. Zmieniają się tylko połączenia pomiędzy przełącznikami. Sytuacja taka została przedstawiona poniżej, gdzie po awarii połączenia podstawowego, przełączniki posiadają jeszcze nieaktualne wpisy w swoich tablicach przełączania.

Według tych wpisów, droga z S2 do H2 i z S4 do H1 prowadzi po zmianie w sieci przez złe porty. Wpis te zostały ujęte w czerwonych ramki (linia przerywana). Zatem pomimo tego, iż druga ścieżka dla danych istnieje, to nadal nie będzie komunikacji pomiędzy H1 i H2.

W normalnych warunkach pracy sieci, informacje przetrzymywane w tablicy przełączania, muszą być aktualizowane tylko w wypadku fizycznej zmiany lokalizacji urządzeń końcowych. Dodatkowo, większość takich urządzeń transmituje ramkę do sieci podczas aktywacji interfejsu sieciowego (np. Gratuitous ARP w IPv4 lub DAD w IPv6), która aktualizuje tablice przełączania. Zatem, wydawać się może pożądana duża wartość licznika czasu, przez który przetrzymywane są dynamiczne wpisy w tablicy przełączania. Zgodnie ze standardami IEEE, domyślna wartość tego czasu (Ageing Time) powinna wynosić 300 sekund. Jest to czas liczony od dodania wpisu lub jego ostatniej aktualizacji (użycia wpisu do przekazania ramki). Jak widać w tym scenariuszu, niektóre sytuacje w celu poprawy czasu zbieżności mogą wymagać dodatkowej obsługi, która w takich przypadkach realizowana jest za pomocą STP TCN (Topology Change Notification).


Enkapsulacja BPDU  

Poniżej została pokazana budowa TCN BPDU i Configuration BPDU. Sposób ich enkapsulacji jest taki sam, natomiast różnią się wartościami pola BPDU Type i resztą pól. Szczegóły te, zostały opisane w poprzednim artykule.

 

Procedura obsługi aktywnej zmiany w topologii wykorzystuje także 2 bity flag, jakie przenoszone są w Configuration BPDU - TC (Topology Change) i TCA (Topology Change Acknowledgment). Więcej o nich znajduje się poniżej.


Przebieg procedury TCN

Kiedy przełącznik, który nie jest przełącznikiem głównym, wykryje zmianę w aktywnej topologię sieci, to wysyła Topology Change Notification BPDU, do segmentu sieci przyłączonego przez swój port główny. Transmisja ta jest powtarzana co okres lokalnego czasu Hello Time, do momentu otrzymania potwierdzenia od przełącznika desygnowanego. Potwierdzenie to powinno być zawarte w kolejnym Configuration BPDU, jakie będzie on do nas wysyłał i jest sygnalizowane poprzez ustawienie flagi Topology Change Acknowledgment.

Jeśli żadna wiadomość konfiguracyjna nie zostanie odebrana, to przełącznik po czasie Max Age - Message Age, rozpoczyna swoją rekonfigurację. Odbywa się ona zgodnie ze standardową procedurą, związaną z minięciem czasu życia wcześniej odebranej wiadomości konfiguracyjnej.

W normalnych warunkach, przełącznik ten powinien odebrać Configuration BPDU z ustawioną flagą Topology Change Acknowledgment i przestać generować Topology Change Notification BPDU przez swój port główny. Przełącznik desygnowany powtarza tę samą procedurę w kierunku przełącznika głównego.

Kiedy przełącznik główny odbierze tę informację, to nie wysyła już żadnego Topology Change Notification BPDU. Zamiast tego, przełącznik ten wysyła przez interfejs na którym odebrał powiadomienie, pierwszy pakiet Configuration BPDU z ustawionymi flagami Topology Change Acknowledgment (w celu potwierdzenia otrzymania powiadomienia) oraz Topology Change (w celu powiadomienia innych przełączników o zmianie w sieci). Na pozostałych interfejsach wysyłany jest pakiet tylko z flagą TC.

Pierwszy przełącznik, który odbiera pierwszy pakiet z obiema flagami, resetuje wartość flagi Topology Change Acknowledgment, jako że potwierdzenie to było skierowane tylko do niego i wysyła w dól drzewa tylko ustawioną flagę Topology Change. Kolejne pakiety Configuration BPDU, transmitowane są już tylko z flagą Topology Change. Flaga Topology Change ustawiona jest przez okres Forward Delay + Max Age, czyli domyślnie 35 sekund. 

Jeśli przełącznik, który jest przełącznikiem głównym zmienił aktywną topologię sieci, to wysyła on od razu w dól drzewa Configuration BPDU z ustawioną flagą Topology Change, przez okres Forward Delay + Max Age. Wszystko to zostało zobrazowane poniżej.

Przez okres otrzymywania Configuration BPDU z ustawioną flagą Topology Change, każdy z przełączników wykorzystuje wartość Forward Delay z tej wiadomości konfiguracyjnej, dla wszystkich dynamicznych wpisów w tablicy przełączania. Gwarantuje to szybsze pozbycie się nieprawidłowych wpisów. Wpisy, które są prawdziwe i ciągle wykorzystywane przez przełącznik w tym okresie, pozostaną. Wartość ich licznika będzie ciągle aktualizowana i nie zdąży on minąć.

Po otrzymaniu Configuration BPDU bez ustawionej flagi Topology Change, przełącznik zaczyna korzystać z standardowej wartości licznika Ageing Time dla dynamicznych wpisów, czyli domyślnie 300 sekund.


Kiedy dochodzi do aktywacji TCN

Do aktywacji procedury zmiany w aktywnej topologii dochodzi na skutek poniższych zdarzeń:

  • port przechodzi do stanu Forwarding i posiada co najmniej jeden port desygnowany (możliwa zmiana tras),
  • port przechodzi ze stanu Forwarding/Learning do stanu Blocking (możliwa zmiana tras i nieprawidłowe tablice),
  • została zmieniona wartość identyfikatora przełącznika głównego,
  • zostało odebrane Topology Change Notification BPDU,

Mechanizm wykrywania zmian w aktywnej topologii może nie zawsze być pożądany. Jeżeli mamy przełącznik, do którego portów przyłączone są częściowo urządzenia końcowe, to każda ich aktywacja powoduje wywołanie zmiany w aktywnej topologii. Podobnie w drugą stronę, kiedy urządzenie jest wypinane z sieci.

W związku z tym, że do tego portu załączone jest urządzenie końcowe, to nie musimy się obawiać tego, że załączenie tego portu spowoduje powstanie redundantnej ścieżki, a jego wyłączenie zmianę w budowie aktywnej topologii. Stąd wszelkie procedury związane ze zmianą topologii są tutaj zbędne. Aby rozwiązać ten problem, można wyłączyć działanie tego mechanizmu na poszczególnych portach. W tym celu stosowany jest mechanizm Edge Port, nazywany też często PortFast, o którym będzie więcej w innym artykule. 


Praktyczny przykład działania TCN

W celu pokazania działania TCN, została wykorzysta bardzo prosta sieć, którą widać na poniższym rysunku. Wszystkie porty przełącznika posiadają domyślną konfigurację. W związku z tym co zostało powiedziane wyżej, podłączenie urządzenia końcowego do portu powinno aktywować TCN. Tak też się też stało, kiedy do poru S3 został podłączony telefon.


Całe zdarzenie można zaobserwować w wyniku poleceń debug, jakie zostały wykonane na przełącznikach Cisco Catalyst. Użyte do tego celu polecenia znajdują się poniżej. Warto porównać budowę wyłapanych w debug'u BPDU z opisaną na samej górze budową tych wiadomości.

Na błękitnym tle widać odebrane przez przełącznik S1 (SW-A1) TCN BPDU. S1 jest przełącznikiem głównym. W skutek tego, generuje on pierwsze BPDU z flagami TCA i TC (żółto-pomarańczowe tło), a kolejne tylko z flagą TC (różowe tło).

Włączenie pokazywanie zdarzeń związanych z działanie STP:

S1# debug spanning-tree events

Włączenie pokazywania informacji o wysyłanych i odebranych BPDU:

S1# debug spanning-tree bpdu

Jeżeli na przełącznikach działa protokół STP, to aktualnie używany czas starzenia się wpisów w tablicy przełączającej powinno weryfikować się za pomocą poniższego polecenia.

S1# show spanning-tree

Poniżej widać czas starzenia się wpisów w tablicy przełączania przed aktywacją procedury TCN (lewa strona) oraz po aktywacji procedury TCN (prawa strona).

W związku z powyższym, jeszcze raz warto przypomnieć o odpowiedniej konfiguracji portów dostępowych dla urządzeń końcowych. Bez tego, każde ich wpięcie/wypięcie do sieci, będzie powodowało dość sporą, opisaną w tym artykule, serię zdarzeń w sieci.


Zapraszamy do kontaktu drogą mailową This email address is being protected from spambots. You need JavaScript enabled to view it. lub telefonicznie +48 797 004 932.