These methods are not guaranteed to emulate 100% of the switching functions. However, they provide more than 90% of the switching features most network engineers need for CCNA/CCNP preparation.
There are many options:
- GNS3 routers with NM-ESW16 modules
- GNS3 with Virtual IOS Layer 2
- GNS3 with IOU L2 images
- Unified Networking Lab
First, read this post to add IOS images.
GNS3 routers with NM-ESW16 modules
A router can be equipped with a NM-ESW16 module to fulfill the functions of an EtherSwitch Module. This module provides many layer 2 switch functionnalities.
The only type of routers that supports the NM-16ESW EtherSwitch module and is also supported by GNS3 is the Cisco 3725 router.
GNS3 with Virtual IOS Layer 2
Nathan Ash has written a clear tutorial for this.
For the RAM value, choose something that’s higher than 380 MB then click Next.
One thing to mention though. Make sure to choose the right version of Qemu binary when you add the vIOS-L2 image. I have a Windows 7 64 bits and I first used the default Qemu binary and I got a Network Connection failure message. I thought it was a firewall issue at first. But I realized it was something with the Qemu binary and I changed the setting to qemu-system-x86-64w.exe
GNS3 with IOU L2 images
This technique uses a virtual IOS for Layer 2 and run it on Qemu. Then GNS3 interfaces with Qemu to manipulate the virtual IOS.
You need to have a vIOS-L2 Vmware image (vIOS-l2.vmdk) for this technique.
Here are a couple of great resources:
Download The GNS3 IOU VM.
Follow the steps in this blog.
When trying to install VirtualBox, you may encounter the error “Windows Installer Service could not be accessed..” then I recommend you check some of the workaround mentioned in this link.
One thing I’d like to cite is to check your GNS3 client version:
My current GNS3 client version is 1.3.11. Why is this important? Because the GNS3 client version must match the GNS3-server version that is on the VirtualBox VM. Otherwise, you’ll get an error like this:
=> Error while creating project: Client version 1.3.11 differs with server version 1.3.0
The solution is to upgrade the server inside the IOU VM (credit to Julien Duponchelle):
- Stop the VM in VirtualBox, either from Virtualbox or from the VM command line
- Go the virtualbox settings and change the network adapter from host only to nat
- Boot the vm
- Upgrade the GNS3 server version with the PIP command. For example, if your GNS3 client version is 1.3.11, then the GNS3-server version must also be 1.3.11, and we issue the follwing command on the VM:
pip3 install gns3-server==1.3.11
- Stop the VM
- Go the virtualbox settings and change the network adapter from nat back to host only
Files for Cisco IOU and GNS3
Files for Cisco vIOS on GNS3
- GNS3 latest version
- vIOS L2 image
Files for Unified Networking Lab
- UNL file
- VMware Workstation or VMware player
Useful links to build a switching lab