I’m currently doing my CCNA certification as part of my job (would have been cool if we had actually touched any form of networking equipment in Uni but alas…) and as a result I’ve been exploring alternatives to CISCOs Network Emulation tool Packet Tracer. One such service is an open source platform called GNS3. I decided to try spin up a GNS3 server that allows me to use the WebUI from any machine on my network as a first project for my lab environment. Unfortunately, the way to get there was anything but straightforward…

GNS3 Remote Server

Ubuntu 22.04 LTS Install

Installing Ubuntu Server 22.04LTS as a GEN1 HyperV VM using the AMD64 image. Selected OpenSSH Server to be included on install. Credentials are: Username: gns3admin Password: gns3admin

Install the required tools (net-tools, GNU C Compiler (gcc), Make, python setup tools)

sudo apt-get install net-tools gcc cmake python3-setuptools git

GNS3 Server Install

Installing the GNS3 server via the “Remote Server” instructions on the docs does not work as it installs a depriciated version of GNS3 Server that is not compatible with the new client (welcome to open Open Source software maintenance). Additionally, the remote server VHDs that can be downloaded on install of the GNS3 Client also install a depriciated version of the server that is not compatible with the new version of the client. Below is the how I ended up being able to install a current version GNS3 Server on my Ubuntu Server VM.

Dependencies

To install uBridge git clone the uBridge git repo. From the uBridge directory run the following commands:

# Installing Dependencies
sudo apt-get install libpcap-dev

make -f Makefile
sudo make install

To install dynamips git clone the dynamips git repo. From the dynamips directory run the following commands:

# Installing Dependencies
sudo apt-get install libelf-dev

mkdir build
cd build
cmake ..
make -f Makefile
sudo make install

To install Virtual PC Simulator (VPCS) git clone the VPCS git repo. From the VPCS directory run the following commands:

# Installing Dependencies
sudo apt-get install qemu-kvm libvirt-dev mtools

cd src
./mk.sh
sudo ln -s /home/gns3admin/vpcs/src/vpcs /usr/bin/vpcs

GNS3Server

To install the GNS3 server git clone the GNS3 git repo. From the gns3server directory run the following commands:

sudo python3 setup.py install
# Once the server is installed, create a config file
cd ~/.config/GNS3/2.2/
cp ~/gns3server/conf/gns3_server.conf gns3_server.conf
nano gns3_server.conf

# Change the host IP to the current IP of the host then hit CTRL + X, Y, then Enter

# Use the following command to test the server
gns3server

# Open a web browser on the same network, and connect to the IP on port 3080.
# If this does not work/there is red on the server CLI, check your config/install

As an additional tool, there is a Youtube guide by Thomas Tucker that explains an install on a Debian system (this method installs a depriciated version of GNS3Server), but helps with adding firmware to the server once installed if you are lost. It’s also worth noting that from this install, the WebGui is enabled by default and accesible via the server IP on port 3080. WebGui is not available prior to version 2.2 of GNS3.

TODO Figure out where to find free appliances I can use to actually start creating networks with CISCO or other networking devices. Do I need licenses?