Wydawałoby się, że każdy inżynier sieci chciałby w swojej pracy operować na jak największej ilości urządzeń sieciowych. Jednak wszystko ma swoje granice i w pewnym momencie zarządzanie kilkudziesięcioma identycznymi przełącznikami z identyczną konfiguracją przestaje już być tak przyjemne jak wcześniej. Na szczęście Cisco oferuje nam szereg technologii, które ułatwiają nam życie w takich sytuacji. Dzisiaj przyjrzymy się jednej z nich – stackowaniu.
Stackowanie jeszcze do niedawna było w portfolio Cisco czymś wyjątkowym, funkcjonalnością, którą można było spotkać w niewielu modelach przełączników i za którą trzeba było słono zapłacić. Dziś można śmiało powiedzieć, że StackWise oraz FlexStack mocno spowszedniały a Cisco wypuszcza coraz to więcej modeli sprzętu ze wsparciem tych technologii. Nadal pozostaje to jednak dość kosztowna zabawa. Przyjrzyjmy się niuansom tego rozwiązania.
Czym jest stackowanie?
Stackowanie lub też stacking to technologia pozwalająca nam w dużym uproszczeniu połączyć kilka urządzeń sieciowych w jedno. Jest to doskonała alternatywa dla dużych i drogich przełączników z wyższej półki (np. serie Cisco Catalyst 4500 i 6500) i właśnie do tych droższych kuzynów można stackowanie porównywać. Jak wygląda np. taki Catalyst 6513-E? Przede wszystkim charakteryzuje on się modularną budową:

Sam przełącznik to przede wszystkim obudowa (ang. chassis), zasilacze, wentylatory oraz moduły sieciowe. Porozmawiajmy o tych ostatnich. Wśród nich najważniejszą rolę pełnią supervisory, których zazwyczaj w takim przełączniku znajdziemy dwa (dla redundancji). To te moduły biorą na siebie cały management plane (zarządzanie administracyjne urządzeniem) oraz control plane (realizowanie całej logiki działania urządzenia wraz z obsługą protokołów routingu, SNMP, ARP itd). Data plane czyli przełączanie ruchu sieciowego jest natomiast realizowane na pozostałych modułach przełącznika, które właśnie z uwagi na modularną budowę jesteśmy w stanie wyposażyć w różnego rodzaju porty. Powoduje to, że tego typu przełączniki są niezwykle elastyczne w konfiguracji. Niestety w parze z możliwościami idzie w tym przypadku cena.
Wróćmy teraz do stackowania. Stacking pozwala nam połączyć ze sobą przełączniki z niższej półki (m.in. serie Catalyst 3700, 3800 oraz 2900) w jedno urządzenie (z punktu widzenia sieci). Przykładowo mamy 3 oddzielne przełączniki warstwy dostępowej (access):

Cała „magia” dzieje się natomiast z tyłu urządzeń gdzie znajdziemy kable do stackowania łączące ze sobą poszczególne przełączniki w pętlę:

Stack przełączników Catalyst 2960-X z tyłu
Kable te łączą ze sobą backplane’y przełączników. Jeden z przełączników w procesie elekcji zostaje wybrany stack masterem i to ten switch bierze na siebie odpowiedzialność za management i control plane całego stacka. W pewnym sensie pełni on rolę supervisor’a z tą różnicą, że obsługuje również data plane na swoich portach. Tymczasem pozostałe przełączniki zapewniają jedynie dodatkową pulę fizycznych portów, podobnie jak ma to miejsce w przypadku modułów w high-endowych przełącznikach serii 6500.
Zasadzie funkcjonowania stacka przyjrzymy się nieco dalej w tym artykule.
Jakie są zalety i wady stackowania?
Stackowanie ma wiele zalet, ale jak wszędzie tak i tutaj są pewne wady.
Zacznijmy od zalet:
- stacking pozwala na łatwiejszą rozbudowę istniejącej infrastruktury (zwiększa skalowalność),
- dzięki stackowaniu zmniejsza się narzut pracy związany z zarządzaniem wieloma urządzeniami (zwłaszcza przy konfiguracji urządzeń oraz wgrywaniu nowszych wersji IOS),
- stack zapewnia nam redundancję, zakładając, że dane urządzenie końcowe jest podłączone do dwóch różnych stack memberów (szczególnie wartościowe w przypadku uplinków)
- mamy możliwość budowania lepszych uplinków dzięki wykorzystaniu Multichasssis Etherchannel (MEC)
Są też niestety wady:
- kable oraz moduły do stackowania (hardware potrzebny do stworzenia stacka) potrafią być bardzo drogie,
- jesteśmy zmuszeni do stackowania przełączników z tej samej rodziny (np. 3850),
- pomyłki, zła kolejność wykonywania działań oraz niewłaściwe przygotowanie do rozbudowy stacka (dodania kolejnego stack membera) mogą spowodować reboot całego stacka, a w najgorszym wypadku utratę istniejącej konfiguracji. Dlatego też należy się dobrze przygotować, wiedzieć co się robi i dokonywać zmian podczas dedykowanego maintenance window.
Jak działają technologie StackWise oraz FlexStack?
Przyjrzyjmy się teraz bliżej jak działają technologie stackowalne stworzone przez Cisco. Jako pierwszy opiszemy bardziej zaawansowany StackWise, aby potem przejść do jego uproszczonej wersji czyli FlexStack.
StackWise
Cisco StackWise zadebiutował wraz z rodziną przełączników Catalyst 3750. Od tego czasu w tę technologię zostały również wyposażone przełączniki Catalyst 3650 oraz 3850. Najnowsza wersja, z którą mamy do czynienia do StackWise-480. Wspierana jest ona przez przełączniki serii 3850, przy czym możemy mieszać poszczególne wersje sprzętowe tego switcha. Do wyboru mamy m.in.:
- 48 portów Gigabit Ethernet
- 24 portów Gigabit Ethernet
- 12 portów Ethernet SFP
- 24 portów Ethernet SFP

Oczywiście portfolio nieustannie ulega zmianie. W chwili publikacji tego artykułu (styczeń 2019) wygląda ono następująco:

Przełączniki wyposażone w technologię StackWise mają już wbudowane porty do podłączenia kabli do stackowania – nie wymagane są więc w tym celu żadne dedykowane moduły. Porty te wyglądają następująco:

Do łączenia przełączników używamy dedykowane kable do stackowania:

Przełączniki łączymy ze sobą zawsze w zamkniętą pętlę (chociaż nie jest to warunek działania stacka – pętla zwyczajnie zapewnia nam redundancję w przypadku awarii pojedynczego kabla lub przełącznika!):

Połączenie w pełną pętlę ponadto pozwala nam uzyskać pełną przepustowość backplane’u:

Podczas gdy niezamknięta pętla daje nam jedynie połowę przepustowości:

Niezwykle istotne jest aby wszystkie przełączniki w stacku posiadały tę samą wersję IOS. Możemy o to zadbać na dwa sposoby, o czym powiemy sobie przy opisywaniu tworzenia nowego stacka oraz rozbudowy istniejącego. Generalna zasada działania jest taka, że po okablowaniu i uruchomieniu przełączników przechodzą one przez proces elekcji podczas którego wybierany jest stack master. Czynników decydujących o tym, który switch zostanie wybrany masterem jest kilka, w następującej kolejności:
- Priorytet użytkownika: mamy możliwość skonfigurowania ręcznie priorytetu na przełączniku. Domyślnie każdy przełącznik ma priorytet ustawiony jako 1, maksymalna wartość to 15. Masterem zostaje wybrany przełącznik z najwyższym priorytetem. Jeżeli dwa switche posiadają równy najwyższy priorytet to przechodzimy do kolejnego czynnika rozstrzygającego, czyli…
- Priorytet oprogramowania: masterem zostanie wybrany przełącznik z najbardziej zaawansowaną wersją IOS, w kolejności:
- IP Services z obsługą szyfrowania
- IP Services bez obsługi szyfrowania
- IP Base z obsługą szyfrowania
- IP Base bez obsługi szyfrowania
- Stan konfiguracji: w tym kroku pierwszeństwo będzie miał już skonfigurowany przełącznik (taki który nie posiada domyślnej konfiguracji)
- Uptime: tu sprawa jest prosta – masterem zostaje przełącznik z najdłuższym czasem działania
- Adres MAC: ostatnim czynnikiem rozstrzygającym jest adres MAC – pierwszeństwo ma najniższy.
Po wybraniu stack mastera przechodzi on w stan Active. Przełącznik wybrany jako drugi w procesie elekcji przechodzi natomiast w stan Backup. Jest to o tyle istotne, że technologia StackWise synchronizuje ze sobą przełączniki Active oraz Backup. Dzięki temu w razie awarii mastera, backup switch jest w stanie natychmiast przejąć zarządzanie stackiem bez powstania przerwy w działaniu. Ważna adnotacja – awaria zarówno przełącznika Active jak i Backup spowoduje padnięcie całego stacka. Zadbajmy o dobrą separację tych przełączników – przede wszystkim odrębne źródła zasilania!

Wszystkie pozostałe przełączniki przejmują rolę stack membera (czasami jest również używana nazwa stack slave) . Tak jak zostało to wspomniane wcześniej master bierze na siebie cały management plane oraz control plane – jest centralnym punktem, z którego zarządzamy stackiem oraz centralnym punktem przełączania ruchu. Oznacza to, że jeżeli mamy do czynienia z ruchem sieciowym, który „wchodzi” i „wychodzi” na tym samym stack memberze to ruch ten zawsze będzie kierowany (przez kable do stackowania) do stack mastera w celu przełączenia danej ramki. Ponadto master odpowiada za wykrywanie dodanych (bądź odjętych) urządzeń oraz aktualizowanie IOS na stack memberach.
W output’cie komendy powyżej możemy zauważyć, że każdy switch w stacku ma nadany numer. Numer ten wpływa na numerację portów. Przykładowo porty switcha numer 1 to będą porty Gi1/0/X na stacku, z kolei porty switcha numer 3 to będą porty Gi3/0/X na stacku. Mamy oczywiście możliwość zmiany numeracji przełączników.
Przepustowość backplane’u jaki tworzą kable do stackowania różni się w zależności od wersji technologii, której używamy. W przypadku StackWise-480 na Catalyst 3850 jest to zawrotne 480 Gb/s. Co więcej, StackWise-480 wprowadza bardzo ważny wyjątek od zasady – mianowicie lokalny Control Plane. W tej odmiane stackowania ruch nie musi być już przełączany przez stack mastera i zadanie to mogą wykonywać poszczególne membery.
FlexStack
FlexStack jest nieco słabszą i mniej wydajną technologią (a zarazem tańszą), która doskonale sprawdza się w warstwie dostępowej opartej o przełączniki Cisco Catalyst 2960X. W celu zminimalizowania kosztów, switche 2960-X nie mają wbudowanych portów stackowalnych. Zatem jeżeli chcemy zestackować te przełączniki to musimy je wpierw wyposażyć w stosowne moduły:

Poza modułami na dedykowane kable (jak powyżej) istnieją 2 inne rodzaje modułów: na moduły SFP oraz hybrydowe.
Kable FlexStack również się różnią od tych spotykanych w StackWise:

Podobnie jak w przypadku StackWise tak i tutaj mamy do czynienia z różnymi odmianami technologii. Dwie najpopularniejsze to FlexStack oraz FlexStack-Plus, których charakterystyki znajdziesz poniżej:
Podobnie jak w przypadku StackWise tak i tutaj mamy do czynienia z różnymi odmianami technologii. Dwie najpopularniejsze to FlexStack oraz FlexStack-Plus, których charakterystyki znajdziesz poniżej:
Technologia | Max. ilość switchy w stacku | Przepustowość backplane’u | Konwergencja |
FlexStack | 4 | 40 Gb/s | 1-2 sec |
FlexStack-Plus | 8 | 80 Gb/s | 100 msec |
Sama zasada działania FlexStack jest bardzo podobna jak w przypadku StackWise, z tą różnicą, że nie mamy tutaj ról Active/Backup. Awaria mastera powoduje przejęcie stacka przez następnego w kolejności membera. Kluczowe jest to, że nie ma on zsynchronizowanego bieżącego stanu control plane’a, w wyniku czego może wystąpić krótka przerwa w przełączaniu ruchu. Od siebie dodam, że niestety spotkałem się również z sytuacją, w której awaria mastera spowodowała awarię całego stacka (reboot i ponowną elekcję).

FlexStack odróżnia od StackWise ponadto znacznie mniejsza przepustowość backplane’u co ma sens zwłaszcza w warstwie dostępowej sieci.
W tym artykule zapoznaliśmy się z podstawami teoretycznymi stackowania. Wiedza ta przyda nam się podczas pracy ze stackami. O wykorzystaniu tej technologii w praktyce porozmawiamy w jednym z kolejnych artykułów.