OSI:Netsim
Server pro simulaci sítě WEBnet
Server netsim.civ.zcu.cz slouží primárně pro simulaci sítě WEBnet.
Instalace GNS3 Serveru
Postupovat podle návodu. Nejdříve nainstalovat potřebné balíky. Pro instalaci samotného serveru je lepší vždy používat pip3 kvůli novějším verzím.
pip3 install gns3-server pip3 install gns3-server --upgrade
Instalace GNS3 Klienta
Zatím je lepší používat gns3-gui kvůli "odladěnosti". Webový klient je na stejné adrese jako HTTP API pro klienta v pythonu.
pip3 install gns3-gui
Hned po zapnutí klienta je potřeba nastavit jiný server Edit -> Preferences -> Server -> Main server -> Remote main server:
[ ] enable local server Protocol: HTTP Host: netsim.civ.zcu.cz Port: 80 TCP user: zeptat se v KPS pass: zeptat se v KPS
Terminál bývá nastavený správně, ale je třeba si nainstalovat wireshark a nějaký VNC viewer třeba Remmina nebo tigervnc. Pak je v General preferences -> VNC možné nastavit cestu s parametrama, pro remminu:
remmina -c vnc://%h:%p
Lokace pro konfiguraci a správu GNS3 na serveru
Nastavení serveru, zde se nastavují porty, cesty k modulům a projektům
/root/.config/GNS3/2.2/gns3_server.conf
Složka s projekty
/root/GNS3/projects/
Složka s připravenými image
/root/GNS3/images/QEMU
Systemd service
/etc/systemd/system/gns3.service
Sestavení VPCS
V debian repozitářích je prehistorická verze VPCS a tak je nutné si dokompilovat verzi novou z GitHubu. Poté se nastaví např. jen symbolické cesty na spustitelný .bin soubor /usr/bin/vpcs.
Sestavení ubridge
Protože není v oficiálních debian repozitářích ubridge je nutné si ho dokompilovat: GitHub.
Jak na Docker
Přidání docker image lze provést z GNS3 marketplacu nebo ručně. Dále bude postup pro manuální přidání čistého debianu a pak si ten image upravíme podle potřeby:
na serveru:
docker pull debian
V gns3-gui New template -> Manually create -> Docker -> New -> Existing Image (vybereme debian:latest), dále necháme v defaultu. Dáme docker na canvas připojíme na internet přes NAT. Připojíme se přes telnet poklikáním a doinstalujeme balíčky co se nám hodí např. net-tools nebo iperf3. Docker necháme zapnutý a dále pokračujeme v terminálu na serveru. Image dockeru jsou z povahy persistentní a nainstalované balíčky by nám zmizely po restartu, proto je třeba stav zachovat.
docker ps #zjistíme id běžícího dockeru např 7f5f9dc6a7b7 docker commit 7f5f9dc6a7b7 kps/debian:verze1 #commitneme si novou verzi s novým tagem
Nyní můžeme přidat úplně stejně další docker v gns3-gui, ale vybereme image kps/debian:verze1, který již má naše featury. Ještě před nastartováním dockeru je možné zvolit "Edit config", kde po odkomentování položek:
auto eth0 iface eth0 inet dhcp
bude automaticky získávat DHCP adresu.
Jak vytvořit qcow2 template
Přetažením již existujících templatů do pracovní plochy se vytvoří .qcow2 kopie v adresáři:
/root/GNS3/projects/*project_uid*/project-files/qemu/*device_uid*/obraz.qcow2
Prováděním úprav v GNS3 se upravuje tento obraz a je možné jej zpět nakopírovat do cesty:
/root/GNS3/images/QEMU/obraz.qcow2
Pak je možné buď template upravit v panelu devices: Configure template -> HDD -> HDA (relativní cesta k obrazu, nelze požít browse ten používá lokální procházení souborů), nebo vytvořit kopii: Edit -> Preferences -> QEMU -> Copy a vytvořit tak nový template s např. stejnou konfigurací pro síťová rozhraní.
Vytvoření nového device
Z menu: File -> New template -> From repository -> NX-OSv 9000, zde je nutné na internetu najít soubor OVMF-20160813.fd (obraz nexus biosu) a také je nutné disponovat samotným obrazem. Jelikož je poslední verze 9.3.3 je potřeba vytvořit novou verzi např. 9.3.7, tak aby seděl název s nahrávaným obrazem. Taky je pro novou verzi nutné zatrhnout položku "Allow custom files". GNS3-gui "skenuje" stažené soubory na našem počítači proti požadovaným souborům a po vybrání konkrétní verze je zeleně označí a je možné je dalším krokem nahrát na server.
NAT
Aby bylo možné vytvořit NAT, je nunté mít na serveru balíček libvirt a vytvořit defaultní virtuální síťové rozhraní virbr0:
virsh net-start default virsh net-autostart default virsh net-list --all
Toto rozhraní má rozsah 192.168.122.0/24 a lze dále upravit:
virsh net-edit --network default
<network> <name>default</name> <uuid>b113d5ef-0b58-489f-9374-42be79bfc46e</uuid> <forward mode='nat'/> <bridge name='virbr0' stp='off' delay='0'/> <mac address='52:54:00:0e:2f:30'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network>
Návaznosti na toto rozhraní jsou pak vidět dvěma příkazy:
brctl show # bridgované tun devices z jednotlivých projektů virsh net-dhcp-leases --network default # aktivní dhcp leasy
Bylo zjištěno, že toto virtuální rozhraní se nechová korektně a když dojde k restarování GNS3 server tak na něj nejsou aplikována nastavení, toto částečně řeší systemd servica:
[Unit] Description=GNS3 server Wants=network-online.target After=network.target network-online.target [Service] ExecStart=/usr/local/bin/gns3server --log /var/log/gns3/gns3.logi ExecStartPost=/usr/bin/virsh net-destroy --network default ; /usr/bin/sleep 3 ExecStartPost=/usr/bin/virsh net-start --network default ExecReload=/bin/kill -s HUP $MAINPID Restart=on-abort
Defaultní síť lze také restartovatza běhu GNS3 a tím problém vyřešit. Problém se neobjevuje, pokud je alespoň jedno tap zařízení bridgované do NATu tzn. existuje alespoň jeden projekt, který stále běží a je tam linka do NAT zařízení.