Widząc tyle nazw systemów (a to i tak nie wszystkie) początkujący administrator sieci może zadać pytanie „po co?”. A jest ku temu powód – rozwój. I nie mam tu na myśli kolejnych numerków przy nazwie, gdzie kolejnych wersji są dodawane nowe funkcje czy naprawiane stare błędy, lecz o zmianie koncepcji systemu, by był lepszy czy bardziej niezawodny.
Z tych trzech systemów najstarszy jest IOS, czyli Internetwork Operating System, gdyż jego początki sięgają połowy lat osiemdziesiątych. Jego założeniem było działać „na metalu”, czyli jako niezależny system operacyjny na danym urządzeniu. System ten był rozwijany aż do wersji 15.9(3)M, która została wypuszczona w połowie roku 2019. Przez te wszystkie lata system był rozwijany, dodawane były nowe funkcje, adaptowany był do coraz to mocniejszego sprzętu na którym działał, jednakże wciąż ciągnął za sobą historię. System ten został zaprojektowany jako monolityczny, bez ochrony pamięci i wielu innych elementów, które na początku XXI wieku wydają się oczywiste. Miało to oczywiście pewne konsekwencje, jak na przykład to, że cały system znajdował się w jednym dużym pliku lub to, że aktualizacja systemu zawsze wiązała się z restartem urządzenia. Jednak największym problemem IOS było to, że gdy jeden z elementów oprogramowania zawiódł, najczęściej „wysypywał się” przy okazji cały system. Niestety takie zachowanie już kilka lat temu było niedopuszczalne, więc Cisco prezentując routery ASR serii 1000 wprowadziło do użytku następną generację systemu IOS, nazywając ją IOS-XE.
Na czym jednak polegał ten postęp? Jaka była różnica pomiędzy klasycznym IOS a jego młodszym bratem IOS-XE? Przede wszystkim IOS-XE bazuje na linuksie, a to oznacza, że korzysta z jego zalet. Ale czy to oznacza, że trzeba się uczyć nowego interfejsu użytkownika? „Nic bardziej mylnego”, ponieważ IOS-XE, z kilkoma drobnymi różnicami (choćby z komendami związanymi z CPU czy pamięcią), dziedziczy CLI z klasycznego IOS. Spowodowane jest to tym, że „duch” IOS dalej istnieje, w postaci procesu IOSd. Można by rzec, że IOSd to IOS pozbawiony tych elementów, których już nie potrzebuje, jak choćby odpowiedzialnych za bezpośrednią obsługę sprzętu, czy tych, które można było odłączyć, by uruchomić je na IOS-XE jako osobne procesy. Podsumowując, łącząc się po SSH z IOS-XE łatwo przeoczyć, że nie jest to klasyczny IOS. Ciekawostką jest to, że można dostać się do linuksa „siedzącego” pod spodem interfejsu IOS oraz to, że skoro to jest linuks, to można na nim uruchomić inne procesy, poza IOSd, niemniej są to tematy na inny wpis. Wcześniejsze wersje IOS-XE wspierały nie tylko ASRów serii 1000, ale też Catalisty serii 9000, czy przełączniki 3850 oraz 3650. Na czas tego wpisu te dwa ostatnie nie są już wspierane przez najnowszą wersję IOS-XE.
A co zatem z IOS-XR? Czy jest on kolejnym etapem rozwoju IOS-XE? Nie do końca. IOS-XR powstał wcześniej, bo w roku 2004. W przeciwieństwie do IOS-XE, działał on pod kontrolą systemu QNX, jednakże i jemu przeznaczone zostało przeniesienie na linuksa. System ten charakteryzuje się jeszcze dwoma innymi elementami. Po pierwsze składnia poleceń nie jest kopią tych z klasycznego IOS, co wymusza dokształcenie się administratora przesiadającego się z IOS i IOS-XE na IOS-XR. Drugim ważnym elementem odróżniającym ten system jest to, że wprowadzane polecenia nie mają natychmiastowego działania (tak jak to jest w IOS i IOS-XE, gdzie pracujemy na „running configuration”). Aby wprowadzone zmiany zaczęły działać należy wydać komendę „commit”, która waliduje zmiany i je wprowadza, co jest pewnym udogodnieniem, gdyż można wprowadzić kilka zmian do konfiguracji urządzenia, a następnie uruchomić je za jednym „zamachem”. Innymi też są urządzenia, działające pod kontrolą tego systemu, takie jak ASRy serii 9000 czy NCSy.
Oczywiście zbiór systemów operacyjnych na urządzeniach Cisco nie ogranicza się tylko do tych trzech, istnieją inne, jak na przykład NX-OS, jednakże nie będą one omawiane w tym wpisie.
Czy można zatem wskazać, który z tych systemów jest najlepszy? Niestety nie, ponieważ mają one różne cele, w jakich zostały stworzone i każdy z nich jest lepszy w czymś innym. Niemniej jednak, warto wiedzieć „małe co nieco” o każdym z nich oraz wiedzieć, gdzie można się ich spodziewać.
Bibliografia:
- https://en.wikipedia.org/wiki/Cisco_IOS
- https://en.wikipedia.org/wiki/Cisco_IOS_XR
- https://www.cisco.com/c/en/us/products/ios-nx-os-software/ios-xe/index.html
- https://www.quora.com/What-is-the-difference-between-Cisco-IOS-and-Cisco-IOS-XE
- https://specialties.bayt.com/en/specialties/q/276369/what-is-the-key-difference-between-ios-ios-xe-and-ios-xr-for-cisco-devices/