Network simulation with GNS3

Sand Castles

Connecting to the Outside World

Dynamips lets you connect virtual routers to physical network interfaces, so GNS3 can also connect virtual networks to physical hosts. The procedure differs fundamentally depending on whether you are working with a GNS3 VM or with a local server installation; it is far easier with the VM.

For the GNS3 VM, you need the Internet appliance from the Appliance category of the GNS3 Marketplace. The exact name is Internet for GNS3 VM , and it comes from the GNS3 development team. If the associated template is not available from the Marketplace, you can alternatively get it online [6].

A good idea is to create your own project for this module and then import the module into GNS3 with the File | Import Appliance menu command. After selecting the import file, GNS3 presents the Add Appliance dialog, which lists important appliance-specific data, such as the category (Router), the name (Internet), the manufacturer (GNS3), and the architecture (i386).

In the following steps, you will again be accompanied by a wizard, which now wants to know whether you want to use the VM or another server type. After selecting VM , determine the image file available on the VM. You have to agree explicitly to its installation. After the installation, the Internet router is available from the toolbar in the Devices category. In the next step, drag the Internet device into the workspace. You will also need two routers, which are automatically labeled R1 and R2 by GNS3 (Figure 1). Use the Link function to establish a connection between the two routers and one between the Internet device and R1 (Figure 2).

Figure 1: The assignment of the IOS image to the first router configuration. However, the IOS image is not included with GNS3.
Figure 2: The Internet template connects the virtual with the real network.

Log into the Internet appliance at the console by entering gns3 as the username and password. You can now use ping to check the accessibility of an external system from the console. If the configuration is correct, ping can query the desired system. In principle, you can also configure the virtual routers to use an IP address from your provider's DHCP server.

Individual Adaptations

GNS3 provides various customization options. For example, you can completely dispense with the GUI for configuration and administration by editing the configuration files gns3_server.conf (macOS and Linux) or gns3_server.ini (Windows). For example, in the text-based configuration file, you can change the server's IP address and port, the paths to the images, the project files, and the console access port. You can also adjust the paths to VMware and VirtualBox.

In practice, you can work with different server and VM configurations because of the classic separation between the GNS3 client and server. The simulation environment provides the profile function for this, which you first need to activate. Open the program settings with Edit | Preferences and switch to the Miscellaneous tab. When you get there, enable the Request for Profile Settings at Application Startup option, and then restart the system. The next time you start the program, GNS3 will show you the Profile Selection dialog. In addition to the standard profile, you can create a new profile by selecting New .

The scalability of GNS3 also speaks in favor of its use. By design, GNS3 is not subject to any restrictions regarding the number of nodes that the program can execute. The limit is set solely by the hardware used. If the locally available system does not have sufficient resources, you can simply run GNS3 in a cloud. This is especially easy if you set up GNS3 on a remote server with Ubuntu 16.04 LTS. In this case, you execute the following commands as root:

# cd /tmp
# curl >
# bash --with-openvpn --with-iou --with-i386-repository

The required packages and a VPN environment are set up for secure access to the remote system. To use the remote server, you only need to configure the GNS3 client for interaction. Remote access can be set up with the Setup Wizard, where you select the option Run Everything on a Remote Server and define the IP address, access protocol, port, and user data. However, that's not all: If one server is not enough, you can also use several servers and thus distribute the load. To do this, create additional servers under Server in the Preferences dialog. When creating new router configurations, you then assign the desired remote servers to them. Another special feature lets you export your network configurations to a ZIP archive and share them with third parties.


GNS3 is an excellent program for simulating Cisco-based networks. You have access to all the important configuration options and analysis tools that are usually required. However, this strength is also its weakness. You have to provide the Cisco images yourself, because the program does not offer integrated IOS images, limiting the range of application considerably. For those who are preparing for their Cisco exams, however, GNS3 is the tool of choice.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy ADMIN Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs

Support Our Work

ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.