CZ 
07.02.2025 Veronika VÍTEJTE V MÉM SVĚTĚ

An English translation is available for this article. Pro tento článek je dostupný anglický překlad.
Cisco IOS 17 - more switches as Stack - StackWise technology

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

| Petr Bouška - Samuraj |
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.
zobrazeno: 36 659x (36 386 CZ, 273 EN) | Komentáře [13]

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

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

Další literatura

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

SWITCH(config)#no switch 3 provision // odstranění člena stacku

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.

Související články:

Cisco IOS

Velký seriál o operačním systému aktivních prvků firmy Cisco. Obsahuje jedny z nejčtenějších článků na tomto webu. Články popisují konfiguraci switchů a routerů, primárně s Cisco IOS. Věci ohledně portů, VLAN, STP, ACL, QoS, apod.

Pokud se chcete vyjádřit k tomuto článku, využijte komentáře níže.

Komentáře
  1. [1] cm3l1k1

    Diky za clanek :o)

    Středa, 06.08.2008 14:12 | odpovědět
  2. [2] tomfi

    Jak otáčím, tak otáčim Catalyst 3560 nemá žádný konektor který by se pro StackWise dal využít...

    Středa, 03.09.2008 00:38 | odpovědět
  3. [3] Samuraj

    odpověď na [2]tomfi: Tak to jsem asi mystifikoval, podle některých poznámek (třeba u popisu 3560ky) na Ciscu jsem to chápal, že StackWise má také. Ale když jsem to teď hledal, tak asi opravdu nemá. Já pracuji pouze s 3750kama.

    Středa, 03.09.2008 08:24 | odpovědět
  4. [4] tomfi

    odpověď na [3]Samuraj: Né každý máme to štěstí.. max na co já šahám je 3560 ... ale i tak to ma featurek až až ;)

    • na komentář odpověděl [5]boso
    Středa, 03.09.2008 23:23 | odpovědět
  5. [5] boso

    odpověď na [4]tomfi:

    nie kazdy ma taketo zezezo na backbone, ale doma asi nikdo :):

    System image file is "disk0:c12kprp-k4p-mz.120-32.SY4.bin"

    cisco 12416/PRP (MPC7455) processor (revision 0x00) with 524288K bytes of memory.

    MPC7455 CPU at 665Mhz, Rev 2.1, 256KB L2, 2048KB L3 Cache

    Last reset from sw reset

    1 Route Processor Card

    2 Clock Scheduler Cards

    3 Switch Fabric Cards

    1 8-port OC3 POS controller (8 POS).

    2 OC48 POS controllers (2 POS).

    1 two-ports OC12 SONET based SRP controller (1 SRP).

    1 Modular Gigabit/Fast Ethernet/IEEE 802.3z controller

    8 ISE 10G SPA Interface Cards (12000-SIP-600)

    1 ISE 10G SPA Interface Card (12000-SIP-601)

    2 Ethernet/IEEE 802.3 interface(s)

    4 GigabitEthernet/IEEE 802.3 interface(s)

    10 10GigabitEthernet/IEEE 802.3 interface(s)

    10 Packet over SONET network interface(s)

    1 SRP network interface(s)

    2043K bytes of non-volatile configuration memory.

    Čtvrtek, 02.10.2008 12:38 | odpovědět
  6. [6] ccie

    Tak uz davno neplati, ze supervisor se u 6509 dava do 1.slotu od SUP720 jsou to sloty 5 a 6

    Čtvrtek, 02.10.2008 23:01 | odpovědět
  7. [7] Cavalier

    odpověď na [6]ccie: :-) Supr clanek, dekuji

    Úterý, 28.10.2008 23:02 | odpovědět
  8. [8] Michal

    Ahoj Samuraji, mám jeden dotázek. Vyndal sem jeden switch ze stacku. Měl sem ho volný a ve firmě ho potřebují na jiné místo. Přečísloval sem ho a vymazal stackovou kofiguraci. Teď se mi ale nedaří z původního stacku smazat staré číslování portů. Byl jako 6 ve stacku. neměl by si radu pro mě? Díky Michal

    Pátek, 19.12.2008 15:50 | odpovědět
  9. [9] Samuraj

    odpověď na [8]Michal: Já jsem tohle zkoušel je jednou, a tuším, že mi normálně fungoval příkaz:

    SWITCH(config)#no switch číslo-odebíraného-člena provision

    Pátek, 19.12.2008 15:58 | odpovědět
  10. [10] Michal

    odpověď na [9]Samuraj: Děkuji, zafungovalo. Přeju fajn víkend. Čao Michal

    Pátek, 19.12.2008 16:22 | odpovědět
  11. [11] Zdenek

    Čau Samuraji, mám 5 switchů 2950 spojených jako Cluster. Dejme tomu, že 1. switch je command switch s member number 0 a ostatní jsou member number 1, 2, 3, 4. Znamená to že úpravu konfigurace můžu dělat pouze na switchi member number 0, nebo na kterémkoli switchi v clusteru? Jinak super prace, co tu děláš;-)

    Středa, 26.01.2011 14:37 | odpovědět
  12. [12] Samuraj

    odpověď na [11]Zdenek: Bohužel moc nevím, co myslíš. Jestli myslíš spojování do stacku, tak 2950 nevím, jak to řeší (jsou už dost staré). Dnes v této řadě podporuje stack C2960S. Ve standardním stacku se pak všechny switche hlásí jako jeden, mají jednu společnou konfiguraci (distribuovanou) a jednu IP adresu. Sice se můžu přepínat mezi členy stacku, ale konfigurace se provádí globálně.

    Středa, 26.01.2011 14:54 | odpovědět
  13. [13] ddt007

    C2960S to umeji se sesti switchema, ovsem 2950 umi jen max port channel, sestavovat urcite nejdou. Takze pokud te to jede jako "cluster" tak jedine pres spanning tree s podporou port channel. Urcite to ale neni stack.

    Neděle, 29.05.2011 08:11 | odpovědět
Přidat komentář

Vložit tag: strong em link

Nápověda:
  • maximální délka komentáře je 2000 znaků
  • HTML tagy nejsou povoleny (budou odstraněny), použít se mohou pouze speciální tagy (jsou uvedeny nad vstupním polem)
  • nový řádek (ENTER) ukončí odstavec a začne nový
  • pokud odpovídáte na jiný komentář, vložte na začátek odstavce (řádku) číslo komentáře v hranatých závorkách