Installing a GNS3 Server

Although GNS3 can run local on your computer and you can use VMware Workstation and have the GNS3 appliance. I found it much more stable and predictable to run GNS3 on a dedicated server. Using this type of installation, all the projects, and images are stored on the GNS3 server, so I can install the GNS3 client any computer and get access to the same projects I was working on. You can also have multiple people working on different projects that are on the same server. I find that neat for educational use or if you where helping someone with a project. In this post I’ll walk though the steps needed to set up a GNS3 server.

The first thing we need to have is an Ubuntu server 16.04.4 operating system installed, as of writing this GNS3 server only supports 16.04.x LTS, some people have had issues with using Ubuntu’s 18.04 LTS which was released in April of this year. We are about halfway through LTS cycle with 16.04 with support ending in April of 2021, still got time. ;) Once you have Ubuntu server 16.04 installed and a static IP address assigned we now need to run the GNS3 script, move to the tmp folder.

1cd /tmp
2curl https://raw.githubusercontent.com/GNS3/gns3-server/master/scripts/remote-install.sh > gns3-remote-install.sh
3bash gns3-remote-install.sh --with-openvpn --with-iou --with-i386-repository

Ubuntu Server will download and add the GNS3 PPA (Personal Package Archive) once that finishes which takes about 10 to 15 minutes, go ahead and reboot the system. After a reboot we need to download OpenVPN client for your computer and download the configuration from the GNS3 server. You’ll notice a banner upon a successful login on the GNS3 server, copy that URL and paste in your web browser to download the OpenVPN configuration file. The server will detect your external IP address, just use your statically configured internal address to connect to it if you are local. In this example the internal IP address of this GNS3 server is 192.168.127.131.

Depending how you are connecting to the GNS3 Server you might need to edit the OpenVPN configuration file. If you will be connecting from the Internet it will probably work, like if you are using a hosting provider like Packet.net, AWS or your own ISP. If you will normally be connecting from your internal network which is mostly likely the case, you need to edit the bottom of the OpenVPN file to the statically configured IP address you configured when you installed the Ubuntu operating system. In this example the GNS3 server internal IP is 192.168.127.131 so I’ll edit the file with a simple text editor.

Once that is done we should be able to connect to our GNS3 server using the OpenVPN client. When you configure a GNS3 server you must use the OpenVPN regardless if you are locally on the same network or over the internet. We are now ready to go ahead and install the GNS3 client on your computer. In this example I'm using Windows, the GNS3 client can also be used in Linux. When you download and install the GNS3 client I usually leave everything at the defaults except the SolarWinds and NCAP most of this stuff is already on the server and I let the installer do the rest.

After the installation is finished go ahead and start GNS3 the first time, you are greeted with a Setup Wizard window. We are using a GNS3 server, so everything is going to run on it. Select the Run everything on a remote server (advanced usage).

Another screen will want to know the IP address of the server to connect to, you need to use the OpenVPN IP address of 172.16.253.1. By default there is no user authentication, also before selecting next make sure you are connected to the GNS3 server with OpenVPN.

After selecting next GNS3 will verify it can connect to the server and then ask you if want to start importing appliances into GNS3.

You now have a GNS3 server ready to go, everything runs on this server, your projects, images and any snapshots all run on this server. When there are updates to GNS3 a simple sudo apt-upgrade command will update server and any GNS3 components automatically the only thing you need to do is update your GNS3 client so that the version match on both sides. Some things I noticed when using a GNS3 server is that is changes your host name when you run the GNS3 script but does not change the host file on the server so you might notice when you attempt to shut down or reboot the system, or do any sudo commands it can sometimes hang for a bit, and you get this message:

1sudo: unable to resolve host gns3vm\[/code\]

To fix that you just need to add in the gns3vm to the host file of the GNS3 server, in this example I'm using nano, and I just added the gns3vm in the host file using a different address of the in loopback space.

1sudo nano /etc/hosts
2sudo password for ryan:
3127.0.0.1 localhost
4192.168.127.131 ubuntu
5127.0.0.253 gns3vm

I also have not had any problems with security updates and just let the Ubuntu server do that automatically when you first setup the operating system, overall its been a good experience. The server I have GNS3 running has a 256GB SSD, an Intel Xeon E3-1270V5 processor with 32GB of RAM and really no complainants, that's all I got and like always I hope this information is helpful.