FAQ GNS3

Lista dei problemi noti e delle possibili soluzioni relative a GNS3

Non riesco ad importare la macchina virtuale su Virtualbox perchè non sono presenti i kernel driver

Errore mostrato in Virtualbox:
'The Virtualbox Linux kernel driver (vboxdrv) is either not loaded or there is a permission problem with /dev/vboxdrv. Please reinstall the kernel module by executing '/etc/init.d/vboxdrv setup' as root. If it is available in your distribution, you should install the DKMS package first. This package keeps track of Linux kernel changes and recompiles the vboxdrv kernel module if necessary.'

SOLUZIONE 1

  1. Installa il dkms driver tramite il comando sudo apt-get install virtualbox-dkms

  2. Riavvia il computer

SOLUZIONE 2 --- Si ringrazia Francesco Pisani --- (NON TESTATO PERSONALMENTE)

    1. Reinstalla il linux-headers e i linux-image relativi alla tua distribuzione

      • sudo apt install linux-headers-tuaVersione

      • sudo apt install linux-image-tuaVersione

    2. sudo reboot

    3. sudo apt install linux-headers-$(uname -r)

    4. sudo apt-get install virtualbox-dkms

SOLUZIONE 3

    1. Disabilita il la voce secure boot dal bios del tuo pc

    2. Modifica la sequenza di avvio (boot sequence) impostando ubuntu (o il nome della tua distribuzione) come primo disco di avvio

SOLUZIONE 4

    1. Effettua tutti gli step delle soluzioni 1,2 e 3

    2. sudo /sbin/vboxconfig

    3. sudo apt-get remove --purge virtualbox-dkms

    4. sudo apt-get install virtualbox-dkms

    5. sudo apt-get install dkms

    6. sudo reboot

SOLUZIONE 5 - Non voglio o non posso disabilitare il secure boot

  1. Seguire la guida a questo link dallo step 1 allo step 6

  2. Provare a lanciare virtualbox e una instanza di macchina virtuale

L'errore si è ripresentato ? Esegui questi comandi

    1. sudo apt purge --auto-remove virtualbox*

    2. sudo apt install virtualbox

Non riesco a trovare la macchina virtuale importata in Virtualbox nel menù a tendina di GNS3

Probabilemnte i virtualbox drivers non sono stati correttamente caricati in GNS3. Il problema può essere dovuto alla versione di virtualbox che si sta utilizzando. Si consiglia l'uso di virtualbox 6.0 o superiore.

Nel caso in cui la versione di virtualbox fosse già tra quelle compatibili con GNS3, si consiglia di reinstallare solo virtualbox e ripetere la procedura di import della macchina virtuale

Non riesco a connettermi al server locale di GNS3

Tenere presente che, dopo avere avviato la GUI di GNS3, il server locale richiede qualche secondo in più per avviarsi. Se, dopo avere atteso anche oltre un minuto che il server sia disponibile (compare un pallino verde a fianco al nome del server nel riquadro Servers Summary), allora:

Installare (o reinstallare) il pacchetto gns3-server:

  1. sudo pip3 install gns3-server

Opzionalmente è possibile specificare anche una versione di gns3-server specifica (la versione del server DEVE essere uguale a quella di gns3-gui)

  1. sudo pip3 install gns3-server==X.X

Non riesco a creare link tra i vari nodi/host

Se state provando a replicare una topologia in gns3, ma quando provate a collegare i vari host tra di loro vi compare il seguente errore:

uBridge error : uBridge is not available or path doesn't exist

non vi preoccupate, infatti vi basterà effettuare poche semplici operazioni per risolvere il problema:

  1. sudo su

  2. chmod 755 /usr/bin/ubridge

  3. Riavvia GNS3

Ho creato il progetto ma un errore di VirtualBox non mi consente di riaprirlo

Controllare se l'errore riscontrato è simile (o uguale) al seguente:

'Virtualbox has returned an error: VBoxManage.exe: error: Trying to open a VM config 'path_project_folder\virtual_machine_id\machine_name\machine_name.vbox' which has the same UUID as an existing virtual machine VBoxManage.exe: error: Details: code E_FAIL (0x80004005), component Machine Wrap, interface IMachine, callee IUnknown VBoxManage.exe: error: Context: "Openmachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 87 of file VBoxManageMisc.cpp'

Questo errore si verifica soprattutto quando si chiude GNS3 senza avere prima fermato la simulazione del progetto e dato il tempo a GNS3 stesso di cancellare le macchine virtuali da Virtualbox.

W
orkaround 1 (Testato su Windows 10 e Virtualbox 6.1):

  1. Aprite virtualbox, dovreste notare alcune macchine in stato (reset)

  2. Chiudete Virtualbox e GNS3

  3. Dopo averne fatto una copia di riserva, editate il file virtualbox.xml

Cartella dove trovare il file se stai usando Windows: c:\Users\<TUONOMEUTENTE>\.Virtualbox\Virtualbox.xml

Cartella dove trovare il file se stai usando Linux: $HOME/.config/VirtualBox/ dove $HOME = percorso della tua cartella utente, es. /home/luke

  1. Individuate in questo file le voci corrispondenti a tali macchine nel file e cancellatele. Tali voci sono del tipo MachineEntry uuid="{07b0a897-e6b0-4e7a-8e23-4d190a2cb0ea}" src=...

  2. il path di queste VM dovrebbe puntare al vostro progetto che non si apre, ad esempio C:\Users\LocalUserName\GNS3\projects\FW-PROJ

  3. RIMUOVETE SOLO E SOLTANTO LE VM DEL PROGETTO CHE NON PARTE

  4. Salvate VirtualBox.xml e aprite il progetto in GNS3


Workaround 2 (Solo per GNS3 installato su macchina nativa Linux):

Potete provare a rimpiazzare i nodi Debian Virtualbox con nodi QEMU equivalenti, seguendo la guida che trovate qui.

Il mio progetto non si apre e ho questo strano errore:

Dynamips error when running command 'nio create_udp udp-fb6e021c-e571-4167-8566-e76e1017a021 10010 127.0.0.1 10011

Assicuratevi usando netstat o tcpview che non ci sia nessun processo che ha occupato le stesse porte menzionate nel messaggio di errore ed eventualmente terminatelo. Nel nostro esempio vengono menzionate le porte udp 10010 e 10011. GNS3 usa le porte superiori a 10000 a seconda delle esigenze.

Non riesco a creare e usare l'interfaccia tap sul mio PC Windows

  • Istruzioni qui. --- Si ringrazia Michele Bencardino



Non riesco a creare e usare l'interfaccia tap0 sul mio pc MacOS

È possibile risolvere il problema seguendo una guida scritta appositamente da un vostro collega. --- Si ringrazia Alessio Portaro


Problemi VPCS

Errori mostrati in GNS3

  • No path to a VPCS executable has been set

  • VPCS executable version must be >= 0.6.1 but not a 0.8

SOLUZIONE

  1. Scaricare l'ultima release disponibile per per le VPCS a questo link

  2. unzip vpcs-0.X.Y.zip

  3. cd vpcs-0.X.Y

  4. cd src

  5. ./mk.sh

  6. sudo cp vpcs /usr/local/bin/

  7. Riavvia GNS3 e il tuo laboratorio


Domande Generali sulla traccia del progetto

Se non specificato, qual è la politica di default di un firewall da mettere nel progetto?
DROP.


Se nel progetto le specifiche dei firewall sono ambigue, come devo regolarmi?
In caso di ambiguità, le regole successive hanno priorità e sovrascrivono in tutto o in parte le regole precedenti. Ad esempio, se si dice:
1. Le reti A4 e A2 deve poter accedere alle reti A1 e A3 2. La rete A2 deve poter accedere esclusivamente alla rete A3
Allora A4 deve poter accedere ad A1 e A3, mentre A2 deve accedere solo ad A3.


Come faccio a testare le porte aperte su una macchina virtuale?
iperf


Qual è la sintassi di uso esatta di iperf?

    • Sulla macchina server: iperf -s -p numeroporta &

    • Sulla macchina client: iperf -c numeroIpDaContattare -p numeroporta &


Esiste qualche tool alternativo a iperf?

Potete usare netcat, che di solito è già presente nelle distribuzioni debian. Uso:

    • Lato server: nc -l -p NUMEROPORTA. Mette in ascolto netcat sulla porta NUMEROPORTA.

    • Lato client: nc NOMEHOST NUMEROPORTA.

Una volta stabilita la connessione è possibile digitare del testo da console (sia sul client che sul server). Alla pressione del tasto invio la stringa digitata dovrebbe apparire sulla console dell'altro interlocutore. ATTENZIONE: La terminazione di netcat dal lato client provoca la chiusura anche dal lato server (netcat non gestisce connessioni multiple).


Non sono sicuro che il forwarding dei pacchetti sia abilitato su una certa macchina

Assicuratevi che nel file /proc/sys/net/ipv4/ip_forward, nel file system della macchina malfunzionante, compaia il valore 1.


Come si configurano le route di pc in maniera tale che siano attive allo startup di ciascuna macchina? Come faccio ad eseguire automaticamente qualsiasi comando mi serva impartire nel momento in cui si avviano le interfacce di rete?

  • Nel file system virtuale di pc modificare /etc/network/interfaces aggiungendo un certo numero di linee post-up

Esempio:

auto eth1
iface eth1 inet static
address 10.0.0.1
network 10.0.0.0
netmask 255.255.255.0
broadcast 10.0.0.255
gateway 10.0.0.254
dns-nameservers 8.8.8.8

post-up route add -net 10.0.1.0/24 dev eth1 gw 10.0.0.2

l'ultimo comando route viene eseguito non appena l'interfaccia eth1 viene messa in stato up (subito dopo il comando ifconfig eth1 up). La riga gateway 10.0.0.254 è equivalente a post-up route add default gw 10.0.0.254 dev eth1.

La direttiva post-up può essere usata per lanciare qualsiasi comando si voglia effettuare dopo l'attivazione di una certa scheda di rete, ad esempio uno script di inizializzazione del proprio firewall. Esempio: metto i comandi di avvio per iptables in uno script che chiamerò firewall.sh, e aggiungo post-up /percorso.../firewall.sh opportunamente.