GNS3

GNS3 code on GitHub
GNS3 installation on Ubuntu
GNS3 and nested virtualization in VirtualBox
Coomand for Windows:
VBoxManage modifyvm YourVirtualBoxName --nested-hw-virt on
GNS3 appliances

GNS3 appliance files are descriptions of virtual machines used in network simulations. The appliance files have suffixes of .gns3a and are included with the GNS3 download. You can update the files and create new ones.

GNS3 API
Use of Cisco routers in GNS3
Arista EOS in GNS3

Arista Extensible Operating System (EOS) is a fully programmable and highly modular, Linux-based network operation system, using a standard CLI and runs a single binary software image across the Arista switching family. Architected for resiliency and programmability, EOS has a unique multi-process state sharing architecture that separates state information and packet forwarding from protocol processing and application logic.

Nokia SR-Linux
  • Nokia Service Router Linux (SR Linux) is a truly open network operating system (NOS) that makes your data center switching infrastructure more scalable, more flexible and simpler to operate.
  • nokia/srlinux-container-image on GitHub
    SR Linux container image is meant to be used in learning, demo, test and CI environments. To help newcomers to get to the grips of this new Network OS we created an open documentation resource – learn.srlinux.dev which will guide you through all the steps required to successfully launch SR Linux container and create lab topologies with it.
  • Segment Routing with Nokia 7750 on GNS3
Use of switches in GNS3

One common misconception about GNS3 is that GNS3 does not support advanced switching options. While this was true in the past, GNS3 now supports options such as: Etherchannel, PVST+, RPVST+, MST, Port Security, DTP, and many others. Complimentary campus technologies such as HSRP are also supported.
Options now include: GNS3 built in switch, Cisco IOSvL2, Etherswitch module, IOU, Openvswitch and others.

Etherswitch

While an Etherswitch module does not support advanced layer 2 features, it does allow you to configure basic VLANs, Spanning Tree and other options.
Instructions on configuring a c3725 router to act as an “etherswitch router” (or “swouter”) can be found in Switching and GNS3.

When you add this Etherswitch Router to a topology in the Workspace, there is something you must be aware of. The first two FastEthernet ports (fa0/0 and fa0/1) provided by that GT96100-FE are routed ports only! This is by design, and they cannot be used as switchports. If you left the default NM-16ESW adapter installed in slot 1, the switchports will be interfaces fa1/0 and go through fa1/15.

OpenvSwitch appliance in GNS3

By leveraging GNS3 support for Docker, you can now add Open vSwitch to your GNS3 topologies. In order to do that, use this template:

https://gns3.com/marketplace/appliance/open-vswitch

Open vSwitch appliance in GNS3
Docker containers in GNS3
FROM ubuntu:latest
RUN apt update && apt install openssh-server sudo -y
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1000 test
RUN echo 'test:test' | chpasswd
RUN service ssh start
EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]
Ubuntu container in GNS3

Create ubuntu container from ubuntu-latest image and then:

  • instantiate container as a virtual PC
  • connect PC to the Internet through a NAT cloud
  • edit container network configuration so that eth0 is enabled and assigned an IP address by DHCP (comment out commands already present in default network configuration)
apt-get update
apt-get install net-tools
apt-get install iputils-ping
BIND running in a container in GNS3
IPv6 in GNS3
  • To disable IPv6 issue the commands:

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

BGP in GNS3
Quagga/FRR router in GNS3
Cisco CSR1000v router in GNS3

The Cisco Cloud Services Router (CSR) 1000v is a cloud-based router that is deployed on a virtual machine (VM) instance running on x86 server hardware. It contains selected features of the Cisco IOS-XE Operating System and it is intended for deployment in cloud data centers.

One of the main benefits of Cisco CSR 1000v is hardware independence. Once it is installed into virtual machine, it can use any x86 hardware supported by virtualization platform.

SD-WAN in GNS3
  • Cisco SD-WAN 20.3.1 setup in GNS3
  • Prior to software version 17.x, vEdges needed a CSV file made up of the chassis number and certificate serial number of the vEdges. After 17.x the vEdge serial file became a signed binary file that can only be downloaded from Viptela and only includes the vEdges for which you have purchased a license. This is the reason we start by installing the vManage, vBond and vSmart on software version 16.3.2 and later upgrade to 17.2.0 after the vEdges are added to the control plane
  • Viptela Control Plane Setup

GNS3 network automation appliance

GNS3 and network automation

Fog computing in GNS3

Other advanced uses of GNS3

SDN in GNS3

OpenStack in GNS3

GNS3 console application

KVM Service Container in CSR 1000v

Many Cisco Devices (including CSR 1000v) allow you to host your own industry-standard KVM virtual machine directly in the network.

Network Hosted Kernel Virtual Machine (KVM) – Cisco DevNet

Application Hosting in the Intelligent WAN

Router#show virtual-service 
Virtual Service Global State and Virtualization Limits:
...
Machine types supported : LXC
Machine types disabled : KVM

If nested virtualization is enabled in the hypervisor where CSR-100ov runs:

Router#show virtual-service 
Virtual Service Global State and Virtualization Limits:
...
Machine types supported : KVM, LXC


Docker containers installed in my GNS3
  • gns3/ubuntu:focal
  • gns3/webterm:latest
  • gns3/openvswitch:latest
  • ubuntu:latest
  • ajnouri/nginx   –> https://gns3.com/managing-devices-with-ansibler-c
  • rcanonico/ffmpeg:latest
  • kathara/base:latest
  • kathara/quagga:latest
  • troglobit/mcjoin:latest
  • troglobit/pimd:latest
  • emdem/modbussim
  • adosztal/network_automation:latest
Devices installed as QEMU objects in my GNS3
  • Cisco IOS XRv 6.0.1
    • iosxrv-k9-demo-6.0.1.qcow2
  • Arista vEOS 4.26.2F
    • vEOS-lab-4.26.2F.vmdk
Devices installed as Dynamips objects in my GNS3
  • C3725
    • c3725-adventerprisek9-mz124-15.image

DHCP container