GNS3 – Graphical Network Simulator
Symulator posiada swój dedykowany program (klient) łączący się z serwerem pracującym w maszynie wirtualnej lub na systemie Linux. Oprogramowanie GNS3 pozwala także na pracę za pomocą wbudowanego webserwera co często jest przydatne kiedy nie mamy możliwości instalacji oprogramowania a maszynę wirtualną z GNS3 już posiadamy skonfigurowaną.
Klient webowy może łączyć się się do dowolnego serwera GNS3 czy to pracującego w maszynie wirtualnej Linux czy na fizycznym komputerze MS Windows lub Linux. Na MS Windows brak pewnych funkcjonalności o czym później.
GNS3 – Web interface
GNS3 umożliwia pracę 100% w interfejsie webowym, co jest wielce przydatne w momencie kiedy nie mamy możliwości instalacji na komputerze pakietu GNS3 klienta (np. brak uprawnień administracyjnych).
Ogólna procedura jest taka:
1 Pobieramy obraz maszyny wirtualnej GNS3
2 Rozpakowany obraz wczytujemy do naszego systemu wirtualizacji (w niniejszych przykładach to VirtualBox)
3 Przeglądamy i modyfikujemy parametry dla nowej maszyny wirtualnej
4 Pobieramy obrazy MikroTik (najlepiej wersja CHR), Cisco i inne, które będziemy wykorzystywać
6 Maszynę wirtualną GNS3 uruchamiamy, logujemy się i wykonujemy aktualizację
7 Sprawdzamy jakie mamy prawidłowo ustawione interfejsy sieciowe i czy działa sieć
8 Konfigurujemy niezbędne szablony urządzeń
8a Z repozytorium GNS3
8b MikroTik CHR samodzielnie
8c MikroTik RouterOS (z VirualBoxa) samodzielnie
9 Cisco
10 Host Firefox (kontener)
11 Host Debian/Ubuntu
Uwaga: w tym dokumencie zakładamy, że pracujemy tylko na maszynie wirtualnej GNS3, na komputerze hosta *NIE* uruchamiamy oprogramowania GNS3 a jedynie klient np putty, przeglądarkę.
Szczegóły
1 Pobieramy obraz maszyny wirtualnej GNS3
Obraz pobieramy ze strony GNS3, odpowiedni dla naszego hyperwizora, kolejno rozpakujemy ponieważ jest dostarczany w ZIP.
2 Rozpakowany obraz wczytujemy do naszego systemu wirtualizacji (w niniejszych przykładach to VirtualBox)
Korzystamy z opcji importu urządzenia wirtualnego, bo tak jest plik przez GNS3 przygotowany
3 Przeglądamy i modyfikujemy parametry dla nowej maszyny wirtualnej
– Pamięć minimum 2GB zalecane będzie więcen 4-6 w zależności od tego ile chcemy w naszym środowisku symulacji uruchomić różnych „urządzeń”
– Folder podstawowy powinna to być lokalizacja gdzie mamy wolne miejsce, na początek około 10 GB, ale wraz z pracą i tworzeniem symulowanych środowisk zapotrzebowanie będzie wzrastać
Polecane paramatry dla naszej maszyny wirtualnej:
— 8GB RAM
— 4 lub więcej procesorów
— min dwa interfejsy sieciowe (pierwszy HostOnly, drugi NAT)
— można dodać trzeci mostkowany ale to raczej nie będzie potrzebne
4 Pobieramy obrazy MikroTik, Cisco i inne, które będziemy wykorzystywać
Musimy przygotować sobie obrazy systemów, które będziemy symulować.
6 Maszynę wirtualną GNS3 uruchamiamy, logujemy się i wykonujemy aktualizację
Po uruchomieniu maszyny GNS3 pojawia się okno panelu
– Widzimy tu adres i port na jaki należy się z komputera hosta zalogować, jest to adres interfejsu HostOnly
– Po kliknięciu OK przejdziemy do różnych opcji
– Wybieramy Upgrade i wersje klikamy w OK
– Rozpocznie się proces aktualizacji po czym maszyna się przeładuje
Uwaga: absolutnie NIE jest polecane wykonywanie ręcznej aktualizacji polecenie apt update / apt upgrade
7 Sprawdzamy jakie mamy interfejsy i czy działa sieć
– Z menu wybieramy Shell i sprawdzamy interfejsy
#ip a
– Standardowo interfejs eth0 jest podłączony do sieci typu HostOnly a interfejs eth1 do NAT, dzięki czemu maszyna ma dostęp do sieci LAN oraz Internetu (zadecydować o tym możemy zmieniając ustawienia sieci naszej maszyny wirtualnej)
Uwaga: w standardowej konfiguracji „urządzeń” symulowanych w tej maszynie w GNS3 nie dostaniemy się z sieci LAN. Taka konfiguracja jest jak najbardziej poprawna ponieważ często projekty GNS3 uruchamiają różne usługi, które mogą zakłócić pracę tej sieci.
Jeśli pojawią się jakieś problemy, np. konfigurator pokaże nam, że nie działa sieć możemy jej ustawienia sprawdzić w sekcji network:
Załaduje się wtedy plik konfiguracyjny środowiska netplan, automatyczne ustawienia wyglądać mogą tak:
Konfigurację zapiszemy za pomocą Ctrl-O, wyjdziemy z edyytora Ctrl-X. Maszyna wirtualna w takim przypadku ponownie się uruchomi.
8a Z repozytorium GNS3
Jest to zawsze najpewniejsza metoda choć zazwyczaj najnowsze wersje systemu RouterOS pojawiają się tam z opóźnieniem.
– Logujemy się do interfejsu webowego maszyny wirtualnej
– Tworzymy nowy projekt
– W nim klikamy w plus i New Template
– Zaznaczamy Install new application from the GNS server
– Wyszukujemy interesujący na system np MikroTik
– Wybieramy szablon z repozytorium np MikroTik RB1100… klikając w przycisk Download (te szablony aktualnie bazują na CHR a opisy są mocno mylące, nie ma tu żadnej emulacji RouterBoard!)
– Procedura teraz jest taka, że trzeba pobrać plik (klikając w Download) i kolejno go zaimportować do maszyny wirtualnej
– Obraz będzie spakowany więc przed importem trzeba go rozpakować
– Po zakończeniu importu klikamy w Create ustalając nazwę, tu zostawimy domyślną
– Teraz wracamy do projektu i możemy urządzenie dodać, klikamy na znak plusa i w nasze nowe urządzenie przenosząc go do projektu
– Możemy zmodyfikować ustawianie (ten szablon ma domyślnie ustawione 1 GB)
– Urządzenie możemy podłączyć do sieci oraz uruchomić
Uwaga:
Pamiętać należy, że wersja CHR jest darmowa ale w tym układzie upload jest ograniczony (bez możliwości zmiany) do 1 Mbps, a licencja kosztuje kilkaset złotych.
Uwaga: aby ustawić poprawną nazwę interfejsów sieciowych wyświetlanych w GNS3 trzeba w sekcji Network (konfiguracja szablonu) ustawić nazwę
ether{port1}
8b MikroTik CHR samodzielnie (instalacja samodzielna)
Ta wersja systemu RouterOS jest przeznaczona do wirtualizacji.
– Pobieramy obraz v6 ze strony MikroTik https://mikrotik.com/download
– W tym przykładzie pobieramy wersje „Raw disk image” ponieważ będziemy korzystać z hyperwizora QEMU


– Logujemy się do interfejsu webowego naszej maszyny wirtualnej GNS3
– W sekcji „Servers” klikamy w „Go to preferences” i kolejno w QEMU
– Tutaj mamy różne obrazy systemów operacyjnych emulowanych w QEMU
– Klikamy w „Add QEMU VM template”
– Zaznaczamy Run this QEMU VM localy czyli w naszej maszynie wirtualnej (bo korzystamy z jej interfejsu webowego)
– W sekcji QEMU VM Name ustalany nazwę szablonu
– Dalej, w QEMU binary and memory ustalamy pamięć operacyjną dla naszego RouterOS, starczy 128 MB
Uwaga: minimalna ilość pamięci dla maszyny wirtualnej z CHR jest opisana na stronie pomocy MikroTik https://wiki.mikrotik.com/wiki/Manual:CHR#Minimal_requirements:
– Console type ustalamy na telnet
– W sekcji Disk image klikamy New image i wczytujemy pobrany wcześniej obraz np v6
– Za pomocą przycisku Browse wybieramy pobrany wcześniej obraz i czekamy aż się załaduje do maszyny GNS3
– Klikamy Add template
– Na liście powinien znaleźć się nowy wpis:
– Po utworzeniu wpisu szablonu można go kliknąć i edytować, zalecenia co do rodzaju interfejsu dysku wirtualnego są na stronie pomocy: https://wiki.mikrotik.com/wiki/Manual:CHR#Minimal_requirements:
– Zmieniamy więc w sekcji HDD na „ide”
– W sekcji Choose symbol można ustawić
— kategorię (np. Routers)
— ilość CPU
— wielkość pamięci
— automatyczny start konsoli
– Jeśli wszystko poszło OK to po utworzeniu nowego projektu (sekcja Servers / Add blank project) z menu szablonów możemy dodać nasze „urządzenie”
8c MikroTik RouterOS samodzielnie (nie CHR ale taki ‚zwykły’) (obraz z VirtualBoxa) (instalacja samodzielna)
W ten sposób możemy uruchomić w GNS3 jedynie RouterOS wersji 6.
Firma MikroTik udostępnia wersję systemy RouterOS specjalnie do wirtualizacji pod nazwą CHR (ang. Cloud Hosted Router) i taką powinniśmy stosować tworząc środowisko zwirtualizowane. Nic nie stoi jednak na przeszkodzie aby wykorzystać obrazy „zwykłego” RouterOS, które już posiadamy. Jedyne co trzeba zrobić to przekonwertować je na format QEMU. W naszym przypadku mamy już zainstalowany (pod VirtualBox) system RouterOS. Dokonamy konwersji dysku wirtualnego z formatu VDI do IMG.
Uwaga:
Aby wszystko zadziałało w QEMU (czyli w naszym GNS3) kontroler dysku dla RouterOS powinien być taki sam jak w systemie źródłowym. Czyli jeśli RouterOS był instalowany na VirtualBox z kontrolerem IDE to taki też trzeba ustawić w sekcji HDD nowego szablonu w GNS3
Uwaga!
Pamiętać trzeba, że taka wersja posiada licencję poziomu Level 0 i działa jedynie przez 24h. Możemy jednak darmowo podnieść licencję do poziomu Level 1, co opisano tutaj.
MikroTik ma licencję związaną z nośnikiem w związku z czym kiedy dokonamy jego konwersji może ona zostać utracona co objawia się notorycznym restartem systemu.
– Sprawdzamy gdzie jest umieszczony plik dysku maszyny wirtualnej (prawym na maszynie wirtualnej w menu VirtualBox i Ustawienia)
– Sekcja Pamięć i zaznaczamy dysk a po prawej stronie pojawia się ścieżka
– Przechodzimy do katalogu z plikiem dysku, uruchamiamy w nim konsolę (np cmd)
– Użyjemy programu vboxmanage do konwersji, poniżej przykład::
> „c:\Program Files\Oracle\VirtualBox\VBoxManage.exe” clonehd –format RAW MT_ROUTER.vhd MT_ROUTER.img
Jeśli nasz dysk jest w formacie VDI możemy go zostawić i w takiej postaci skopiować do maszyny wirtualnej z GNS3, a tam kolejno konwertować na format qcow2 za pomocą polecenia „qemu-img convert -f vdi -O qcow2 mt.vdi mt.qcow2” (jeśli wirtualny dysk naszego RouterOs nazywa się mt.vdi
– Gotowe, plik MT_ROUTER.img będzie można wgrać do GNS3
– Ta procedura nieco różni się dla korzystania z aplikacji GNS3 i aplikacji webowej
Teraz czas na przygotowanie szablonu „urządzenia” RouterOS.
>> Dla aplikacji webowej
– Te ustawienia mają zastosowanie tylko gdy korzystamy z interfejsu webowego maszyny wirtualnej
– Ładujemy GNS3 (standardowo będzie to adres z klasy jednego z interfejsów HostOnly, jest on pokazany w statusie maszyny wirtualnej
– Idziemy do ustawień
– Wybieramy QEMU (za jego pomocą jest wirtualizowany RouterOS) w maszynie wirtualnej GNS3
– Klikamy w „Add QEMU VM template”
– Wybieramy uruchomienie konfigurowanego urządzenia lokalnie (czyli w maszynie wirtualnej GNS3)
– Kolejno nadajemy szablonowi nazwę np RouterOS_6.48
– W sekcji QEMU binary and memory ustalamy lokalizację qemu (zostawiamy bez zmian) oraz pamięć jaka zostanie przydzielona temu „urządzeniu”, dla RouterOS starczy 64/128 MB
– Console type ustalamy na telnet
– W sekcji Disk image zaznaczamy New image jeśli jeszcze takiego obrazu w maszynie GSN3 nie mamy lub Exisiting image i wybieramy z listy. W naszym wypadku New image i ładujemy przekonwertowany wcześniej obraz systemy RouterOS pochodzący z VirtualBoxa.
— Klikamy Browse i wybieramy nasz obraz np routeros.img
– Kiedy obraz się załaduje klikamy w Add template
– Nowy szablon pojawi się na liście
– Klikając w trzy kropki po prawej można go usunąć lub powielić a klikając w nazwę szablonu można edytować jego ustawianie co też zrobimy
– Na zakładce General settings ustalamy ilość vCPU na 2
– W sekcji HDD ustalamy ten sam typ kontrolera jaki był w maszynie wirtualnej skąd pochodzi obraz dysku
– W sekcji Network możemy zmienić ilość interfejsów sieciowych
– Kiedy ustalimy wszystko klikamy w Save
– Kiedy teraz przejdziemy do lokalnego serwera i załadujemy wybrany projekt
– Z sekcji szablonów możemy wybrać nowe urządzenie
– Po umieszczeniu urządzenia w projekcie możemy zmienić jego konfigurację a nawet obraz, z którego się uruchamia (klikamy prawym myszki i wybieramy Configure)
– Sam obraz można także wgrać „ręcznie” używając do tego np WinSCP: do maszyny wirtualnej GNS3 i jej katalogu z obrazami QEMU (zazwyczaj: /opt/gns3/images/QEMU) wgrywamy przekonwertowany plik. Kiedy teraz wywołamy edycję szablonu zobaczymy tam nowy wpis – tan właśnie wgrany obraz dysku
Uwaga: jeśli zdarzy się, że nie można otworzyć wewnętrznej konsoli interfejsu webowego GNS3 ale pokazuje on, że nasz RouterOS v6 działa dostaniemy się do niego za pomocą WinBox lub telnet z komputera hosta. Trzeba tylko podłączyć symulowanego RouterOS do „chmury” w interfejsie projektu GNS3, najlepiej jak poniżej:
>> Dla aplikacji GNS3
(… w przygotowaniu …)
10. Firefox (malutki Linux)
Jest to ciekawe rozwiązanie pozwalające w bardzo prosty i oszczędny sposób uruchomić wewnątrz naszej maszyny wirtualnej malutki system Linux z przeglądarką Firefox. Uruchomienie jest proste
– W naszym projekcie klikamy w plus
– Kolejno przenosimy do obszaru roboczego ikonę FireFoxa
– Najlepiej zaraz przeprowadzić minimalną konfigurację ponieważ bardzo często w tak uruchomionym środowisku myszka nie działa poprawnie, dokonamy tego wpisem
-nographic -usbdevice tablet -vga std -nodefaults
w sekcji „Options” konfiguracji FireFox o nazwie „Advanced / Additionl settings”
– Zatwierdzamy i uruchamiamy takie minimalne środowisko
– Jego adres i port (można logować się za pomoca VNC na konsolę graficzną) zobaczymy w oknie topologii naszego projektu:
– Logujemy się więc na podany adres i port za pomocą programu zdalnego dostępu np. VNC Viewer
– Po chwili ukaże się panel maszyny wirtualnej z FireFox
– Do każdego „urządzenia” w naszym projekcie prowadzi pewien port tworzony przez GNS3 do którego mamy dostęp ponieważ sama maszyna wirtualna GNS3 posiada interfejs HostOnly, do którego oprogramowanie naszego hosta ma dostęp
Dostęp do urządzeń za pomocą konsoli
Zarządzanie urządzeniami z naszego projektu przeprowadzimy za pomocą konsoli tekstowej (telnet) albo za pomocą konsoli graficznej (VNC). Jeśli mamy urządzenia wspierające konsolę tekstową (MikroTik, Cisco) to klikamy na urządzeniu prawym przyciskiem myszki i wybieramy:
– console: w zależności od ustawień powinien się uruchomić program putty lub podobny (możliwe, że trzeba będzie zainstalować GNS3 WebClientPack)
– webconsole: w tym samym oknie przeglądarki uruchomi się konsola
W każdym przypadku mamy wtedy dostęp do konsoli administracyjnej urządzenia. Jeśli chcemy użyć innego programy konsolowego to możemy zalogować się do takiego urządzenia za pomocą telnet z naszego hosta. Jak było napisane wcześniej maszyna wirtualna GNS3 posiada kilka interfejsów sieciowych. Jeden z nich jest podłączony do naszej sieci lokalnej za pomocą NAT, drugi jest podłączony do wybranej sieci HostOnly (w przypadku VirtualBoxa). Sieć NAT jest przydatna gdy z urządzeń naszego projektu chcemy dostać się do sieci LAN lub sieci Internet ale jednocześnie nie chcemy zakłócać pracy sieci LAN (np. uruchomioną usługą DHCP w projekcie GNS3). Druga sieć (HostOnly) pozwala na np. dostęp do urządzeń w projekcie ale tylko z hosta. W przykładzie mamy maszynę wirtualną VirualBox z interfejsami:
pierwsza wirtualna karta sieciowa to NAT
druga to HostOnly:
Warto sprawdzić w konfiguratorze sieci VirtualBoxa czy na tej karcie jest włączony serwer DHCP (o ile takowego potrzebujemy). Z menu głównego VB wybieramy: Plik/Narzędzia/Netowrk manager i w zależności od potrzeb włączamy DHCP.
W takim wypadku mamy zajęte dwa adresy IP: 192.168.50.1 sama karta HostOnly #5 oraz 192.168.50.2 wirtualny serwer DHCP. Serwer ten przydziela adresy IP tylko urządzeniom podpiętym to tejże karty. W przykładzie nasza maszyna wirtualna GNS ma kilka interfejsów ale nas interesuje eth0 i eth1
Jeśli teraz z komputera hosta chcemy zalogować się na konsolę jednego z naszych urządzeń w projekcie GNS3 uruchamiamy np. putty i wpisujemy adres IP naszej maszyny wirtualnej z GNS3 (adres z interfejsu podłączonego do sieci HostOnly) oraz port urządzenia podany w projekcie GNS3. W przykładzie zalogujemy się do routera MikroTik. Jest on z perspektywy hosta dostępny za pomocą protokołu telnet, na adresie maszyny GNS3 i porcie 5001:
Konfiguracja klienta konsoli np. putty:
Aby w jednym oknie zebrać wszystkie konsole naszego projektu można użyć programu mtputty.
















































































































































































