Cisco IOS 17 - více switchů jako Stack - technologie StackWise

Zdroj seriálu: https://www.samuraj-cz.com/serie/cisco-ios/
Stack je zajímavá technologie, která dovoluje některé pevné Cisco switche spojit do jednoho celku, který má společnou konfiguraci a správu a také zvyšuje spolehlivost. V podstatě se vytvoří jeden nový velký switch, který vlastní všechny porty. Pro základní vytvoření stacku stačí propojit jednotlivé switche pomocí speciálního kabelu a vše ostatní by se mělo provést automaticky. Přesto je dobré vědět co se děje a jak to funguje. A dále znát pár konfiguračních příkazů, hlavně z oblasti upgradu IOSu, protože všechny switche musí mít stejnou verzi.

Co je to stack
Cisco switche se dají dělit podle řady parametrů, já bych si nyní dovolil dělení do tří skupin. Základní pevné switche (fixed), které pracují na 2. vrstvě dle OSI, zástupce je například Catalyst 2960. Pokročilejší pevné switche, které dokáží pracovat i na vyšších vrstvách, hlavně na 3. a tedy provádět routování, zástupcem je Catalyst 3750. A modulární switche, které se skládají z chassis, do kterého se vkládají různé moduly (první musí být supervizor), zástupce je Catalyst 6509.

Pro switche prostřední kategorie (C3750) má Cisco technologii zvanou StackWise a StackWise Plus (u novějších C3750E), která umožní spojit switche do stacku. Základní vlastnosti (dalo by se říci výhody) stacku jsou:

celý stack se konfiguruje (a vlastně i chová) jako jeden switch se součtem portů
konfigurace je společná a sdílená všemi členy (každý má uloženu kopii)
má jednu společnou IP adresu a vstupní rozhranní pro správu (telnet, web, ssh)
členy stacku můžeme jednoduše přidávat i odstraňovat
v případě poškození jednoho člena stacku se dá jednoduše nahradit novým (většinou bez potřeby konfigurace)
stacky tedy slouží ke zvýšení spolehlivosti
Vytvoření stacku
Vytvoření stacku se provede tak, že switche propojíme speciálním stackovacím kabelem (bývá součástí dodávky switche). Konektory se nachází na zadní straně switche a jsou dva, protože se stack zapojuje do uzavřeného kruhu. Tento kruh vždy prochází obvody uvnitř switche, pokud chybí kabel, tak se na místě nezapojeného portu aplikuje loopback. Tato sběrnice (interconnect) má rychlost 16 Gbps nebo 32 Gbps u StackWise Plus, ale data putují obousměrně s inteligentním výpočtem trasy, takže se uvádí rychlost dvojnásobná, tedy 32Gbps nebo 64Gbps.

Switche zapojené do stacku

Switche zapojené do stacku

Master switch
Jednotlivé switche se označují jako členové (members) stacku. Jeden switch je vždy vedoucí (master), ten spravuje celý stack (k němu se připojujeme na CLI, řídí výměnu routovacích informací, předává forwardovací tabulky ostatním členům, atd). Master switch se volí určitým procesem a teoreticky se jím může stát kterýkoliv switch. Dohromady můžeme propojit až 9 switchů a ve stacku se jim přidělují pořadová čísla - identifikátory. Z výroby má každý switch nastaveno číslo 1 a po zapojení do stacku se mu přiřadí nejnižší volné.

Volba master switche
Proces, který volí master switch, prochází určitá kritéria, která jsou hierarchicky uvedena zde:

volba uživatele - můžeme nakonfigurovat kdo má být master (pomocí nejvyšší priority)
priorita podle HW a SW - nejnovější switch, nejvyšší HW verze s nejvyšší SW verzí (funkcemi - feature set) má přednost
existující konfigurace - switch s konfigurací má přednost před novým switchem
uptime - nejdéle běžící switch
MAC address - nejnižší MAC adresa vítězí
Přidání nového člena
Po připojení nového člena by měl master zkontrolovat jeho IOS a případně nahrát správnou verzi. Všichni členové stacku musí mít stejnou verzi IOSu se stejnými funkcemi. Dále master nakonfigurovat switch, nakopíruje mu konfiguraci a další údaje. Takže pokud vše proběhne jak má, neměl by po zapojení konektorů a nastartování switche, být potřeba žádný zásah.

Připojení nového člena můžeme provést za běhu. Rozpojíme jedno místo stacku (tak aby se nám nerozpadl) a připojíme vypnutý (to je důležité) nový switch. Samozřejmě nové zapojení musí být opět do kruhu. Ale pozor, v praxi se mi stalo, že po zapojení nového člena a upgradu jeho IOSu se stack softwarově rozpadl. Sice se pak automaticky nakonfiguroval, ale jednotlivé switche se restartovali.

Ještě pár informací k upgradu/downgradu IOSu, který provádí master switch. Po připojení nového člena se zjistí informace o HW, a pokud je stejný jako master, tak se nahraje jeho IOS. Pro instalace se používá příkaz archive. Pokud je verze HW jiná, tak master hledá potřebný IOS ve své flash paměti nebo na TFTP serveru (pokud má nastaveno). Pokud se nenalezne správná verze, tak se připojovaný switch nastaví do stavu Version mismatch a pravidelně rebootuje (při startu vždy hledá, zda je k dispozici správná verze).

Odstranění člena stacku
Při odstranění switche nebo poškození kabelu se to stack dozví a směruje komunikaci mimo odstraněný switch nebo poškozenou cestu. Konfigurace portů, ale stále zůstává, takže po připojení nového switche tento získá původní konfiguraci (záleží na čísle člena stacku).

Pokud se přeruší vedení na jednom místě, tak se přeruší kruh, čímž se zredukuju rychlost na polovic, ale vše funguje dál. Po obnovení kruhu, se automaticky vrátí funkčnost zpět.

StackWise a StackWise Plus
Technologie StackWise má řadu vlastností, které slouží k efektivní a výkonné funkci. StackWise Plus přidává ještě několik vylepšení, také se zdvojnásobila rychlost sběrnice a jsou podporovány 10 Gigabitové ethernetové porty.

Switche s technologií StackWise a StackWise Plus se dají kombinovat dohromady, ale vyjedná se globální mód StackWise. Hlavní tedy je, že se degraduje rychlost interconnectu na teoretických 32 Gbps.

Kombinace HW verzí switchů
Zajímavé řešení pro praxi může být kombinace switchů tak, že použijeme jeden nebo dva (podle počtu linků do core) Catalyst 3750E, které mají 10 Gbps uplink porty, a ostatní Catalyst 3750G, které jsou přece jen levnější. Sice se degraduje rychlost interconenctu na polovic, ale to nemusí být omezující bod.

V takovémto řešení jsem se setkal s problémem, že po připojení nového člena s jinou verzí IOSu, se spustil jeho upgrade, ale nějakým způsobem se zamknula flash paměť na master switchi. Takže je třeba provést upgrade ručně a restartovat master, aby se uvolnila jeho paměť. Nejjednodušší je provést upgrade IOSu ještě dříve než switch připojíme do stacku.

Tlačítko Mode - Stack
Pokud jsme fyzicky u switche a potřebujeme zjistit základní údaje o stacku, počet členů a aktuální id switche ve stacku, tak můžeme využít tlačítko MODE. Opakovaným stisknutím rozsvítíme diodu vedle nápisu STACK. V této chvíli se rozsvítí diody nad prvními porty. Počet rozsvícených portů určuje počet členů stacku, blikající port je aktuální pozice.

Tlačítko mode - stack u switche

TlaÄ?ítko mode - stack u switche

Další literatura
Cisco StackWise Technology White Paper
3750 - Managing Switch Stacks
Catalyst 3750 Hardware Installation Guide
Konfigurace v CLI
Stack příkazy
Základní operace, které můžeme se stackem provést pomocí CLI, je zjištění informací o členech, nastavení identifikačního čísla switche a nastavení priority (v podstatě nastavení master switche).

SWITCH#show switch // informace o členech stacku (včetně id a priority)
SWITCH#show switch detail // navíc informace o propojení ve stacku

SWITCH(config)#switch 1 renumber 3 // změní identifikační číslo z 1 na 3
SWITCH(config)#switch 3 priority 15 // priorita switche 3 na hodnotu 15 (možnosti 1 až 15), čím větší tím větší šance být zvolen jako master
Provisioned switch
Je zde také možnost nakonfigurovat switch dříve než jej zapojíme do stacku. Vytvoříme provisioned switch (záložní), tím pádem máme možnost konfigurovat porty a další vlastnosti switche, i když fyzicky není připojen (porty se nedají přepnout do funkčního stavu - no shutdown). A po připojení nového switche, ten získá tuto konfiguraci.

Pozn.: Globální konfigurace je stejná pro všechny členy stacku, ale můžeme konfigurovat jednotlivé porty.

SWITCH(config)#switch 4 provision ws-c3750e-48pd // vytvoříme switch s daným id a modelem
Adresování portů
Přístup k jednotlivým portům v rámci stacku se nyní využije pomocí čísla člena stacku. To se zadává jako první v trojici čísel identifikujících port, například Gi2/0/1 je první port na druhém switchi ve stacku.

Pouze jeden člen stacku
Čísla switchů můžeme použít ještě na několika místech. V některých informačních hlášeních se také zobrazuje specifický switch pomocí názvu-id, třeba SWITCH-2.

SWITCH#reload slot 2 // restart pouze druhého switche
SWITCH#session 2 // přepneme se přímo na switch 2, v praxi ale pouze pro show a debug (zpět se vrátíme pomocí exit)
Upgrade IOSu ve stacku
Stručně zde zmíním možnosti, které můžeme využít (nejen) v rámci stacku, pro manuální upgrade IOSu. Hlavně se využívá příkaz archive, která je podrobněji popsán v Cisco IOS 15 - zálohy a obnovy konfigurace a obrazů.

Pozn.: Upgrade IOSu na stack provede upgrade všech členů, ale pozor u různých HW verzí. Jinak řečeno, když upgradujeme master switch, tak ten po restartuje upgraduje ostatní členy.

V rámci stacku má příkaz archive parametr copy-sw, který kopíruje IOS mezi členy stacku. Následující příklad zkopíruje IOS ze switche 2 na 3 a přepíše (vymaže) původní verzi. Dal by se použít i parametr /reload, který zajistí automatický restart switche po upgradu, ale pokud upgradujeme více switchů, tak je třeba je restartovat, až budou mít všechny stejnou verzi.

SWITCH#archive copy-sw /overwrite /destination-system 3 2
SWITCH#reload slot 3 // restart pouze switche 3
SWITCH#reload in 10:30 // naplánování restartu celého stacku (nejde pouze switch) za 10 hod a 30 min
Upgrade kombinovaného stacku
Pokud chceme upgradovat stack na novou verzi a máme členy s rozdílnou verzí StackWise (StackWise se označuje jako verze 0 a StackWise Plus jako 1), tak můžeme do taru pro 3750E do adresáře s binem nakopírovat tar pro 3750G (samozřejmě stejné verze). Potom upgradujeme 3750E (master) třeba takto:

SWITCH#archive download-sw /no-version-check /destination-system 1 ftp://user:password@10.0.0.10/ c3750e-universalk9-tar.122-44.SE2.tar
Členové stacku by se měli upgradovat automaticky z uloženého image, pokud je tu ale problém, tak to můžeme provést ručně. Dalšího člena stacku (3750G) tedy upgradujeme z mastra:

SWITCH#archive download-sw /no-version-check /destination-system 2 flash1:/c3750e-universalk9-mz.122-40.SE/c3750-ipbasek9-tar.122-44.SE2.tar
Potom, co máme nový IOS na všech členech stacku, jej můžeme restartovat (aby se nová verze načetla) pomocí reload.

Pozn.: Parametr /no-version-check je občas potřeba. Například v některém novějším IOSu je novější verze stackovacího protokolu a protože ostatní switche zatím používají starší verzi, tak je možné provést upgrade pouze bez kontroly. A následně se musí upgradovat ostatní členové.

Další příkazy k upgradu
V případě nějakých problémů se mohou hodit následující příkazy:

SWITCH#copy flash2:/c3750-ipbasek9-mz.122-40.SE/c3750-ipbasek9-mz.122-40.SE.bin flash3: // ruční zkopírování image
SWITCH#show boot // zobrazí info odkud switche bootují
SWITCH(config)#boot system switch 3 flash:/c3750-ipbasek9-mz.122-40.SE.bin // nastaví z jakého image má switch 3 bootovat
Pozn.: Bootování můžeme nastavit I pro všechny členy stacku najednou. Pomocí příkazu boot můžeme nastavovat i vlastnosti auto-upgradu členů stacku.