In 2014, the GNS3 development team launched a successful Kickstarter crowdfunding campaign to support development of a major new release, version 1.0, which was released in October that same year. I was happy to support the Kickstarter campaign and now I am finally getting around to taking a look at the new version of GNS3.
The last time I used the GNS3 network simulator, it was at version 0.8.7. After producing version GNS3 1.0, the GNS3 development team has been updating it frequently. GNS3 is now at version 1.3.7.
In this post, I will look at the new version 1.3.7 of GNS3 and evaluate how it works with emulated routers and hosts running open-source software.
What’s new in GNS3 1.x
Below, I describe the new GNS3 1.x features in two sections. The first section summarizes new GNS3 features that are relevant to all users of GNS3, including those who will use GNS3 to emulate networks consisting of routers and hosts running open-source software. The second section summarizes new features relevant only those who are running commercial router images in GNS3.
New features relevant to open-source routers
The following list summarizes new features in GNS3 1.x that improve the experience of working with open-source router and host software in GNS3 1.x, and are also applicable to all users of GNS3 1.x.
- GNS3 1.x is supported by a new web site, gns3.com.
- GNS3 1.x has updated graphical user interface styles.
- GNS3 1.x now same configures all the types of virtual machines used in GNS3 in the GNS3 Preferences function: Dynamips (IOS), IOU, QEMU and VirtualBox.
- GNS3 1.x now consists of two separate components: a GNS3 GUI and a GNS3 server.
- GNS3 1.x adds VirtualBox linked clone support, which allows more efficient disk usage when using open-source routers running in virtual machines created by VirtualBox.
- GNS3 1.x offers improved support for QEMU virtual machines.
- GNS3 1.x users can now configure simulated PCs from within the GNS3 GUI.
New features for proprietary routers
The following list summarizes new features in GNS3 1.x that improve the experience of working with commercial router and switch software in GNS3 1.x. We do not discuss these features in this post.
- Ethernet switching support improvements for Cisco switching technology.
- An Etherswitch router may now be any router type that supports the NM-16ESW module.
- GNS3 1.x now supports Cisco IOS on Unix (Cisco IOU) machines.
- Instead of a single device template per OS image, GNS3 1.x now supports multiple device templates per OS Image.
- GNS3 1.x will now import and export config files in a contextual device menu.
- GNS3 1.x now automatically exports IOS configs when a project closes.
Install GNS3 on Ubuntu Linux
I covered the new procedures for installing GNS3 1.x in another post. The GNS3 1.x development team has not yet created an installation package for GNS3 1.x so we need to install the prerequisite software and compile the GNS3 source code. Follow the detailed steps provided in my blog post, or in the GNS3 install documentation.
New GNS3 web site
The new GNS3 web site offers resources and forums for GNS3 users. The old GNS3 web site, www.gns3.net, now just points to the new web site.
GNS3 Software and GNS3 Appliances may be downloaded from the new GNS3 web site.
How to get appliances
Appliances are located in the Download section of the GNS3 web site. Go to the bottom of the Download page and click on the relevant link listed under the heading, Appliances.
Open-source router and host appliances are available as either QEMU appliances or VirtualBox appliances.
Updated graphical user interface
The GNS3 1.x gaphical user interface is still mostly the same as in GNS3 0.8.7. All the same tools and panels are there. But the graphical design of the icons and color schemes have changed. Also, the annoying “GNS3 Jungle” panel has been added.
Styles
GNS3 1.3 supports three styles for the GNS3 GUI. The default style is “Charcoal”, which is a dark theme with “Flat”-style icons. The “Classic” theme uses the same flat icons but is a lighter style. The “Legacy” style replicates the look and feel of the GNS3 0.8 GUI.
To change GUI styles, use the menu command: Edit → Preferences. Select style from the Style selector box. I chose the “Classic” style.
GNS3 Jungle panel
The new GNS3 1.3 GUI includes a panel that displays news from the GNS3 Jungle web forum. It also seems to display adds. The “GNS3 Jungle” panel cannot be closed. This is very annoying.
To reduce this annoyance, you can move the GNS3 Jungle panel out of the main GUI window as a separate window. Click on the panel and drag it away from the GUI to a corner of your computer screen where hopefully you can ignore it.
Docks
The other panels in the GUI, other than the topology window, are called docks. You can hide docks by click on the “X” icon in the upper right-had corner of each dock panel. You can restore them from the menu command: View → Docks.
You can also drag the dock panels on top of one another so they will appear as one tabbed panel, as seen below.
GNS3 server support
GNS3 1.3 comes with two packages, the Server and the GUI. By default, they would both be installed in the same computer. The GNS3 1.x server manages emulators such as Dynamips, VirtualBox or Qemu/KVM. The GNS3 1.x GUI controls the server.
While the default configuration is to run both components on the same system, the Server and GUI may instead be installed on different computers. Once the GNS3 Server is started on its computer, start the GNS3 GUI on the other computer and enter in the network address and TCP port of the server in the GUI client appropriate preferences page. Then the GNS3 GUI controls the GNS3 Server to which it is connected. While it was possible to run hypervisors on a remote server in GNS3 0.8, this his new GNS3 1.x feature simplifies the procedure.
Using a remote server may be required for complex network emulations that require a powerful computer, or if one is running GNS3 in a cloud compute environment while managing it from a local PC.
VirtualBox linked clones
A VirtualBox linked clone creates a duplicate VM with a disk image that is linked to a parent disk image of the source VM, but only stores the differences in data compared to the source disk image. This save disk space on the host computer. Cloned disk images use copy-on-write technology to store the differences between disk images and link to the source disk image.
In GNS3 1.3, the user no longer needs to create all the virtual machines ahead of time in VirtualBox and in GNS3. This makes using VirtualBox VMs in GNS3 much easier. He or she can just create a base VM in VirtualBox and then configure it in GNS3’s VirtualBox Preferences. After that, each time the user drags the VM into the GNS3 topology window, it automatically creates a Linked Clone of the VM.
Using VirtualBox linked clones in GNS3 1.3
Linked clones work as follows. We may create one or more base VMs in VirtualBox. In this case, we created a router VM named “Quagga” and a host VM named “Linux-host” using the Core Linux appliances available on the GNS3 VirtualBox Appliances web page.
Then we set up the new base VMs in GNS3 and check a box enabling linked clone support. These VMs form the “starting point” for the linked clones.
Now when we drag a router “Quagga” or a host “Linux-host” into the GNS3 topology panel, GNS3 creates a linked clone based on the base VM and appends a number to the name so it is uniquely identifiable.
When the project is saved, changes to each VM’s linked filesystem are saved to a file in the project directory and, when the project is loaded again, each linked clones is created again in VirtualBox and each VM’s filesystem will have the updates saved from the previous session.
In a future post, I will cover more details about using VirtualBox VMs as open-source router nodes in GNS3.
VirtualBox preferences
GNS3 1.3 changes the way it supports VirtualBox virtual machines. The Preferences panel for VirtualBox now looks different, with a separate section for the VirtualBox VMs managed by GNS3.
Improvements to QEMU support in GNS3
GNS3 1.3 now supports up to 32 network interfaces on a QEMU VM, an increase from the 8 network interfaces supported in GNS3 0.8.7.
Also, QEMU VMs may now be suspended and resumed.
Unfortunately, it is still not possible to capture traffic from an interface on a QEMU virtual machine. And, QEMU virtual machines still run slowly, except when the host operating system and the guest operating system are both Linux and are both using the same architecture (for example, AMD64).
In a future post, I will cover more details about using QEMU VMs as open-source router nodes in GNS3.
QEMU Preferences
GNS3 1.x changes the QEMU Preferences panel in the same way as the VirtualBox Preferences panel — as mentioned above — was changed.
VPCS Integration
GNS3 1.x now treats VPCS simulated PCs as devices just like VirtualBox and QEMU VMs, or Cisco and Juniper routers. It is a lot easier to use VPCS simulated PCs on GNS3 1.x, compared to GNS3 0.8.7.
VPCS PCs are shown in the Devices dock and can now be dragged to the topology window where they appear as individual PCs. A VPCS Multihost feature is available from the Tools menu, which runs the same way as VPCS used to work in GNS3 0.8.7.
VPCS simulated PCs may be started and stopped like other devices. You can open a VPCS PC console by double-clicking on the PC in the topology window. VPCS support is configurable in the GNS3 Preferences dialogue boxes.
Conclusion
GNS3 1.3.7 offers many new features. Most of the new functionality benefits users who wish to emulate networks consisting of commercial, proprietary routers and — to some extent — switches. However, some new features are applicable by all GNS3 users, including those who are using only open-source routers in their network simulation projects.