(Last Updated On: November 12, 2018)

In this article, I’ll cover the installation of the latest GNS3 on Fedora 29 /Fedora 28. GNS3 is an open source Network Emulator/Simulator used by hundreds of thousands of network engineers worldwide to emulate, configure, test and troubleshoot virtual and real networks.

GNS3 has helped in virtualizing real hardware devices and preparation for certification exams such as the Cisco CCNA, CCNP, CCIE, Juniper certifications e.t.c.

How GNS3 Project started

GNS3 started with the emulation of Cisco devices using software called Dynamips. But it has now evolved to support many devices from multiple network vendors including Cisco virtual switches, Cisco ASAs, Brocade vRouters, Cumulus Linux switches, Docker instances, HPE VSRs, multiple Linux appliances, and many others.

Features of GNS3

Below are the top features of GNS3 Network Emulation software

  • Fully free and Open Source – No monthly or yearly license fees
  • There is no limit on the number of devices supported – CPU and RAM hardware is your only limitation
  • GNS3 supports all VIRL images (IOSv, IOSvL2, IOS-XRv, CSR1000v, NX-OSv, ASAv)
  • GNS3 can run with or without hypervisors in multi-vendor environments
  • It has support for multiple switching options (ESW16 Etherswitch, IOU/IOL Layer 2 images, VIRL IOSvL2)
  • GNS3 supports both free and paid hypervisors – Virtualbox, VMware Workstation, VMware Player, ESXi, Fusion
  • GNS3 has native support for Linux without the need for need for additional virtualization software

Install GNS3 on Fedora 29 / Fedora 28

GNS3 consists of two software components:

  • The GNS3-all-in-one software (GUI)
  • The GNS3 virtual machine (VM)

You have two options to install GNS3 on Fedora 29 / Fedora 28. You can install from Fedora repositories or from source via pip3 Python package manager. This guide will cover the installation of GNS3 on Fedora 29 / Fedora 28 from dnf repositories.

For Ubuntu 18.04 / Ubuntu 16.04: How to Install GNS3 on Ubuntu 18.04 / Ubuntu 16.04

For Arch Linux, use: How to Install Latest GNS3 on Arch Linux and Manjaro

Step 1: Install Dependency packages and Wireshark

Install dependency packages required for building your GNS3 environment:

sudo dnf -y install git gcc cmake flex bison
sudo dnf -y install elfutils-libelf-devel libuuid-devel libpcap-devel
sudo dnf -y install python3-tornado python3-netifaces python3-devel python-pip python3-setuptools python3-PyQt4 python3-zmq

GNS3 uses Wireshark for packets capturing and analysis. Ensure Wireshark is installed on your Fedora 29 / Fedora 28 by running:

sudo dnf -y install wireshark

Step 2: Install GNS3 GUI and Server

Start the installation by ensuring GNS3 backend server and the frontend interface packages are installed:

sudo dnf -y install gns3-server gns3-gui

Step 3: Install Dynamips and vpcs

vpcs is a Virtual PC Simulator which allows you to simulate a PC supporting DHCP and ping when simulating Networks with GNS3.

Install it with dynamips emulator by running:

git clone https://github.com/GNS3/dynamips
cd dynamips
mkdir build
cd build
cmake ..
sudo make install

Confirm binary location:

$ which dynamips
/usr/local/bin/dynamips

Install vpcs:

wget http://sourceforge.net/projects/vpcs/files/0.8/vpcs_0.8b_Linux64/download
mv download vpcs
chmod +x vpcs
sudo cp vpcs /usr/local/bin/

Confirm vpcs version:

$ vpcs -v

Welcome to Virtual PC Simulator, version 0.8b
Dedicated to Daling.
Build time: Nov  1 2015 01:05:47
Copyright (c) 2007-2015, Paul Meng ([email protected])
All rights reserved.

VPCS is free software, distributed under the terms of the "BSD" licence.
Source code and license can be found at vpcs.sf.net.
For more information, please visit wiki.freecode.com.cn.

Step 4: Add support for KVM / QEMU (Optional)

To use KVM virtual machines inside your GNS3 Labs, you need to have KVM installed and configured in your Fedora 29 / Fedora 28 host system. Use our previous guide below for this:

How to install KVM on Fedora 29 / Fedora 28

Step 5: Setup IOU support

If you would like to allow GNS3 support for IOS on Unix (IOU), set it like below:

git clone http://github.com/ndevilla/iniparser.git
cd iniparser
make
sudo cp libiniparser.* /usr/lib/
sudo cp src/iniparser.h /usr/local/include
sudo cp src/dictionary.h /usr/local/include
cd ..
git clone https://github.com/GNS3/iouyap.git
cd iouyap
make
sudo make install

To view iouyap help page, run:

$ iouyap -h
Usage: iouyap [OPTION]... ID
       iouyap [OPTION]... DEV_OPT ID:BAY/UNIT

Options:
  -h                   print this message and exit
  -q                   suppress most output
  -v|v|v               increase output
  -d                   run in background
  -c                   do not read configuration file
  -f FILE              specify configuration file
  -n FILE              specify NETMAP file
  -V                   print version and exit

Device options:
  -e ETH_DEV           connect to Ethernet device
  -t TAP_DEV           connect to TAP device
  -u LPORT:ADDR:RPORT  create UDP tunnel
  -s LFILE:RFILE       connect via Unix domain socket

Step 6: Add Support for Docker (Optional)

By default, GNS3 allows you to use Docker containers while building network labs. But first, you need docker engine installed and running so that you can create Docker Containers. Use our official guide to Install Docker on your system:

How to install Docker on Fedora 29 / Fedora 28

Don’t forget to add your user to docker group after starting the service.

sudo usermod -a -G docker $(whoami)

Step 7: Launch GNS3 on Fedora 29 / Fedora 28

On your Desktop Environment Launcher, search for GNS3 to start initial configuration. On the first page, select “Run the topologies on my computer”

On the second page, confirm local server configuration location.

The third page should display a successful installation message

If you want to add your Virtual machines, Docker containers, vpcs or Network devices images, do it in the next step. This can also be done later after the installation.

Once configured, you should have a ready GNS3 installed on your Ubuntu 18.04 or Ubuntu 16.04 server.

That’s all. Enjoy using GNS3. If you’re preparing for exams with this tool, I wish you happy learning and success in your certification exams.