Rafał Rudewicz

7 lutego 2022

Inna Sieć Newsletter


Multiple Spanning Tree MSTP

Routing & Switching | 2 Komentarze

Multiple Spanning Tree stanowi idealny balans pomiędzy możliwością równoważenia ruchu oraz oszczędnością zasobów poprzez tworzenie minimalnej liczby instancji STP.
Multiple Spanning Tree Protocol

i 3 Spis treści

Działanie Spanning Tree Protocol polega na zapobieganiu powstania pętli w sieci. Powoduje to jednak nieoptymalne wykorzystanie dostępnej infrastruktury. Problem ten rozwiązano wprowadzając PVST, gdzie każdy vlan posiadał swoją własną instancję STP. Jednak rozwiązując jeden problem, natrafiliśmy na kolejny. STP jest bardzo CPU-żernym protokołem i utrzymywanie wielu instancji wymaga sporej mocy obliczeniowej. Na dodatek liczba możliwych logicznych topologii w sieci jest zwykle mniejsza od liczby używanych vlanów.

Topologia fizyczna vs topologia 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, choć 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 nam na niewiele różnych logicznych topologii. Zamiast więc 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ą switchy oraz nadal możemy w jakimś stopniu wpływać na równoważenie ruchu.

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

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

Switche posiadające takie same parametry, należą do tego samego regionu. Jeśli parametry nie będą się zgadzać, 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 jak Rapid Spanning Tree czy tradycyjne Spanning Tree.

W momencie konfiguracji MST tworzy IST – Internal Spanning Tree, podstawową instancję 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 MSTP records (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ąc pod uwagę, które interfejsy zostaną zablokowane w konkretnej instancji MST.

Blokada MSTI interfejsu

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 ma to miejsce w RSTP, każdy switch w MSTP wysyła własne pakiety BPDU. Taki pakiet zawiera kompletne 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. Pamiętaj, że podstawe timery Hello, Forward Delay i  MaxAge mogą być modyfikowane jedynie dla IST. Instancje MSTI dziedziczą te timery od IST.

MSTP ma specjalny mechanizm zaimplementowany w BPDU dla IST o nazwie Remaining Hops. Root bridge wysyła BPDU z liczbą przeskoków równą Max Hops (wartość konfigurowalna). Każdy kolejny switch zmiejsza wartość pola o jeden. Gdy tylko 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 wykorzystujemy klasyczne timery.

Konfiguracja Multiple Spanning Tree

Do skonfigurowania MST wykorzystamy topologię, którą widzisz na obrazku powyżej oraz następujące atrybutu:

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

Konfiguracja jest taka sama dla każdego switcha. Root Bridgem dla wszystkich instancji będzie SW3.

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

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 gotowa. Jak widzisz pierwsze co trzeba zmienić to tryb spanning tree z domyślnego PVST/RSTP na mst poleceniem spanning-tree mode mst. Kolejny krok, to wejście we właściwą konfigurację mst spanning-tree mst configuration. Następnie nadajemy odpowiednią nazwę, numer rewizji oraz przypisujemy 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

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

Tworząc wspólną instancję STP, musimy 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, switch na granicy regionu, z najniższym kosztem dotarcia do CIST Root.

mstp w wielu regionach

Proces wyboru CIST Root

Dołączony do sieci switch zaczyna rozsyłać BDPU z ustawionym CIST Root oraz CIST Regional Root na siebie. W momencie otrzymania informacji o switchu z niższym Bridge ID zaczyna rozsyłać wewnątrz regionu BDPU z BID nowego roota. Na portach w stronę poza region wysyłana jest informacja o CIST Root Bridge ID oraz CIST External Root Path Cost(koszt dotarcia do CIST Roota) ukrywając w ten sposób topologię regionu. Jest to skumulowany koszt dotarcia do CIST Roota poprzez wszystkie łącza poza regionem.

Kiedy zostanie wybrany CIST Root, wszystkie switche na brzegach regionów blokują swoje porty poza obszar. Jedynie Regional Root odblokowuje jeden port w stronę Roota.

Współdziałanie MSTP i PVST

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

Z punktu widzenia innych urządzeń cały Region MST wygląda jak jedno urządzenie. Switch na granicy regionu nasłuchuje ramek BDPU, 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 mamy topologię CST, gdzie każda topologia IST stanowi jeden element sieci.

Współdziałanie MST oraz STP

Na obrazku powyżej widzisz 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 potrzebuje mechanizmu, który pozwoli automatycznie wymieniać informację o zmianach w konkretnych drzewach STP dla każdego vlanu 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, z drugiej strony zmniejsza stabilność wszystkich instancji MSTP we wszystkich regionach, czyniąc je podatnymi na zmiany w PVST.

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

  • 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żenie ruchu.
Root Bridge w regionie MST
  • Switch po stronie PVST jest Root Bridgem dla wszystkich Vlanów.

Opcja numer dwa nie jest zalecana, ponieważ wszystkie instancje MSTI są traktowane jako jedna topologia, nie ma możliwości równoważenia ruchu.

Problem z MSTP i PVST+

Łączenie obszarów MSTP i PVST+ współpracujących ze sobą jest wymagającym zadaniem. Najczęściej występującym problemem jest PVST Simulation Inconsistency. Zadaniem PVST Simulation jest upewnienie się, że role oraz statusy portów są spójne pomię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:

  •  Skonfiguruj priorytet MSTI 0, aby był niższy niż PVST w każdym vlanie
  • Skonfiguruj PVST jako Root Bridge
    • VLAN 1 – priorytet niższy niż MSTI 0
    • VLANy 2-4094 – priorytet niższy niż w VLAN 1

Podsumowanie

MSTP rozwiązuje wiele problemów związanych z STP w sieci. Ogranicza liczbę instancji, jednocześnie zachowując możliwość wprowadzania inżynierii ruchu.

Z drugiej strony wprowadza dodatkowy poziom skomplikowania wymagający starannego zaplanowania.

Korzystasz w swojej sieci z MSTP?

Rafał Rudewicz

Rafał Rudewicz

Specjalizuję się w rozwiązaniach Enterprise oraz Service Provider. Projektuję, wdrażam oraz naprawiam sieci dla największych firm na świecie.

2 komentarze

  1. Zico

    [cytat]
    SW1(config-mst)#revision 1

    SW1(config-mst)#instance 2 vlan 1-99

    SW1(config-mst)#instance 2 vlan 100-999
    [/cytat]
    Chyba:
    SW1(config-mst)#instance 1 vlan 1-99
    ???

    Odpowiedz

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *