Protokół STP i MST
Przygotowanie, scenariusz
Info
Do realizacji tego zadania wymagany będzie dowolnie wybrany emulator np. Cisco Modeling Labs, GNS3, EVE-NG oraz dostęp do obrazów Cisco IOS.
- Zobaczymy jak działa Spanning Tree Protocol (STP)
- Wdrożymy Rapid Spanning Tree Protocol (RSTP).
- Sprawdzimy mechanizmy modyfikacji i ochrony STP.
- Zaimplementujemy protokół Multiple Spanning Tree.(MST).
Topologia
Adresacja
- S1 VLAN1 - 10.0.0.1 255.0.0.0
- S2 VLAN1 - 10.0.0.2 255.0.0.0
- S2 VLAN1 - 10.0.0.3 255.0.0.0
Konfiguracja S1
Tryb konfiguracyjny i zmiana nazwy urządzenia.
inserthostname-here#configure terminal
inserthostname-here#hostname S1
Uruchamiamy Per-VLAN Spanning Tree (PVST) na przełączniku.
S1(config)#spanning-tree mode pvst
Tworzymy dodatkowy VLAN.
S1(config)#vlan 2
S1(config-vlan)#name vlan2
Adresujemy VLAN1 domyślnie dostępny na przełączniku.
S1(config)#interface vlan 1
S1(config-if)#ip address 10.0.0.1 255.0.0.0
S1(config-if)#no shutdown
Interfejsy pomiędzy przełącznikami będą pracowały w trybie trunk.
S1(config)#interface range ethernet 0/0-3
S1(config-if-range)#switchport trunk encapsulation dot1q
S1(config-if-range)#switchport mode trunk
Konfiguracja S2
Tryb konfiguracyjny i zmiana nazwy urządzenia.
inserthostname-here#configure terminal
inserthostname-here#hostname S2
Uruchamiamy Per-VLAN Spanning Tree (PVST) na przełączniku.
S2(config)#spanning-tree mode pvst
Tworzymy dodatkowy VLAN.
S2(config)#vlan 2
S2(config-vlan)#name vlan2
Adresujemy VLAN1 domyślnie dostępny na przełączniku.
S2(config)#interface vlan 1
S2(config-if)#ip address 10.0.0.2 255.0.0.0
S2(config-if)#no shutdown
Interfejsy pomiędzy przełącznikami będą pracowały w trybie trunk.
S2(config)#interface range ethernet 0/0-1, ethernet 1/1-2
S2(config-if-range)#switchport trunk encapsulation dot1q
S2(config-if-range)#switchport mode trunk
Konfiguracja S3
Tryb konfiguracyjny i zmiana nazwy urządzenia.
inserthostname-here#configure terminal
inserthostname-here#hostname S3
Uruchamiamy Per-VLAN Spanning Tree (PVST) na przełączniku.
S3(config)#spanning-tree mode pvst
Tworzymy dodatkowy VLAN.
S3(config)#vlan 2
S3(config-vlan)#name vlan2
Adresujemy VLAN1 domyślnie dostępny na przełączniku.
S3(config)#interface vlan 1
S3(config-if)#ip address 10.0.0.3 255.0.0.0
S3(config-if)#no shutdown
Interfejsy pomiędzy przełącznikami będą pracowały w trybie trunk.
S3(config)#interface range ethernet 0/2-3, ethernet 1/1-2
S3(config-if-range)#switchport trunk encapsulation dot1q
S3(config-if-range)#switchport mode trunk
Test bazowej konfiguracji na przełączniku S3
Adresacja VLAN1
S3#show ip interface brief
Lista VLAN-ów na przełączniku.
S3#show vlan
Interfejsy trunk.
S3#show interfaces trunk
Warning
Teraz mogą pojawić się różnice w Waszych wynikach względem tego co będzie u mnie. Takie sytuacje wynikają z wybranego przez Was emulatora, dostępnego obrazu oprogramowania routera / przełącznika lub konfigurcaji wirtualnych interfejsów.
Szukamy root bridge
Wyświetlmy formacje o aktualnym root bridge dla naszej instancji STP na przłączniku S1 oraz S2.
S1#show spanning-tree root
S2#show spanning-tree root
Na przełączniku S1 koszt wynosi 0 i nie mamy podanych root portów ponieważ to własnie ten przełącznik został wytypowany jako root bridge.
Root Port, Designated Port, Alternate Port
Zobaczmy w jakim trybie pracują porty na każdym z przełączników.
S1#show spanning-tree
S2#show spanning-tree
S3#show spanning-tree
- Root Port (RP) – port prowadzi w stronę root bridge.
- Designated Port (DP) – aktywny port wybrany na każdym połączeniu.
- Alternate Port (Altn) – port zapasowy, który trzyma blokadę i jest gotowy do pracy w razie awarii.
Zmiana root bridge dla VLAN1 i VLAN2
Zamieszamy trochę w konfiguracji naszych przełączników. S1 będzie pełnił rolę root bridge dla VLAN1, natomiast S2 będzie pełnił rolę root bridge dla VLAN2.
Na przełączniku S1:
S1(config)#spanning-tree vlan 1 root primary
S1(config)#spanning-tree vlan 2 root secondary
Na przełączniku S2:
S2(config)#spanning-tree vlan 1 root secondary
S2(config)#spanning-tree vlan 2 root primary
Sprawdźmy jak wygląda koszt pomiędzy przełącznikami względem VLAN-ów.
S1#show spanning-tree root
S2#show spanning-tree root
Zmiana kosztów połączenia między przełącznikami
Koszt STP wyliczany jest na podstawie przepustowości łącza. Im szybsze łącze, tym niższy koszt, co oznacza, że jest ono preferowane przy wyborze ścieżki do root bridge.
Na przełączniku S3 zmienimy koszt dla VLAN2 na interfejsach ethernet0/2-3.
S3#show spanning-tree
Teraz wprowadźmy małą aktualizację.
S3(config)#interface range ethernet 0/2-3
S3(config-if-range)#spanning-tree vlan 2 cost 10
Ponownie sprawdzamy koszt.
S3#show spanning-tree
Zmiana przełącznika pełniącego rolę root bridge
Żeby inny przełącznik został root bridgem, musimy ustawić niższy priorytet na wybranym przełączniku niż na pozostałych. Spróbujmy zatem wykorzystać do tego przełącznik S3.
S3(config)#spanning-tree vlan 1-4094 priority 0
S3#show spanning-tree root
Portfast i BPDU Guard
PortFast na porcie przełącznika powoduje, że port natychmiast przechodzi do stanu forwarding, omijając standardowe stany STP (listening i learning). W praktyce przekłada się to na szybsze łączenie urządzeń końcowych z siecią ale skonfigurowane na portach łączących inne przełączniki może spowodować powstawanie pętli!
Skonfigurujemy dwa interfejsy na przełączniku S3 aby działały w trybie portfast.
S3(config)#interface range ethernet 0/2-3
S3(config-if-range)#spanning-tree portfast
Do ochrony przed połączeniem innego przełącznika do skonfigurowanych portów użyjemy komendy:
S3(config-if)# spanning-tree bpduguard enable
MST
Przywracamy nasze przełączniki do stanu fabrycznego i na każdym z nich tworzymy prostą konfigurację. $ pod tym znakiem będzie cyfra 1,2,3 aby nie powielać ponownie tekstu
Tryb konfiguracyjny i zmiana nazwy urządzenia.
inserthostname-here#configure terminal
inserthostname-here#hostname S$
Uruchamiamy Rapid Per-VLAN Spanning Tree (PVST) na przełączniku.
S$(config)#spanning-tree mode rapid-pvst
Tworzymy dodatkowy VLAN.
S$(config)#vlan 2
S$(config-vlan)#name vlan2
S$(config)#vlan 3
S$(config-vlan)#name vlan3
S$(config)#vlan 4
S$(config-vlan)#name vlan4
S$(config)#vlan 5
S$(config-vlan)#name vlan5
Interfejsy pomiędzy przełącznikami będą pracowały w trybie trunk.
S$(config)#interface range ethernet $0/$-$
S$(config-if-range)#switchport trunk encapsulation dot1q
S$(config-if-range)#switchport mode trunk
Dla lepszego obrazu sprawy MST uruchomimy na S1 oraz S2.
S1(config)#spanning-tree mode mst
S2(config)#spanning-tree mode mst
Podczas sprawdzenia STP na S1 zauważycie, że interfejsy skierowane do S3 mają typ P2p Bound(PVST).
S1#show spanning-tree
MST informuje nas, że po drugiej stronie łącza nie ma innego urządzenia z identyczną konfiguracją MST, więc traktuje ten link jako połączenie do urządzenia PVST, a sam interfejs przechodzi w tryb kompatybilności, aby umożliwić współpracę MST z PVST.
Przechodzimy do najważniejszej konfiguracji na S1. Tworzę region MST o nazwie admin1234, wersja 1. Do tego dochodzą dwie instancje obsługujące VLAN2 i VLAN4, a pozostałe trafiają do domyślnej instancji MST0 utworzonej na samym początku.
S1(config)#spanning-tree mst configuration
S1(config-mst)#name admin1234
S1(config-mst)#revision 1
S1(config-mst)#instance 1 vlan 2
S1(config-mst)#instance 2 vlan 4
Sprawdźmy regiony MST na S1 oraz S2
S1#show spanning-tree mst
S2#show spanning-tree mst
Przełączniki nie synchronizują ustawień regionów automatycznie, ponieważ to my jesteśmy odpowiedzialni za jak najwydajnieszą konfigurację STP. Skonfigurujmy naalogicznie S2.
S2(config)#spanning-tree mst configuration
S2(config-mst)#name admin1234
S2(config-mst)#revision 1
S2(config-mst)#instance 1 vlan 2
S2(config-mst)#instance 2 vlan 4
Sprawdźmy teraz jak wygląda połączenie z root bridge między przełącznikami z MST.
S1#show spanning-tree root
Success
Wszystkie przykłady są tylko formą zainteresowania danym zagadnieniem. Zachęcam do zapoznania się ze szczegółami zawartymi w dokumentacji autora lub producenta
🕞 Ostatnia aktualizacja 09.03.2025