ISR 4000

ISRy 4000 posiadają możliwość licencjonowania przepustowości.

architektura tego systemu została zbudowany od początku - chcieliśmy uniknąć problemów, na które trafiliśmy przy ISRach drugiej generacji - routerach 1900, 2900 i 3900.

na każdej z tych platform, tradycyjnie zresztą, uruchomić można tysiące funkcjonalności - od filtrowania ruchu, stanowego firewalla (z dodatkowymi mechanizmami wykrywania, badania i nakładania ograniczeń na warstwie aplikacji), mechanizmów QoS, VPNów, akceleracji lokalnej (WCCP) i globalnej (dzięki współpracy z Akamai), usług głosowych… trudno to wszystko zliczyć. przy tak szerokich możliwościach platformy, jakakolwiek ocena wydajności platformy jest trudna - scenariuszy jest po prostu za dużo. pozycjonowanie zatem opierało się o model “dla jakiego scenariusza proponujemy ten model”. choć wszystkie modele ISR G2 pozycjonowane były jako modele dla małych i średnich firm, realizujące przepustowości do 25Mbit/s (Cisco ISR serii 19xx), do 75Mbit/s (Cisco ISR serii 29xx) oraz do 350Mbit/s (Cisco ISR serii 39xx) dla ‘równolegle realizowanych usług’, prawie w każdej sieci realizowaliśmy jednak inny zestaw usług. część Klientów używała routerów zgodnie z ich pozycjonowaniem, znam jednak wielu którzy za pomocą routerów serii 2900 i 3900 realizowali usługi operatorskie dla przepustowości 400-800Mbit/s. takie spektrum “wykorzystania” oznacza z kolei, że wynik wydajności (przy zachowaniu paru/parunastu % procesora wolnego dla stabilności) , różnił się znacznie od wdrożenia do wdrożenia i budził różnego rodzaju frustracje. CPU w tych platformach starał się za każdym razem dać z siebie wszystko, co oznaczało, że dla czystego routingu i dużych pakietów mogliśmy na większych platformach często realizować routing powyżej 1Gbit/s symetrycznie, ale po dodaniu paru funkcjonalności (np. ACL, uRPF, NAT, stanowy firewall, WCCP i HQoS) wydajność graniczna spadała właśnie mniej więcej do poziomu pozycjonowania platformy. dodanie kolejnych funkcji jeszcze bardziej obniżało tą wydajność.

przy ISRach 4000 zdecydowaliśmy się domyślnie na inne podejście - podajemy twardą wartość wydajności dla pełnej grupy obsługiwanych usług. dostarczamy jednak możliwość licencyjnego zwiększenia obsługiwanej wydajności z założeniem, że użytkownik w tej sytuacji robi to już jednak świadomie. możliwy jest również powrót do zachowania znanego ze starszych routerów - czyli zdjęcie jakichkolwiek limitów - przez licencję ‘boost’. jak to jest fizycznie zrealizowane?

IOS-XE, wiele rdzeni i wirtualizacja

po pierwsze, routery ISR 4000 wyposażone są w wielordzeniowe procesory w architekturze x86 oraz system operacyjny IOS-XE. umożliwia nam to niespotykaną do tej pory elastyczność przydziałów zasobów oraz dzielenia oprogramowania na paczki, wątki czy wręcz wirtualizację funkcjonalności:

wysokopoziomowa architektura IOS-XE pracującego na routerach ISR 4000 IOSd, przechowujący funkcjonalność samego systemu operacyjnego jest po prostu jedną z wielu potencjalnie możliwych do uruchomienia maszyn wirtualnych. domyślnie rezerwujemy dla niego jeden z rdzeni, lub wątków (w zależności od konkretnego modelu ISRów 4k).

domyślnie control plane, czyli warstwa odpowiedzialna za interakcję z innymi elementami sieciowymi oraz zarządzanie zajmuje jeden rdzeń. kolejne N rdzeni zajmuje data plane - warstwa odpowiedzialna za obsługę ruchu. ciekawym dodatkiem do tej architektury jest możliwość wydzielenia rdzeni dla usług - czyli właśnie wirtualnych maszyn.

shaper, czyli ochrona ruchu

po drugie, platformy ISR 4000 posiadają wewnętrzny mechanizm ograniczania ruchu na jednostkę czasu, domyślnie skonfigurowany tak, aby odpowiadać pierwotnemu pozycjonowaniu platformy. dla routerów 4321 jest to 50Mbit/s. shaper ten dba o to, żeby całkowity ruch wychodzący z routera sumował się do wartości tych 50Mbit/s - nadmiarowy ruch jest oczywiście odrzucany. daje nam to przewidywalność - o ile ponownie, jak w przypadku ISRów G2, platforma może zapewnić przekazywanie ruchu na dużo większym poziomie, administrator i projektant sieci jest pewien, że dla 50Mbit/s niezależnie od skonfigurowanych usług, router osiągnie zakładaną wydajność. wynika to z prostego faktu: na rdzenie nie zostanie rozłożone więcej pracy niż mogą one zrealizować w jednostce czasu dla zakładanej wydajności.

tak jak napisałem powyżej, daje się jednak ten mechanizm zrekonfigurować - za pomocą licencji ‘performance’, dających wzrost do kolejnego poziomu wydajności (dla routerów 4321 to 100Mbit/s), lub wręcz usuwający limit całkowicie - ze wszystkimi tego konsekwencjami (licencja ‘boost’). zmiana licencji wymaga zrekonfigurowanie sprzętowe ilości rdzeni przeznaczonych dla data plane i niestety usuwa możliwość korzystania z usług (rdzeni przypisanych do services plane). na przykładowym 4321 rekonfigurację (po zainstalowaniu odpowiednich licencji) przeprowadza się w ten sposób:

c4321-r6(config)#platform hardware throughput level ?
100000  throughput in kbps
50000   throughput in kbps
boost   Enables unthrottled throughput traffic

wydajności osiągane przy licencji ‘boost’ daleko wykraczają ponad 1Gbit/s i uzależnione są od ilości dostępnych interfejsów. należy pamiętać jednak, że wraz z nakładaniem dużej ilości usług - wydajność będzie od pewnego momentu spadać. poniżej przykład realnych wartości wydajności przy danej licencji per platforma wraz z odnotowaniem, jaki poziom obciążenia procesora notuje platforma (wartości do ok. 85% są generalnie uznawane za bezpieczne - tj. CPU nadal posiada zapas mocy pozwalający obsłużyć nieprzewidziane sytuacje, np. rekonwergencja dużego fragmentu sieci nakładająca na router dodatkowe obowiązki).

dla innych zastosowań warto zauważyć, że w obecnym portfolio platform dostępowych znajduje się zarówno w pełni wirtualny router oparty o IOS-XE czyli CSR 1000v, platforma dostępowa oferująca pełne funkcje NfV - ENCS 5000 oraz routery dostępowe dla najmniejszych firm - ISR 1000.