Menu Zavrieť

10. Rapid Spanning Tree Protocol

Rapid Spanning Tree Protocol (RSTP)

Maximálny čas, kedy konverguje STP je 50s (v praxi môžeme dosiahnuť nižšie hodnoty, ale tak okolo 30s), čo je pre praktické situácie príliš vysoká hodnota. Preto bol vymyslený upravený algoritmus zvaný Rapid Spanning Tree Protocol (RSTP), ktorý má čas konvergencie v praxi okolo 1 či 2s. RSTP bol pôvodne definovaný ako rozšírenie normou IEEE 802.1w, ale v roku 2004 bol zaradený do normy IEEE 802.1D.

Základný princíp je podobný klasickému STP, ale je upravený pre rýchlejšie konvergenciu pri zmene topológiu. Má integrovaný ekvivalent Cisco funkcií PortFast , UplinkFast a BackboneFast .

Pozn .: RSTP je spätne kompatibilný s klasickým STP. Ale ak detekuje nejaký BPDU rámec z STP, tak sa prepne do tohto módu.

Zmeny oproti STP

  • drobná zmena formátu BPDU (používa sa verzia 2)
  • všetky switche generujú BPDU a posielajú ich na všetky porty každý hello time (miesto preposielanie Root BPDU)
  • posielajú sa Agreement / Proposal BPDU
  • pre linky sa definuje ich typ (point-to-point, edge, shared), takže niektoré môžu rýchlo prejsť do stavu forwarding
  • zmenili sa úlohy / typy portov, sú štyri (root, designated, alternate, backup)
  • stavy portov (Discarding, learning, forwarding)

Typy portov / liniek

  • point-to-point , teda spoj bod-bod, pripojenie ďalšieho switche, linka musí byť full duplex
  • edge , koncový / hraničné port (PortFast), je do neho pripojené koncové zariadenia (ako PC či tlačiareň)
  • shared , zdieľaná linka, napríklad húb, linka je half duplex

Edge porty definujeme pomocou funkcie PortFast . Point-to-point a shared konfigurujeme pomocou link-type . Predvolený stav pre full duplex linky je P2P. Pre P2P musíme zaručiť, aby bola linka vo full duplex módu.

Úloha portov

  • Root Port – najlepšie BPDU na switchi
  • Designated Port – najlepšie BPDU na segmente
  • Alternate Port – blokovaný, alternatívna cesta k roote (záloha root)
  • Backup Port – blokovaný, redundantné cesta k segmentu (záloha designated)

BPDU

veľkosť [B] položka
2 protokol ID
2 verzia protokolu
2 typ BPDU
1 príznaky
8 root BID
4 cena cesty k rootu
8 odosielateľovou BID
2 ID portu, ktorý posiela BPDU
2 Message Age
2 maximum Age
2 Hello Time
2 forward Delay
1 Verison 1 length

Pozn .: Switch, na ktorom beží klasický STP, zahadzuje BPDU z RSTP.

Všetky switche posielajú BPDU každý hello time, u STP sa preposielajú / modifikujú BPDU prijaté na Root Porte. Message Age slúži ako počítadlo hopu, po vyčerpaní je rámec zahodený.

Agreement / proposal

Ponuka a súhlas. Switche posielajú ponuku susedovi, ak má sused väčšiu BID, tak odpovie súhlasom a obaja prednastaví stav (root a designed).

Konfigurácia RSTP na Cisco IOSu

Na Cisco switchoch beží upravená verzia RSTP protokolu označovaná ako Rapid PVSTP + (používa sa skratka RPVSTP či PVRSTP či rapid-PVSTP), keď pre každú VLAN beží samostatná inštancie STP.

Bežný, a asi jediný možný, postup konfigurácie spočíva v tom, že sa najprv nakonfiguruje PVSTP + (ten beží defaultne) a potom sa prejde do módu RPVSTP + . Prechod môže byť postupný (asi nedokážeme nakonfigurovať všetky switche naraz), pretože RSTP je spätne kompatibilný s STP. Je dôležité pamätať na to, že pri prechode dôjde k výpadkom spojenia.

V rapid-Pin neexistujú funkcie UplinkFast a BackboneFast , ak sa prepneme do RSTP, tak sa tieto funkcie neuplatnia, napriek tomu sa odporúča je vypnúť.

SWITCH (config) # no spanning-tree uplinkfast 
SWITCH (config) # no spanning-tree backbonefast

Pre prechod z Pin módu do rapid Pin stačí jediný príkaz.

SWITCH (config) # spanning-tree mode rapid-Pin

Určovanie typu linky sa vykonáva na jednotlivých portoch

SWITCH (config-if) # spanning-tree portfast                  // mód portu edge 
SWITCH (config-if) # spanning-tree portfast trunk            // ak je port trunk a chceme ho nastaviť ako edge 
SWITCH (config-if) # spanning-tree link-type point-to-point // mód portu P2P 
SWITCH (config-if) # spanning-tree link-type shared          // mód shared

Po tom, čo nastavíme všetky switche do RPVST, tak budú pracovať stále v móde Pin, pretože migračný proces zistí, že sused je v móde Pin a kvôli kompatibilite sa neprepne. Switch nespozná, že sa už môže prepnúť do RPVST, musíme vyvolať znova vyjednávanie o protokole. Nasledujúci príkaz reštartuje migračný proces.

SWITCH # clear spanning-tree detected-protocols

Poznámky z praktického nasadenia RSTP

Uvediem pár praktických poznámok, keď som prechádzal z PVSTP + na Rapid PVSTP + na asi 13 Cisco switchoch. V tejto sieti nie sú žiadne úmyselné slučky a STP sa používa jednoducho, ak by omylom vznikla slučka.

Najviac ma zaujímalo, ako vlastne bude prebiehať celý prechod (kedy k nemu dôjde) a aké budú výpadky. Presné odpovede som nikde na nete nenašiel (ani v Cisco článku, ktorý opisuje túto migráciu). Vo všetkých informáciách sa zdôrazňuje, že pri prechode dôjde k výpadkom. A tiež sa zdôrazňuje, že ak switch v RSTP detekuje BPDU z STP, tak sa prepne do STP (myslím Cisco verzia) a už sa nedokáže prepnúť späť do RSTP. Pre prepnutie potom musíme využiť vyššie uvedený príkaz. Preto ma nebolo jasné, keď postupne prepnem switche do RSTP, ako vyvolať nové vyjednávanie na všetkých naraz. No v praxi to vyzeralo následne.

Na začiatku som mal na všetkých switchoch koncovej porty nakonfigurované pomocou PortFast. Překonfiguraci switchov som začal na access switchoch (nie od jadra, ako sa odporúča u MST). Väčšina portov nemala ani žiadny výpadok a zostala stále v stave forwarding . Edge porty boli nakonfigurované, väčšina ostatných (tam, kde sú ďalšie Cisco switche) sa automaticky nastavila do P2P . Ak som sa pozrel pomocou show spanning-tree, tak boli označené P2P Peer (STP) , to znamená, že susedné switch je v  STP móde . Iba pár portov prešlo stavy od blocking , ale veľmi rýchlo. Na týchto portoch bol väčšinou nejaký malý switch (a občas sa port nastavil do Shared).

Po tom, čo som nakonfiguroval všetky access switche , som prešiel na core switch . Prepnutie prebehlo obdobne ako ostatné switche. Ale následne už všetky P2P porty boli označené len ako P2P , takže by mali pracovať v  RSTP móde. Ešte som skúsil sledovať nejakú komunikáciu pomocou debug spanning-tree bpdushow logginga tu som videl, že sa posielajú RSTP BPDU , takže asi všetko automaticky prešlo do RSTP módu .

Ak niekto viete, ako sa pozná, či switch pracuje naozaj v RSTP (a nie v RSTP prepnuté do STP), či iné podrobnosti, tak uvítam info.

Multiple Spanning Tree Protocol (MSTP)

MSTP vznikol ako rozšírenie RSTP a bol definovaný v IEEE 802.1s, ale v roku 2003 spojilo do normy IEEE 802.1q, ktorá popisuje VLANy (MSTP s VLANy priamo súvisí). Ako základ používa RSTP , ale navyše dovoľuje zoskupovať VLANy do spanning-tree inštancií (takže pre každú skupinu beží samostatná inštancia STP). Vďaka tomu dovoľuje využiť viac ciest a vykonávať jednoduchý load balancing (rozdeľovanie záťaže, ale statické). Štandardne dovoľuje MSTP vytvoriť až 65 rôznych rozdielnych logických topológiou (inštancií).

Cisco PVSTP má vždy jednu STP inštanciu pre jednu VLAN, teda čím viac VLAN, tým viac STP inštancií a tým väčšie zaťaženie switche. Klasické STP (či RSTP) má oproti tomu len jednu STP inštanciu pre všetky VLANy, čo znamená menšiu HW náročnosť, ale existuje len jedna virtuálnej topológie a nemôžeme teda rozdeliť záťaž pre rôzne VLANy rôznu cestou.

Dôležitým termínom u MSTP je MST región . Ten je tvorený skupinou switchov, ktoré majú rovnakú konfiguráciu (rovnako mapované inštancie na VLANy). Jednotlivé regióny alebo switche bez MSTP sú dohromady prepojené klasickým STP. Takže, aby sa switch stal súčasťou regiónu (a teda sa zúčastnil MSTP), tak musí mať rovnakú konfiguráciu ako ostatné (to znamená rovnaké meno regiónu, číslo revízie a mapovanie VLAN na inštancie).

MST inštancie predstavuje mapovanie VLAN do skupín (ako bolo spomenuté skôr). V jednom regióne môžeme vytvoriť rad inštancií (čísla 0 až 4094, ale maximálne 65 inštancií) so skupinami VLAN. Defaultne sú všetky VLANy zaradené do inštancie 0 (MST00).

Pri prechode na MSTP alebo zmene zaradenie VLAN do MST inštancie dôjde k reinicializáciu a teda krátkemu výpadku spojenia. Prevod z Pin na MST by sa mal vykonávať od jadra (centrálneho prvku) a postupovať nadol.

Konfigurácia MSTP na Cisco IOSu

Pre prepnutie MST stačí jeden príkaz. Defaultne sú všetky VLANy v jednej inštancii (číslo 0). Lepšie je najprv vykonať konfiguráciu inštancií a až potom prepnú switch.

SWITCH (config) # spanning-tree mode mst

Konfigurácia regiónu a inštancií sa vykonáva v MST konfiguračnom móde.

SWITCH (config) # spanning-tree mst configuration     // prepnutie do módu 
SWITCH (config-mst) # show                             // informácie o regiónoch 
SWITCH (config-mst) # name region1                     // pomenovanie konfigurácie / regiónu 
SWITCH (config-mst) # revision 10                      // revízne číslo konfigurácia 
SWITCH (config-mst) # inštancia 1 vlan 100, 150         // vytvorenie inštancie a zaradenie VLAN, využijeme pomlčku a čiarku

Ďalší rad (ladiacich) parametrov sa nastavuje pre celý switch alebo port.

SWITCH (config) # spanning-tree mst 0 root primary           // nastaví switch ako root pre danú inštanciu 
SWITCH (config) # spanning-tree mst 0 priority 32768         // nastaví prioritu switche pre danú inštanciu 
SWITCH (config) # spanning-tree mst hello-time 1             // nastaví hello time 
SWITCH (config-if) # spanning-tree mst 0 port-priority 64    // nastaví prioritu portu

Zobrazenie informácií o MST.

SWITCH # show spanning-tree mst

Flex Link

Len stručne sa zmienim o zaujímavé funkciu Flex Link , ktorá nesúvisí s STP. Jedná sa len o jednoduchú funkciu, kedy mám dve linky a jedna je definovaná ako záložný. Komunikácia ide normálne iba po primárnej linke, ale vo chvíli, keď táto vypadne, sa prepne na záložný linku. Výhodou je, že čas prepnutia je do 50ms.

Konfiguruje sa na primárnom interfacu (môže to byť port alebo EtherChannel) a určujeme jeho záložný.

SWITCH (config-if) # switchport backup interface f0 / 2

Pre zobrazenie informácií o Flex Linku môžeme použiť.

SWITCH # show interface switchport backup