Stackowanie przełączników Cisco – StackWise i FlexStack

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ą:

Przełącznik Cisco Catalyst 6513-E
Przełącznik Cisco Catalyst 6513-E

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):

Stack przełączników Catalyst 2960-X z frontu
Stack przełączników Catalyst 2960-X z frontu

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

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 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
Rodzina przełączników Catalyst 3850
Rodzina przełączników Catalyst 3850

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

Modele przełączników 3850 - styczeń 2019
Modele przełączników 3850 – styczeń 2019

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:

Porty stackowalne z tyłu przełącznika 3850
Porty stackowalne z tyłu przełącznika 3850

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

Kable do stackowania przełączników
Kable do stackowania przełączników

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!):

Przełączniki okablowane w pętlę
Przełączniki okablowane w pętlę

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

Pełna przepustowość stacka opartego o StackWise-480
Pełna przepustowość stacka opartego o StackWise-480

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

Niepełna przepustowość stacka opartego o StackWise-480
Niepełna przepustowość stacka opartego o StackWise-480

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!

Stack oparty o StackWise zbudowany z 4 przełączników - widoczne role poszczególnych switchy
Stack oparty o StackWise zbudowany z 4 przełączników – widoczne role poszczególnych switchy

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