Wprowadzenie do GNS3

GNS3 pozwala wizualizować, planować i testować sieci, a co za tym idzie również rozwiązywać problemy środowisk sieciowych na platformach różnych dostawców na dużą skalę. Wszystko odbywa się na ekranie komputera, nie jest wymagana bezpośrednia interakcja ze sprzętem. Za pomocą interfejsu graficznego użytkownicy mogą bezproblemowo łączyć wszystkie typy wirtualnych interfejsów w celu tworzenia rzeczywistej reprezentacji sieci. GNS3 działa na tradycyjnym sprzęcie komputerowym i może być używany w wielu systemach operacyjnych w tym Windows, Linux, MacOS. Jest pondato darmowym oprogramowaniem na licencji GPLv3.

GNS3 nie jest, jak to się często uważa, powiązany z Cisco. Program ten został stworzony przez niezależnych twórców. Na obecnym stadium rozwoju wspiera on bardzo dużo innych dostawców, nie tylko Cisco. Jest to ogromną zaletą. Dodatkowo bardzo prosto można w nim przechwytywać pakiety za pomocą Wiresharka.

Na jakim systemie operacyjnym najlepiej uruchamiać GNS3?

Oprogramowanie to działa najlepiej na systemie Linux. W przypadku, gdy chcemy pracować na systemach z rodziny Windows wymagane jest korzystanie z oddzielnego serwera na którym uruchamiane są obrazy systemów Cisco – dokładniej IOU on UNIX. Takie rozwiązanie jest konieczne ponieważ Windows nie wspiera natywnie wirtualizacji KVM.

Po uruchomieniu GNS3 na systemach innych niż Linux, aby móc korzystać z pełnych możliwości symulatora musimy również zaimportować serwer, który będzie pracować jako wirtualna maszyna – GNS3VM. Serwer ten to nic innego jak Ubuntu „postawione” na VirtualBoxie lub VMWare.

Jeśli nie potrzebujemy korzystać z obrazów Cisco IOU wtedy możemy zrezygnować z dedykowanego serwera. Rekomendowane jest jednak uruchamianie wszystkich maszyn na dedykowanym do tego serwerze.

Osobiście bardzo zachęcam do korzystania z GNS3 zainstalowanego na Linuxie. Takie rozwiązanie oszczędzi nam wiele problemów wynikających między innymi z konieczności „utrzymywania” maszyny wirtualnej GNS3VM czy windowsowego firewalla który potrafi nam coś zablokować w najmniej oczekiwanym momencie.

Istnieją oczywiście zadowoleni użytkownicy którzy pracują na Windowsie. W tej kwestii to użytkownik musi już sam zadecydować jakie środowisko pracy mu najlepiej odpowiada. Ja wybrałem dystrybucje Linuxa – Ubuntu. Praca na GNS3 „postawionym” na dystrybucji Linuxa Ubuntu jest przyjemnością. Działa on szybko, sprawnie i pobiera mało zasobów.

GNS3 a obrazy IOS – kwestie legalności

W korzystaniu z GNS3 pojawia się mały paradoks, który polega na tym że GNS3 nie byłby tak wartościowy bez VIRL-a, a dokładniej jego obrazów vIOS. Oczywiście możliwe byłoby emulowanie systemów na wszystkie inne możliwe sposoby jakie nam oferuje, jednak to właśnie obrazy vIOS, a w szczególności vIOS_L2 (obraz przełącznika) dają nam tu ogromny potencjał.

Należy zauważyć, że jeszcze nie tak dawno temu dodanie switcha do topologii było w ogóle niemożliwe ponieważ nie było do dyspozycji dobrze działającego obrazu. Korzystanie z nich bez wykupienia licencji VIRL-a jest co prawda rodzajem piractwa, jednak przeciętny użytkownik GNS3, pobiera obrazy z VIRL-a z taką swobodą jakby pobierał obrazek z Internetu.

Nawet samo Cisco trochę przymyka oko na pobieranie takich obrazów, bo przecież sami „wyżsi rangą” partnerzy Cisco czy wykładowcy w szkołach korzystają z GNS3. Tematem publikacji nie jest jednak bezpośredni wywód o kwestiach legalności.

Oficjalnie korzystanie z obrazów IOU/vIOS czy nawet wyjętych z urządzenia i emulowanych na Dynamips jest rodzajem piractwa i kropka. Sam osobiście kupiłem VIRL-a, aby legalnie korzystać z obrazów i jednocześnie miałem bardzo dużo zabawy bezpośrednio z VIRL-em.

Trudne początki z GNS3

Początki z GNS3 mogą być dla niewprawionego użytkownika trudne. Wszystko przez to, że w przypadku przesiadki z Packet Tracer mamy dość dużą przepaść jeśli chodzi o łatwość obsługi obu platform. GNS3 po instalacji z dużym prawdopodobieństwem przywita nas wieloma błędami i minie wiele godzin zanim uruchomimy pierwszą działającą topologię.

Celem zobrazowania dlaczego GNS3 bywa tak kłopotliwy posłużę się pewną analogią. Załóżmy że chcemy do jednej klatki wsadzić psa, kota i mysz. Oczywiście skończy się to katastrofą. GNS3 to klatka, a wszelkie urządzenia które chcemy w nim uruchomić to różne zwierzęta. Jaka jest szansa, że te zwierzęta się nie pogryzą? : )

Oczywiście powyższy przykład miał na celu tylko zobrazować istotę problemu i ma się on nijak do tego co możemy zobaczyć na ekranie naszego komputera podczas, gdy symulator odmawia nam współpracy. Nie należy się zniechęcać, gdy na początku coś nie działa. Po początkowych problemach, gdy już zapoznamy się z symulatorem praca na nim zmieni się w czystą przyjemność.

W Packet Tracer, aby zacząć pracę wystarczyło tak naprawdę go zainstalować. GNS3 wymaga od nas oprócz instalacji doinstalowania przynajmniej VMWare lub Virtual Boxa. Jedno z nich jest wymagane aby uruchomić serwer dla naszych obrazów (w przypadku pracy na Windowsie oczywiście). Poza tym jeśli chcemy dodać do naszej topologii inne systemy np. jakiś serwer z rodziny Microsoft będzie on pracował właśnie wewnątrz jednego z tych programów jako wirtualna maszyna.

Co mogę uruchomić na GNS3?

GNS3 oferuje kilka sposobów na uruchamianie wirtualnych urządzeń takich jak routery czy przełączniki. Celem uporządkowania wiedzy w poniższym opisie będą wyjaśnione sposoby co możemy uruchomić i za pomocą jakiego środowiska.

Dynamips

Dynamips to emulator obrazów routerów Cisco. Pozwala on uruchomić niezmodyfikowane obrazy oprogramowania układowego IOS. We wcześniejszych wersjach GNS3 był on podstawowym sposobem do uruchamiania urządzeń sieciowych.

Tak naprawdę to GNS3 jest nakładką graficzną umożliwiającą w prosty sposób zarządzanie systemami emulowanymi za jego pomocą. Nie wymaga zaawansowanej konfiguracji, jedyne co potrzebujemy to obraz systemu IOS, np. skopiowany bezpośrednio z routera. Emulator ten działa na wszystkich systemach, a co za tym idzie możemy go uruchomić bezpośrednio nawet na systemie Windows.

Dynamips ma jednak pewne ograniczenia. Nie może on emulować obrazów switchy Cisco (powodem tego jest ich architektura) co zostało już wcześniej opisane. Można jednak obejść to ograniczenie używając routera z odpowiednim modułem 16-portowego przełącznika. Takie rozwiązanie nie daje nam jednak wszystkich funkcji jakie posiada switch.

Jeśli jesteśmy partnerem Cisco i posiadamy umowę serwisową łatwiej będzie nam otrzymać jakiś minimalny support na otrzymane obrazy. Kwestie legalności są jednak dyskusyjne, ponieważ istnieje informacja, że nawet po zakupie urządzenia jakim jest router, system może być uruchomiony tylko na fizycznym urządzeniu. Z kolei na oficjalnej stronie GNS3 możemy przeczytać że kopiowanie systemu jest dozwolone…

Zalety Dynamips:

  • Emuluje prawdziwy IOS „wyjęty” z routera Cisco.,
  • Działa na Windowsie,
  • Można legalnie użyć w przypadku posiadania fizycznego sprzętu, lub „dogadania się” z Cisco.

Wady Dynamips:

  • Brak możliwości emulacji przełączników,
  • Brak oficjalnego wsparcia od Cisco,
  • Nie obsługuje nowszych obrazów IOS,
  • Do działania potrzebuje trochę więcej zasobów niż w przypadku natywnie uruchomionej emulacji.

IOS on Unix (IOU)

Jest to uruchomienie natywne specjalnie przygotowanych obrazów Cisco w unixowym środowisku. Nie uruchomimy ich na Windowsie dlatego w tym wypadku wymagane jest zainstalowanie specjalnej maszyny GNS3VM.

IOU to nic innego jak IOS oparty na Unixie. Początkowo był to wewnętrzny, zamknięty projekt Cisco, który nie był przeznaczony dla zewnętrznych użytkowników. Przez wiele lat zdobycie obrazów Cisco IOU było bardzo trudne i możliwe do uzyskania w bardzo ograniczonych okolicznościach. Niemiej jednak eksperymentalna wersja tego oprogramowania wyciekła poza biura Cisco. Oficjalnie jest to jednak nadal wersja możliwa do użycia tylko przez inżynierów Cisco i wąskiej grupy partnerów.

Mimo, że nie mamy gwarancji poprawnego działania jest to interesująca alternatywa rozwiązująca problemy wirtualizacji IOSa opartego na Dynamips. W przeciwieństwie do oprogramowania układowego IOS działającego w zwirtualizowanym środowisku kontrolowanym przez proces Dynamips, IOU to natywne pliki wykonywalne, które działają bezpośrednio w środowisku.

Jest to ten sam kod systemu IOS skompilowany do działania na systemach Unix. Dostępnych jest kilka plików binarnych IOU emulujących różne opcje, ale co ważniejsze jest możliwość emulowania urządzeń pracujących w warstwie 2 – przełączników. Wiele źródeł wskazuje jednak, że część protokołów nie działa w takiej sytuacji prawidłowo. IOU było stosowane przed rozpowszechnieniem obrazów vIOS przez Cisco (o których za chwilę) i było alternatywą do testowania niektórych funkcji warstwy drugiej, niedostępnych w Dynamips.

Zalety IOU:

  • Natywna emulacja pobiera mniej zasobów i jest szybsza,
  • Wsparcie protokołów działających w warstwie drugiej.

Wady IOU:

  • Należy traktować go raczej jako system eksperymentalny, niestabilny,
  • Legalnie korzystanie jest możliwe tylko przez ścisłą grupę osób (pracowników i partnerów Cisco),
  • Brak oficjalnego wsparcia Cisco.

vIOS (Qemu)

Jest to emulator systemów. W wielkim skrócie to coś takiego jak VirtualBox tylko stworzony do innych celów. To właśnie w nim uruchamiamy specjalne obrazy przygotowane do działania w tym emulatorze takie jak routery, switche, firewalle ASA i wiele innych. Możemy w nim między innymi uruchomić obrazy vIOS.

Cisco Virtual iOS (vIOS) to nic innego jak obraz systemu IOS stworzony przez Cisco na potrzeby użycia w środowisku wirtualnym VIRL. Nic nie stoi na przeszkodzie, aby użyć ich również w GNS3. Można przypuszczać, że IOU było wczesną fazą rozwoju obrazów IOS. Obrazy te z początku można było pobrać w ramach One Base Kit SDK Cisco, które później zastąpiono płatną platformą wirtualizacji VIRL, już nie do swobodnego pobierania.

Oprogramowanie które pracuje na routerach i switchach zostało za pomocą inżynierii wstecznej odpowiednio dopracowane i skompilowane do używania w środowisku wirtualnym. GNS3 używa właśnie Qemu do uruchamiania tych obrazów.

Zalety vIOS:

  • Oficjalne wsparcie Cisco,
  • Możliwość legalnego uruchomienia po wykupieniu licencji,
  • Szeroki wybór systemów do wirtualizowania (IOSv, IOSvL2, NX-OSv, NX-OS 9000v, IOS, XRv and IOS XRv 9000, IOS XE – CSR1000v, ASAv).

Wady vIOS:

  • Płatna licencja ($199/rok).

Pozostałe

Powyższy opis miał na celu wyczerpać sposoby na jakie można uruchomić urządzenia Cisco. Nic nie stoi na przeszkodzie, aby do symulacji dodać dowolne inne urządzenie lub system. Lista dostępnych urządzeń jest dość długa. Ograniczenie sprowadza się tu tylko do stopnia w jakim dany obraz będzie chciał współpracować z dostępnymi środowiskami do wirtualizacji.

W GNS3 oprócz wspomnianych wyżej opcji mamy do dyspozycji również:

  • VMware i VirtualBox – do naszej topologii możemy dodać systemy uruchomione w tych środowiskach. Należy pamiętać, że GNS3 jest tylko swego rodzaju łącznikiem w warstwie fizycznej i nie ma możliwości ingerowania w ich działanie. Wszelkie próby przenoszenia projektów wiążą się też z przenoszeniem całych maszyn, co jest dość uciążliwe. Za wykorzystaniem VMware i Virtualbox przemawia wiele korzyści. Pozwalają na tworzenie złożonych topologii, w których są serwery i komputery tak jakby były to prawdziwe urządzenia końcowe.
  • VPCS – jest to sposób na symulację komputera z bardzo podstawowymi funkcjami. Komputer ten zużywa bardzo mało zasobów, nie posiada interfejsu graficznego. Można za jego pomocą przeprowadzić podstawowe operacje typu ping.

GNS3 jest bardzo atrakcyjną formą labowania. Co prawda wymaga troszkę zachodu na początku, ale po wstępnej konfiguracji i nabraniu obycia z interfejsem jest to naprawdę wyśmienite środowisko do testowania i zabawy.

O jakich aspektach pracy z GNS3 byś chętnie przeczytał/a w jednym z kolejnych artykułów?


🗳 Jak przydatna była ta publikacja?

Średnia ocena 5 / 5. Ilość głosów: 6

Brak ocen. Bądź pierwszy!

Dziękujemy za ocenę! Zapraszamy Cię do obserwowania NSS w mediach społecznościowych!

Przykro nam, że ta publikacja okazała się być dla Ciebie nieprzydatna!

Uwaga: Twój głos będzie liczony tylko jeśli udzielisz feedbacku używając formularza poniżej.

Jak możemy poprawić tę publikację?