Role portów w STP

Łukasz Kowalski
Łukasz Kowalski Skomentuj

Ten artykuł różni się nieco od naszych „standardowych” publikacji. Przyjęliśmy w nim inną koncepcję. Poniżej przedstawiamy Ci pytanie testowe z zakresu CCNA, dotyczące ról portów w STP.

Przeprowadzimy Cię przez pełną analizę pytania oraz dostępnych odpowiedzi. Przygotowaliśmy dla Ciebie również plik Packet Tracer, który pozwoli Ci przelabować samodzielnie omawiany przypadek.

Pozwoli Ci to sprawdzić, odświeżyć i utrwalić Twoją wiedzę.

Mamy tego więcej!

Brzmi ciekawie? Jeśli tak to zapisz się poniżej, aby otrzymać kolejne zadania tego typu prosto na Twoją skrzynkę mailową.

Treść zadania

Pytanie: Sieć w powyższym przykładzie korzysta z protokołu RSTP. Jakie są role portów na Switchu A?

A.
Fa0/1 – Root
Fa0/2 – Alternate
Fa0/3 – Designated
Fa0/4 – Designated

B.
Fa0/1 – Alternate
Fa0/2 – Root
Fa0/3 – Designated
Fa0/4 – Designated

C.
Fa0/1 – Designated
Fa0/2 – Designated
Fa0/3 – Root
Fa0/4 – Alternate

D. 
Fa0/1 – Root
Fa0/2 – Root
Fa0/3 – Designated
Fa0/4 – Alternate

Plik Packet Tracer

Klikając przycisk poniżej pobierzesz gotowy projekt z powyższą topologią do uruchomienia w Packet Tracer. Nauka poprzez praktykę daje najlepsze rezultaty!

Analiza pytania

Protokół RSTP (ang. Rapid Spanning Tree Protocol) jest jednym z podstawowych mechanizmów poziomu warstwy drugiej modelu ISO OSI, którego celem jest zapobieganie powstawaniu pętli w sieci. Aby zrealizować ten cel do każdego aktywnego portu na Switchu przydzielana jest pewna rola. W przypadku RSTP mamy do czynienia z poniższymi możliwościami:

  • Root – port posiadający ścieżkę o najniższym koszcie prowadzącą do Root Bridge’a. Na każdym Switchu niebędącym Root Bridgem znajdzie się tylko jeden port z taką rolą.
  • Designated – port, który zwyczajnie przełącza ramki. Wszystkie porty na Root Bridge’u mają tę rolę.
  • Alternate – port, który jest zablokowany dla normalnego ruchu, ale wciąż odbiera ramki BPDU (ang. Bridge Protocol Data Unit), czyli ramki protokołu STP, od sąsiedniego Switcha. Jeśli obecny Root Port przestanie działać to port Alternate przejmie jego rolę. Jest to zatem zapasowa ścieżka w kierunku Root Bridge’a.
  • Backup – port, który jest zablokowany dla normalnego ruchu i odbiera ramki BPDU wysłane przez Switcha, którego jest częścią. Taka sytuacja możliwa jest tylko wtedy, gdy mamy współdzielone medium w sieci, np. z powodu używania Hub’ów.

Dzięki nadaniu poszczególnych ról wszystkim aktywnym portom Switch wie, które porty są dostępne do podjęcia decyzji o przełączeniu ramki, a które nie.

Na diagramie dołączonym do zadania widzimy sieć składającą się z trzech Switchy. Każdy z każdym połączony jest dwoma niezależnymi połączeniami fizycznymi, które nie są spięte w jeden logiczny Etherchannel. To bardzo ważne stwierdzenie, ponieważ protokół STP będzie traktować każde połączenie niezależnie i np. dwóm portom prowadzącym do tego samego sąsiada może przydzielić różne role.

Oprócz tego widzimy, że dla każdego Switcha podano jego priorytet i adres MAC. Dzięki temu będziemy w stanie wskazać Switch pełniący rolę Root Bridge’a w tej sieci. A jest to konieczne do prawidłowego wskazania ról portów na każdym urządzeniu. I mimo, że pytanie dotyczy wyłącznie Switcha A, to nie możemy mieć pewności co do dobrej odpowiedzi nie znając pełnego obrazu sytuacji również na jego sąsiadach.

Analiza odpowiedzi

Każda z odpowiedzi wskazuje na role portów Switcha A, który tych portów ma w sumie cztery. Bardzo łatwo będzie nam wyeliminować z dalszych rozważań odpowiedź D. Dlaczego?

Odpowiedź D brzmi:
Fa0/1 – Root
Fa0/2 – Root
Fa0/3 – Designated
Fa0/4 – Alternate

Na Switchu, który nie jest Root Bridgem, musi znajdować się tylko jeden port z rolą Root. Powód jest prosty – Switch musi wybrać tylko jedną najlepszą ścieżkę prowadzącą do Root Bridge’a, a algorytm protokołu STP umożliwia jednoznaczny wybór nawet w najbardziej skomplikowanej sytuacji.

Od razu na myśl przychodzi jeszcze jedna kwestia – w każdej odpowiedzi przynajmniej jeden port ma rolę Root. To oznacza, że w tej sieci Switch A na pewno nie jest Root Bridgem.

Wyjaśnienie szczegółowe

W zadaniu tego typu powinniśmy zbadać stan STP w całej sieci. Do wykonania mamy następujące kroki:

  1. Wskazać Switch będący Root Bridgem.
  2. Oznaczyć wszystkie Root Porty w sieci.
  3. Oznaczyć pozostałe porty mające rolę Designated, Alternate albo Backup.

No to zaczynamy!

1. Root Bridge

Switch o najniższym Bridge ID w sieci zostaje Root Bridgem. Bridge ID to ciąg znaków składający się z priorytetu Switcha i jego adresu MAC. Spójrzmy na sytuację w sieci z tego zadania:

Najłatwiej jest zacząć od porównania priorytetów. Switch C odpada, ponieważ ma najwyższy priorytet 36,864. W grze pozostają Switche A i B o tym samym domyślnym priorytecie 32,768. Porównując adresy MAC wybieramy najniższy i docieramy do rezultatu działania algorytmu – Root Bridgem w tej sieci zostaje Switch B.

2. Root Porty

Dla przypomnienia – Root Port to taki port, poprzez który Switch ma najkrótszą ścieżkę do Root Bridge’a. W tym przykładzie wszystkie połączenia są typu FastEthernet (100 Mb/s), więc zgodnie z krótką notacją każde z nich ma koszt 19.

Na Switchu A

Switch A może trafić do Switcha B na dwa sposoby:

  • bezpośrednim łączem FastEthernet – koszt 19,
  • poprzez Switch C, czyli poprzez dwa łącza FastEthernet – łączny koszt 38.

Oczywiście wybrana zostaje opcja pierwsza o niższym koszcie. Trafiamy jednak na kolejny dylemat – Switch A wybierze swój port Fa0/1, czy Fa0/2?

Odpowiedź brzmi – port o niższym priorytecie jest preferowany, czyli Fa0/1. Spójrzmy na wyciąg z CLI na Switchu A:

SwitchA#show spanning-tree 

(...) 

Interface        Role Sts Cost      Prio.Nbr Type 
---------------- ---- --- --------- -------- -------------------------------- 
Fa0/1            Root FWD 19        128.1    P2p 
Fa0/2            Altn BLK 19        128.2    P2p 

(...)Code language: plaintext (plaintext)

Potwierdza się koszt 19 dla każdego z tych portów. Zwróćmy uwagę na kolumnę “Prio.Nbr”, która przedstawia priorytet portu (ang. port priority). Wartość ta składa się z priorytetu właściwego, tu o domyślnej wartości 128 dla obu portów, rozszerzonego o numer portu po kropce. Standardowo w STP niższa wartość jest preferowana, zatem w przypadku równych priorytetów właściwych wybierany jest port o niższym numerze.

Powyższy wybór wymagał od nas podjęcia pewnego założenia – oba porty mają ten sam priorytet właściwy. Przypominamy zatem o dobrej praktyce podczas rozwiązywania zadań testowych. Jeżeli coś nie jest wskazane wprost w treści zadania bądź na dołączonej grafice, to najlepiej będzie przyjąć domyślne wartości.

Na Switchu C

Switch C również może trafić do Switcha B na dwa sposoby:

  • bezpośrednim łączem FastEthernet – koszt 19,
  • poprzez Switch A, czyli poprzez dwa łącza FastEthernet – łączny koszt 38.

Ponownie wybrana zostaje ścieżka bezpośrednia przy użyciu portu o niższym numerze, czyli również Fa0/1. Na ten moment stan naszej wiedzy prezentuje się następująco:

3. Pozostałe role portów

Zaczynamy od tego, że wszystkie porty na Root Bridge’u otrzymują rolę Designated.

Następnie zajmiemy się portami Fa0/2 na Switchach A i C. Oba posiadają ścieżkę o najniższym koszcie do Root Bridge’a, ale przegrały pojedynek o miano Root Portów z portami Fa0/1. W związku z tym oba porty Fa0/2 otrzymują rolę Alternate, jako alternatywne ścieżki w przypadku awarii Root Portów.

Na sam koniec zostają nam dwa połączenia między Switchami A i C. Trzymamy się zasady, zgodnie z którą w każdym segmencie sieci może być tylko jeden port z rolą Designated. W przeciwnym razie moglibyśmy mieć do czynienia z pętlą.

Rolę Designated w segmencie przyjmuje port, który należy do Switcha o niższym Bridge ID. Dla uściślenia – segment rozumiemy jako domenę kolizyjną. W tym przykładzie każde połączenie to osobna domena kolizyjna, a zatem i osobna decyzja. Switch A ma niższy Bridge ID niż Switch C, więc rolę Designated przyjmą porty  Fa0/3 i Fa0/4 na Switchu A. Z kolei porty Fa0/3 i Fa0/4 na Switchu C będą mieć rolę Alternate, ponieważ Switch C posiada już wcześniej określony Root Port.

Tym samym znamy już role wszystkich portów i jesteśmy w stanie wskazać prawidłową odpowiedź. Potwierdza to również wyciąg z CLI na Switchu A:

SwitchA#show spanning-tree 

(...) 

Interface        Role Sts Cost      Prio.Nbr Type 
---------------- ---- --- --------- -------- -------------------------------- 
Fa0/1            Root FWD 19        128.1    P2p 
Fa0/2            Altn BLK 19        128.2    P2p 
Fa0/3            Desg FWD 19        128.3    P2p 
Fa0/4            Desg FWD 19        128.4    P2p Code language: plaintext (plaintext)

Prawidłowa odpowiedź

A.
Fa0/1 – Root
Fa0/2 – Alternate
Fa0/3 – Designated
Fa0/4 – Designated

Warte zapamiętania

Wnioski i stwierdzenia warte zapamiętania, które możemy wyłowić z analizy tej zagadki sieciowej:

  • Protokół RSTP oferuje cztery możliwe role portów:
    • Root,
    • Designated,
    • Alternate,
    • Backup.
  • Switche wymieniają się informacjami w zakresie działania protokołu STP korzystając z ramek BPDU.
  • Root Bridgem zostaje Switch o najniższym Bridge ID w sieci.
  • W każdym segmencie sieci może być tylko jeden port z rolą Designated.
  • Na Switchu niebędącym Root Bridgem musi znajdować się tylko jeden Root Port.
  • Priorytet portu brany jest pod uwagę gdy o daną rolę rywalizują porty w ramach jednego Switcha. Niższy priorytet wygrywa.
  • Priorytet portu składa się z priorytetu właściwego i numeru portu. Dlatego w przypadku domyślnych (równych) priorytetów wygrywa niższy port.

Dla ciekawskich

A co z rolą Backup?

W dzisiejszych sieciach raczej rzadko spotkamy port z rolą Backup. Tę rolę przyjmie port tylko wtedy, gdy Switch otrzyma ramkę BPDU wysłaną przez samego siebie. Będzie to oznaczać, że Switch ma co najmniej dwa połączenia z jednym segmentem sieci. Dla przykładu taki rezultat otrzymamy wstawiając Hub pomiędzy Switche A i C:

Ramka BPDU wysłana przez Switch A portem Fa0/3 trafi do Huba, który sygnał ten wyśle na wszystkie porty oprócz tego, z którego otrzymał oryginalną ramkę. W ten sposób Switch A otrzyma kopię własnej ramki na porcie Fa0/4 i będzie wiedział, że porty Fa0/3 i Fa0/4 należą do tej samej domeny kolizyjnej. Wyciąg z komendy CLI na Switchu A również to odzwierciedla – w kolumnie Type zamiast P2p (Point-to-point) mamy Shr (Shared):

SwitchA#show spanning-tree 

(...) 

Interface        Role Sts Cost      Prio.Nbr Type 
---------------- ---- --- --------- -------- -------------------------------- 
Fa0/1            Root FWD 19        128.1    P2p 
Fa0/2            Altn BLK 19        128.2    P2p 
Fa0/3            Desg FWD 19        128.3    Shr 
Fa0/4            Back BLK 19        128.4    Shr Code language: plaintext (plaintext)

W tym momencie wracamy do zasady, że w jednym segmencie możemy mieć tylko jeden port w roli Designated. Z racji niższego Bridge ID port ten będzie się znajdować na Switchu A, a nie na Switchu C. Z kolei z racji niższego priorytetu portu rolę Designated otrzyma port Fa0/3, a dla portu Fa0/4 przypadnie rola Backup.

Hub jako urządzenie działające wyłącznie w warstwie pierwszej modelu ISO OSI nie obsługuje protokołu STP, więc jego porty nie mają przydzielonych ról STP.

Mamy tego więcej!

Spodobała Ci się taka forma? Jeśli tak to zapisz się poniżej, aby otrzymać kolejne zadania tego typu prosto na Twoją skrzynkę mailową.

Zostaw komentarz
Otrzymuj powiadomienia z tej dyskusji
Powiadom mnie o
guest

0 - Ilość komentarzy
Inline Feedbacks
View all comments