GNS3 – wdrażaj, modernizuj i testuj sieć wirtualnie!

October 7, 2021, 11:18

Praca administratora sieci wiąże się z wieloma wyzwaniami, zarówno w obszarze pracy na środowisku produkcyjnym, jak i w kwestiach związanych z przyszłością środowiska. Sieć komputerowa jest organizmem żywym, wobec którego potrzebnych jest wiele działań, by ów organizm działał jak najlepiej. Oprócz likwidowania bieżących bolączek należy także myśleć o jego przyszłości, bowiem zmieniająca się technologia, rosnąca wydajność urządzeń korzystających z sieci oraz zwyczajny upływ czasu może spowodować, że przestanie ona być wydajna, funkcjonalna i bezpieczna. Producenci rozwiązań dedykowanych sieciom komputerowym nie ustają w bezwzględnym wyścigu o klienta, stale prezentując rozwiązania coraz doskonalsze pod każdym względem.

Administratorzy śledzący rynek wiedzą, że mnogość opcji oraz ich możliwości są imponujące – wiele z rozwiązań spotyka się z entuzjazmem, jednakże najpoważniejszym problemem stojącym na drodze do ich implementacji w sieci jest (oczywiście oprócz aspektu finansowego) duża doza ograniczeń możliwości wypróbowania takiego sprzętu. Integratorzy IT oraz dystrybutorzy dwoją się i troją, by zapewnić zainteresowanym, potencjalnym klientom testowe egzemplarze sprzętu sieciowego czy ograniczone czasowo wersje demonstracyjne systemów wirtualnych, jednakże procedury związane z pozyskaniem produktów demonstracyjnych często są zawiłe proceduralnie (wymagają ustaleń, spotkań, podpisywania umów najmu, niejednokrotnie zwrotnych zaliczek, etc.), długotrwałe (ze względu na ograniczoną dostępność testowych oraz konsumpcję czasu potrzebnego na formalności), inwazyjne (często wymagają udostępnienia środowiska produkcyjnego przez potencjalnego klienta, nieraz wbrew jego woli, celem udowodnienia działania, co osłabia bezpieczeństwo struktur sieci oraz angażuje dodatkowo czas administratora oraz inżyniera produktu) oraz zwyczajnie po ludzku dość kłopotliwe (szczególnie dla kogoś, komu niekoniecznie jest po drodze w kontaktach na poziomie biznesowym w relacji klient-integrator lub klient-dystrybutor). Wobec tych oczywistych wad wypożyczania interesujących nas rozwiązań, warto rozważyć zbudowanie samodzielnego, funkcjonalnego i niejednokrotnie w zupełności wystarczającego na potrzeby testów sieciowego poligonu doświadczalnego – nawet takiego, który bezpośrednio odzwierciedla strukturę naszej sieci, by mieć jednocześnie jej w pełni działający na płaszczyźnie wirtualnej model.

Jedną z tego typu platform, pozwalających na symulowanie działania mniej lub bardziej rozbudowanych środowisk sieciowych, jest GNS3. To darmowe rozwiązanie działające w architekturze klient-serwer. Od administratora wymaga (w zależności od skali symulowanego środowiska sieciowego) posiadania odpowiednio mocnego komputera (lub serwera). Rozwiązanie opiera się bowiem na maszynie wirtualnej (opracowanej na Linuxie), którą musimy gdzieś uruchomić – nieważne, czy lokalnie na komputerze, czy na zewnętrznym serwerze, oraz na aplikacji klienckiej, która jest interfejsem wykonawczym, na której budujemy, uruchamiamy i testujemy to, co nas interesuje – w przejrzystej formie graficznej.

Implementacja jest prosta – należy rozpocząć od instalacji wspomnianej maszyny wirtualnej na hoście, pamiętając o przydzieleniu odpowiedniej ilości procesorów, pamięci RAM i dysków w zależności od naszych potrzeb (dla przykładu: każdy z przełączników Cisco IOS uruchamiany na GNS3 wymaga do działania 1 GB RAM, Fortigate minimum 1 GB RAM, Sophos – minimum 4 GB, routery Cisco – 512 MB, maszyny wirtualne Windows minimum 1 GB, etc.). Na wszelki wypadek warto przypisać taką wartość, która wystarczy na bezproblemowe rozszerzanie naszego „poligonu” o kolejne urządzenia – są one bowiem emulowane właśnie w środowisku tej maszyny wirtualnej i to ona odpowiada za przydzielanie im zasobów sprzętowych (stanowi środowisko wirtualizacyjne dla nich, mamy więc tutaj do czynienia ze swego rodzaju wirtualizacją zagnieżdżoną). Aplikacja kliencka GNS3 nie ma wysokich wymagań sprzętowych, musimy jedynie zapewnić jej połączenie z wirtualną maszyną wykonawczą. Od tej chwili możemy rozpocząć naszą przygodę z programem. Interfejs jest prosty, administrator ma przed oczami pustą tablicę, na której może „osadzać” predefiniowane obiekty (przełączniki, routery, firewalle, systemy operacyjne, etc.), które następnie może ze sobą łączyć, włączać je i dowolnie konfigurować tak, jak gdyby miał do czynienia z fizycznym sprzętem na swoim stole laboratoryjnym.

Jak widać na obrazku, możemy budować różne, bardziej lub mniej skomplikowane topologie; tutaj opartą na przykład o firewalla Fortigate z dostępem do Internetu (tak, maszyny wewnątrz tego środowiska możemy łączyć z Internetem), ze stacją kliencką z Windows 10, komputerem Chromium i przełącznikami Cisco z oprogramowaniem IOS. Program wyposażony jest w kilka przykładowych urządzeń, każde dodatkowe wgrać można z oficjalnego „sklepu” GNS3: https://www.gns3.com/marketplace/appliances - liczba emulowanych rozwiązań systematycznie się zwiększa i aktualizuje, dlatego właśnie warto rozejrzeć się, co chcielibyśmy przetestować i zaimplementować to w naszej instancji GNS3 – łatwo, szybko i skutecznie. Do wyboru mamy urządzenia i systemy wielu bardziej lub mniej znanych producentów. Program zapewnia nam dostęp do rzeczywistych konsol emulowanych urządzeń, dzięki czemu nie odczuwamy niemal żadnej różnicy pomiędzy sprzętem fizycznym, a wirtualnym/emulowanym – poza brakiem kłopotliwej plątaniny głośnego, prądożernego sprzętu oczywiście.

Projekty nad którymi pracujemy możemy w każdej chwili zapisywać, wyłączać i włączać, co ułatwia panowanie nad środowiskiem oraz powrót do poprzednich ustawień w przypadku popełnienia błędu. Eliminujemy także uciążliwość związaną z potencjalnymi problemami strukturalnymi – wszak trudno podejrzewać uszkodzenie portu Ethernet, czy kabla sieciowego, gdy działamy na wirtualnych zasobach. 

Jedną z największych zalet wykorzystywania GNS3 jest jednak jego zdolność do integracji naszej testowej topologii sieciowej z siecią produkcyjną, czyli z rzeczywiście funkcjonującym sprzętem i systemami – program umożliwia wyjście poza obszar testowy za pośrednictwem wirtualnej karty sieciowej i tym sposobem możemy bez żadnych przeszkód przetestować np. firewalla marki Sophos na rzeczywistych komputerach, autoryzację TACACS poprzez integrację rzeczywistych przełączników Cisco z GNS-ową implementacją serwera TACACS, czy też działanie systemu SIEM od firmy Fortinet, instalując testową instancję na GNS3 i podłączając ją do naszej sieci produkcyjnej.

GNS3 jest systematycznie rozwijanym systemem służącym administratorom do testowania wprowadzanych zmian i projektowania „żyjących” topologii w bezpiecznym, odseparowanym środowisku. Całość cechuje się wysokim stopniem integracji z rzeczywistymi środowiskami. Wokół rozwiązania ukształtowała się społeczność pasjonatów, która z pewnością będzie potrafiła odpowiedzieć na nurtujące pytania, oraz zadba o zwiększenie portfolio urządzeń i systemów, które można uruchomić w GNS3. Jako projekt, GNS3 cenię sobie osobiście bardzo wysoko i obecnie nie wyobrażam sobie codziennej pracy bez opartego o ten system poligonu doświadczalnego. Dzięki niemu nie tylko planuję, testuję i rozwijam projekty dla naszych klientów, ale także uczę się nowych technologii w najbezpieczniejszy możliwy sposób.

KG