GNS3 short for Graphic Network Simulator-3 is a free and open-source network simulator that is used to design and build virtual networks. It enables network engineers to virtualize real hardware devices and help test and deploy real-world deployments.
GNS3 consists of two software components.
- GNS3 all-in-one graphical user interface that is installed on a local PC.
- GNS3 virtual machine either locally or via a virtualization software like VMware Workstation.
- Free and open-source with no monthly or yearly fees.
- Customized topologies and labs within GNS3 for network certification training
- No limitation on the number of devices supported.
- Supports both free and paid hypervisors.
- A large and active community of 800,000+ members.
- Supports multi-vendor environments.
This guide will show you how to install and use GNS3 on KDE Neon|Kubuntu;
- From the apt repository
- Using Pipy
- Memory 4GB
- 1GB available space, More storage is needed for OS and Device Images.
- Processor – 2 or more Logical cores – AMD-V / RVI Series or Intel VT-X / EPT – virtualization extensions present and enabled in the BIOS. More resources allow for larger simulation
Step 1. Installing GNS3 on KDE Neon / Kubuntu
Update your system packages
### Kubuntu ### sudo apt update && sudo apt upgrade -y ### KDE Neon ### sudo apt update && sudo pkcon update -y
Option 1: Install GNS3 from the Apt repository
Then add the official repository to your system
sudo add-apt-repository ppa:gns3/ppa
Update your system the install GNS3.
sudo apt update sudo apt install gns3-gui gns3-server
When prompted whether non-root users should be allowed to use ubridge, select ‘Yes’.
The same for wireshark. Press the TAB key to select the <yes> option
Add IOS on Unix (IOU) support using the following lines.
sudo dpkg --add-architecture i386 sudo apt update sudo apt install gns3-iou
To verify the installation, use
$ gns3 --version 2.2.31
Option 2: Install GNS3 from Pipy
Update your system packages and use the following command to install missing dependencies.
sudo apt install -y python3-pip python3-pyqt5 python3-pyqt5.qtsvg \ python3-pyqt5.qtwebsockets \ qemu qemu-kvm qemu-utils libvirt-clients libvirt-daemon-system virtinst \ wireshark xtightvncviewer apt-transport-https \ ca-certificates curl gnupg2 software-properties-common
When prompted to install wireshark, click Enter to continue.
Then install GNS3 from Pipy
sudo pip3 install gns3-server sudo pip3 install gns3-gui
Add the installation directory to $PATH
echo 'export PATH=$HOME/.local/bin:$PATH'|tee -a ~/.bashrc source ~/.bashrc
Check for the version
$ gns3 --version 2.2.31
Step 2. GNS3 Docker Integration
First, ensure that you have no previous docker installed by removing older versions.
sudo apt remove docker docker-engine docker.io
Then install the following packages.
sudo apt-get install apt-transport-https ca-certificates curl \ software-properties-common
Import the official GPG docker key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Add the Docker repository
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Update your system and install docker.
sudo apt update sudo apt install docker-ce
We will add users to the following groups ubridge, libvirt, kvm, wireshark, docker. You can use the following line. Replace the user_name with your actual Username.
sudo usermod -aG ubridge,libvirt,kvm,wireshark,docker user_name
Step 3. Launch GNS3 on KDE Neon / Kubuntu
To launch GNS3 from the terminal
You can also launch it from the application launcher.
A setup wizard opens. Select the option Run appliances on my local computer then click Next.
The next screen shows the local server configuration, You can alter them to suit your needs and click Next.
The next screen will be the validation of the configuration from the local server showing the successful connection.
The next screen will show the summary of the settings.
Then the workspace will open as shown below.
Step 4. Create Basic GNS3 Topology on KDE Neon / Kubuntu
Click on File>>New blank project.
Give the project a name and save. Then add Local PCs as shown below by dragging and dropping.
Then add an ethernet switch to the workspace.
Then add links as shown below. Select links then click o PC1 to see the Ethernet0 to select it. Then click on the Switch and left-click to select Ethernet0 to finish the link. Then click on PC2 to select Ethernet1 and left-click on the switch to select Ethernet1.
It appears as below.
Then click on the green play button to start the devices.
At this point, you might encounter an error, where it says the ubridge is not installed. You can do so by using the following commands
$ sudo apt install libcap-dev git build-essential $ git clone https://github.com/GNS3/ubridge.git $ cd ubridge $ make $ sudo make install
Step 5. Configure Devices to Connect
Click on the console button to connect all the devices. A terminal emulator x-term will be opened which is what I will use as default. You can use another terminal emulator by changing the console application under General preferences. If you choose a different terminal emulator, you might have to install it on your system if you do not have it.
You can install the terminal emulators by using the following command
## x-term ## sudo apt install xterm -y ## Putty ## sudo apt install putty -y
We can then try to assign IP addresses to the PCs. For PC1, we can assign ip 10.1.1.1 255.255.255.0 as shown below
Then for PC2, we will use ip 10.1.1.2 255.255.255.0.
We can then ping PC2 from PC1 to see if they are connected.
The same goes for PC2 to PC1.
Save the configurations for use later on as GNS3 does not save the configurations.
PC-1> save Saving startup configuration to startup.vpc . done PC-2> save Saving startup configuration to startup.vpc . done
This shows we have successfully configured a basic topology to which you can add more complex topologies.
From this guide, we have installed GSN3 on KDE Neon|Kubuntu systems from the apt repository and using Pipy. We have added Docker support and set up the path for the GNS3 projects. We have also created a basic GNS3 topology and configured it with IP addresses and tested ping with them to see if they are connected.
Other guides to go through: