Routing & Switching

Multiple Spanning Tree MSTP

Multiple Spanning Tree Protocol
W: Routing & Switching

Działanie protokołu Spanning Tree polega na zapobieganiu tworzenia pętli w sieci. Jednakże prowadzi to do nieoptymalnego wykorzystania infrastruktury sieciowej.

Problem ten został rozwiązany poprzez wprowadzenie PVST, gdzie każdy VLAN posiada własną instancję STP. Niemniej jednak, rozwiązując jedną kwestię, napotkaliśmy na kolejną. STP jest protokołem bardzo obciążającym CPU, a utrzymanie wielu instancji wymaga znacznej mocy obliczeniowej.

Co więcej, liczba możliwych topologii logicznych w sieci jest zazwyczaj mniejsza od liczby używanych VLAN-ów.

Topologia fizyczna vs Topologia logiczna STP

Oznacza to, że wiele z nich współdzieli schemat sieci (blokuje i przesyła dane tymi samymi interfejsami) i nie ma potrzeby tworzenia osobnych, chociaż identycznych instancji STP.

Działanie Multiple Spanning Tree

Głównym założeniem działania tego protokołu jest fakt, że fizyczna budowa sieci pozwala na niewiele różnych logicznych topologii. Zamiast tworzyć instancję STP dla każdego vlanu, MSTP pozwala tworzyć niezależne od vlanów instancje MSTI (Multiple Spanning Tree Instance). Utrzymując ich minimalną liczbę, oszczędzamy moc obliczeniową switchów oraz nadal możemy w pewnym stopniu wpływać na równoważenie ruchu.

W MSTP regionem nazywamy grupy switchów, które współdzielą:

  • Nazwę konfiguracji MST
  • Numer rewizji
  • Mapowanie vlanów do instancji

Switch'e posiadające takie same parametry należą do tego samego regionu. Jeśli parametry się nie zgadzają, urządzenia uznają, że natrafiły na granicę regionu. MST pozwala na utworzenie w ramach jednej sieci fizycznej kilku oddzielnych regionów. Dostępna jest również kompatybilność z innymi implementacjami, takimi jak Rapid Spanning Tree czy tradycyjne Spanning Tree.

W momencie konfiguracji MST tworzony jest IST – Internal Spanning Tree, podstawowa instancja o numerze 0. Do niej przypisane są wszystkie vlany, które następnie można przenieść do kolejnych instancji MSTI.

MSTI0 (czyli IST) służy głównie do komunikacji z innymi regionami oraz implementacjami STP. Wyłącznie IST generuje i wysyła pakiety BPDU. Informacje o pozostałych instancjach są umieszczone w rekordach MSTP (M-records) i następnie dołączane do BPDU.

Korzystając z Multiple Spanning Tree, należy pamiętać, że instancje nie są mapowane 1 do 1 z vlanami. Planując rozłożenie ruchu poprzez modyfikowanie dozwolonych vlanów na interfejsach trunkowych, należy wziąć pod uwagę, które interfejsy zostaną zablokowane w konkretnej instancji MST.

MSTI blokuje interfejs na którym jest dopuszcozny vlan w trunk

Na powyższym obrazku widać, że MSTI blokuje interfejs, na którym dozwolony jest vlan 10. Ponieważ nie jest on dozwolony na interfejsie, który może przekazywać ruch (designated/root), połączenie w tym vlanie zostanie przerwane.

Tworzenie MSTI

Podobnie jak w RSTP, każdy switch w MSTP wysyła własne pakiety BPDU. Każdy taki pakiet zawiera pełne informacje o IST oraz przenosi M-Records dla każdego MSTI.

Wykorzystując mechanizmy konwergencji z RSTP (Proposal i agreement), tworzone są osobne instancje IST oraz MSTP. Należy pamiętać, że podstawowe timery Hello, Forward Delay i MaxAge mogą być modyfikowane jedynie dla IST. Instancje MSTI dziedziczą te timery od IST.

MSTP posiada specjalny mechanizm zaimplementowany w BPDU dla IST, zwanym „Remaining Hops”. Root bridge wysyła BPDU z liczbą przeskoków równą Max Hops (wartość konfigurowalna). Każdy kolejny switch zmniejsza wartość pola o jeden. Gdy liczba przeskoków osiągnie zero, informacje w BPDU są ignorowane, a przełącznik może zacząć deklarować się jako nowy root dla IST.

Na styku z inną implementacją STP nadal wykorzystywane są klasyczne timery.

Konfiguracja Multiple Spanning Tree

Przykladowa topologia do konfiguracji MSTP

Do skonfigurowania MST wykorzystamy topologię widoczną na powyższym obrazku oraz następujące atrybuty:

  • Nazwa konfiguracji MST: innasiec.pl
  • Numer rewizji: 1
  • Instancje MST:
    • Instancja 1 – vLANY od 1 do 99
    • Instancja 2 – vLANY od 100 do 999

Konfiguracja jest identyczna dla każdego przełącznika.

SW1(config)#spanning-tree mode mst
SW1(config)#spanning-tree mst configuration
SW1(config-mst)#name innasiec.pl
SW1(config-mst)#revision 1
SW1(config-mst)#instance 1 vlan 1-99
SW1(config-mst)#instance 2 vlan 100-999

Root Bridge'em dla wszystkich instancji będzie SW3.

SW3(config)#spanning-tree mst 0 priority 4096
SW3(config)#spanning-tree mst 1 priority 4096
SW3(config)#spanning-tree mst 2 priority 4096

Konfiguracja jest gotowa.

Jak widzisz, pierwszą rzeczą do zmiany jest tryb spanning tree z domyślnego PVST/RSTP na MST za pomocą polecenia spanning-tree mode mst.

Kolejnym krokiem jest wejście w właściwą konfigurację MST za pomocą polecenia spanning-tree mst configuration.

Następnie należy nadac odpowiednią nazwę, numer rewizji oraz przypisać vlany do instancji MST.

SW3#show spanning-tree mst configuration
Name [innasiec.pl]
Revision 1 Instances configured 3
Instance Vlans mapped
——– ——————————————————————
0 1000-4096
1 1-99
2 100-999
——————————————————————————
SW3#show spanning-tree mst
##### MST0 vlans mapped: 1000-4096
Bridge address 5007.003.0000 priority 4096 (4096 sysid 0)
Root this switch for the CIST

MST w wielu regionach

Podczas łączenia wielu regionów MST w ramach jednej sieci, każdy z nich posiada IST (Internal Spanning Tree) oraz wspólnie budują CIST (Common Internal Spanning Tree).

Tworząc wspólną instancję STP, należy określić, który switch zostanie root bridge. CIST root to switch z najniższym Bridge ID we wszystkich regionach. W każdym regionie jest wybierany CIST Regional Root, czyli switch na granicy regionu, z najniższym kosztem dotarcia do CIST Root.

Implementacja MSTP w wielu regionach

Proces wyboru CIST Root

Świeżo podłączony do sieci switch zaczyna rozsyłać BDPU z ustawionymi CIST Root i CIST Regional Root na siebie. Gdy otrzyma informację o switchu z niższym Bridge ID, zaczyna rozsyłać wewnątrz regionu BDPU z BID nowego roota. Na portach skierowanych na zewnątrz regionu przesyłane są informacje o CIST Root Bridge ID oraz koszcie ścieżki do CIST Root (CIST External Root Path Cost), ukrywając w ten sposób topologię regionu. Jest to łączny koszt dotarcia do CIST Roota poprzez wszystkie łącza spoza regionu.

Po wyborze CIST Root, wszystkie switche na krawędziach regionów blokują swoje porty skierowane na zewnątrz obszaru. Jedynie Regional Root odblokowuje jeden port skierowany w stronę Roota.

Współpraca MSTP i PVST

Multiple Spanning Tree Protocol został zaprojektowany do współpracy z innymi implementacjami STP, takimi jak RSTP czy oryginalny Spanning Tree Protocol.

Z perspektywy innych urządzeń cały region MST wygląda jak pojedyncze urządzenie. Switch na granicy regionu nasłuchuje ramek BPDU, a następnie na ich podstawie przestawia port, aby pracował w RSTP lub STP i dołącza do drzewa nazywanego CST (Common Spanning Tree).

Mamy więc do czynienia z sytuacją hierarchiczną, gdzie jeden poziom stanowią osobne topologie IST w ramach każdego regionu. Poziom wyżej znajduje się topologia CST, gdzie każda topologia IST stanowi jeden element sieci.

Trzy nakładające się na siebie topologie MST, CST,CIST

Na powyższym obrazku przedstawione są trzy nakładające się na siebie topologie:

  • IST – Internal Spanning Tree
  • CIST – Common & Internal Spanning Tree
  • CST – Common Spanning Tree

Współdziałanie MSTP i PVST wymaga mechanizmu, który umożliwi automatyczne wymienianie informacji o zmianach w konkretnych drzewach STP dla każdego VLAN-u oraz tych w instancjach MST. Nieoptymalną, ale najprostszą metodą jest dołączenie wszystkich instancji PVST do CST (w MST tylko topologia IST przekazuje informacje). Takie rozwiązanie gwarantuje, że żadna zmiana nie zostanie pominięta, jednak zmniejsza stabilność wszystkich instancji MSTP we wszystkich regionach, czyniąc je podatnymi na zmiany w PVST.

Implementacja MSTP symuluje działanie PVST+ poprzez wysyłanie CIST BPDU do wszystkich VLAN-ów poprzez interfejsy trunkowe w stronę urządzenia pracującego na PVST+. Jak w każdej implementacji STP, również dla topologii CST musimy wybrać Root Bridge. Dostępne są dwie opcje:

  1. Root Bridge dla wszystkich VLAN-ów znajduje się w instancji MST. Oznacza to, że CIST Root Bridge ID ma najniższą wartość spośród wszystkich PVST+ Bridge ID. Jeśli tylko jeden Region MST jest połączony z PVST+, wtedy wszystkie porty na styku są odblokowane i możliwe jest manipulowanie kosztem uplinków dla równoważenia ruchu.
  2. Switch po stronie PVST jest Root Bridgem dla wszystkich VLAN-ów. Jednakże, nie jest to rekomendowane, ponieważ wszystkie instancje MSTI są traktowane jako jedna topologia, co uniemożliwia równoważenie ruchu.

Problem z MSTP i PVST+

Łączenie obszarów MSTP i PVST+, które współpracują ze sobą, jest zadaniem wymagającym. Najczęstszym problemem jest PVST Simulation Inconsistency. Celem PVST Simulation jest zapewnienie spójności ról i statusów portów między regionami MST oraz instancjami PVST. Jeśli umiejscowienie chociaż jednego Root bridge, będzie inne niż pozostałych, topologia CST będzie niespójna.

Problem ten można rozwiązać na dwa sposoby:

  • Skonfigurować priorytet MSTI 0 na niższy niż w PVST dla każdego vlanu.
  • Skonfigurować PVST jako Root Bridge:
    • VLAN 1 – o niższym priorytecie niż MSTI 0.
    • VLANy 2-4094 – o priorytecie niższym niż w VLAN 1.

Podsumowanie

MSTP rozwiązuje wiele problemów związanych z STP w sieci, ograniczając liczbę instancji, jednocześnie zachowując możliwość wprowadzania inżynierii ruchu. Jednakże, wprowadza dodatkowy poziom skomplikowania, który wymaga starannego zaplanowania.

Czy korzystasz w swojej sieci z MSTP?

Napisane przez
Rafał Rudewicz
Pasjonat sieci komputerowych i automatyzacji. CCNP Enterprise & DevNet Specialist. IP/MPLS SME. Dołącz do mnie, aby razem odkrywać fascynujący świat technologii!
Komentarze
Spis treści
Świetnie! Udało ci się pomyślnie zarejestrować.
Witaj z powrotem! Zalogowałeś się pomyślnie.
Pomyślnie subskrybowałeś Inna Sieć.
Twój link wygasł.
Sukces! Sprawdź swoją skrzynkę e-mailową, aby uzyskać magiczny link do logowania.
Sukces! Twoje informacje rozliczeniowe zostały zaktualizowane.
Twoje informacje rozliczeniowe nie zostały zaktualizowane.