GNS3 Tutorial and how run REAL Cisco IOS on your PC

GNS3 Tutorial on how to run real Cisco routers virtualized on your PC

Share This Post

If you are a network engineer (or starting to be one), you know the importance of practice. Learning the concepts of networking is crucial, but still worthless with no practice. In your career, you will face many moments when things aren’t working the way they should. Practice with you the confidence you need to avoid that. If you have followed the Free CCNA course, you know that you can start practicing with Packet Tracer. Today, we take practice to the next level. With this GNS3 Tutorial, we will teach you how to create a virtual data center on your laptop. We will give you the tools to train for CCNP and CCIE!

So, if you can’t stand the “Command not implemented in this version of Packet Tracer” message, you are in the right place. If you want to study CCNP without buying expensive hardware, you are in the right place. Again, If you want to test a scenario before implementing it at work, GNS3 is the product for you.

Introducing GNS3

Before we start the GNS3 Tutorial, we should explain what is GNS3. GNS3 stands for Graphical Network Simulator 3, and it is exactly what the name says: a software to simulate networks. You can think of it as the big brother of the Cisco Packet Tracer. You can drag routers in a central window, connect them with cables and configure them. Just like in Packet Tracer.

So, why is GNS3 better than Packet Tracer? The reason for that lays in the core difference between the two. While Packet Tracer emulates network devices, GNS3 simulates them. In other words, Packet Tracer is software that reproduces the behavior of a router: if you type this command, you get that output and so on. Instead, GNS3 runs real Cisco IOS: it is like having a real router on your lap! You can see where this is going: with GNS3, you are going to have many more features.

Because of that, people use GNS3 to prepare for complex stuff like CCNP and CCIE labs. After this GNS3 Tutorial, you will be able to do the same.

Installing GNS3

This GNS3 Tutorial will explain to you how to install and use GNS3. We won’t explain networking commands, or how to configure the devices. We will only focus get you going with this awesome software so that you can try your own labs.

#1 – Download GNS3

GNS3 is awesome, complex software. It allows you to save a lot of money because you don’t need to purchase hardware. And, guess what, it is completely free. Many people don’t believe that in the first place, but the truth is that GNS3 is open-source. So, without wasting time, we can simply download it from their website, or click the link below.

Get this tool for your networking skills

Note that the download above is for Microsoft Windows if you have another OS (Linux, Mac) check this link instead. The download is about 60MB (exact size varies on the version). Once you finish downloading, move to the next step.

#2 – How to Install GNS3

Installing GNS3 is simple. Just run the software you downloaded as an administrator. It is just a simple Installation Wizard, so hit Next / I Agree buttons as you move through the various steps. When prompted to select the list of software to install, verify that everything is checked. If you have already installed Wireshark, you can avoid installing NPCAP, as we are doing.

GNS3 Tutorial: which components to select during installation
Be sure to select all components (unless you already have NPCAP as we do).

Then, continue with the installation. Continue hitting Next until the end, leaving all the default options. And that’s the first part. Now you have GNS3 ready to rock, but you need to configure it.

The GNS3 Tutorial: configuring GNS3

Installing GNS3 was the easy part. In fact, GNS3 is an emulator that runs real Cisco IOS software. However, it is just an emulator, which means we have to add to it the Cisco IOS software on ourselves. You might think this is a little bit weird, but it isn’t. GNS3 is a powerful tool and can host many different vendors. You can run Juniper, Arista, Mikrotik and more inside GNS3, so they don’t pack it with everything. You have to install only what you want. Don’t worry, we are going to cover that for you.

Our first time in GNS3

When you run GNS3, always do that with administrative privilege. GNS3 will spawn sub-processes, use network cards, and other things that might not work well without that privilege. So, keep this in mind. When you launch the problem, it will ask you if you want to configure a server, as in the screenshot below.

GNS3 Tutorial: server setup
Server setup.

Skip this step for now by hitting the Cancel button. After that, a new window will appear asking to provide the name for a project. With GNS3, you have to select where you want to save your work beforehand, in fact. Don’t worry, you will be able to change it later if you need to. The default name is untitled, and we will use just that to experiment a little bit.

Importing Cisco IOS in GNS3

Right now, you have a correctly functioning program that can do nothing. It is like having a blank canvas, but no paint. In fact, you can’t drag any router into the scene as GNS3 doesn’t have their IOS. You need to import that. Here’s how to do it.

Getting Cisco IOS Software

For many people out there, this is the hardest part. In fact, Cisco software is licensed, which means you can’t download it for free from the Cisco website. If you work for a company with Cisco partnership, chances are you are entitled to download such software. In other words, you need to get the software from work.

I don’t have access to Cisco official software, can I still get it for free? Anyone distributing such software is violating the agreement made with Cisco. Unfortunately, the Internet is full of people willing to violate those agreements, so you are likely to find the software just by googling it. Of course, you need to know which IOS images you are going to need.

What is an IOS image? It is simply the file containing the operating system of a Cisco device. Those files have specific names when they come out from Cisco. Below you can find a list of images that allows you to do all the routing labs you need.


What about switches?

If you look closely, you will see that all the IOS images listed above are for Cisco routers. In fact, GNS3 can’t directly run the IOS of a Cisco switch. Cisco switches leverage ASICs, hardware components designed to forward frames, that can’t be emulated in software. However, don’t worry. In an article coming soon, we will explain a way to run Cisco switches in GNS3 using a workaround. Stay tuned for that! For now, just continue with routers.

How to import Cisco IOS images in GNS3

This is the most crucial part of this GNS3 tutorial. Right now, you have somehow obtained the Cisco IOS images. At this point, you only need to import them in GNS3.

From the top menu, select Edit > Preferences, or simply hit Ctrl + Shift + P (simultaneously). A new window will open, from there select Dynamips > IOS routers. As you can see from the picture, we already have some routers, but we can add more.

Cisco IOS router templates in GNS3 Tutorial
GNS3 router templates.

From there, click New at the bottom of the window. A new wizard will open.

#1 – Select IOS image

Select New Image and click Browse to find the Cisco IOS file you downloaded previously. In this example, we are installing a Cisco 1700 router. Once you selected the image, click Next.

#2 – Name the router

After finishing the installation, the router will be on our list, ready to use. We need to give it a name that will appear on the list, and it must be unique. In other words, you can’t have two routers named 1700. By default, GNS3 will propose you to name it as the chassis (1700), but we should change the name

Instead of naming it simply like the model of the router, we should add the IOS version. This way, if we have multiple versions of the same routers, with different IOS, we will be able to select the best one faster. Have a look at the example below.

In this GNS3 tutorial, we explain how to name a Cisco IOS image when importing it in GNS3
Write the IOS version and the router name.

As you can at the very top of the window, we are installing c1700-adventerprisek9-mz.124-8. This means we are installing IOS version 12.4 for Cisco 1700 router. So, we can name the router accordingly.

#3 – RAM and Cards

Leave the suggested amount of RAM that will be dedicated to the router, and continue. At this point, you will have to select the modules. Cisco routers have pluggable slots where you can insert some ports. You can install serial ports, Ethernet ports, fiber ports, and more. In GNS3, like on real routers, you can select what to plug in these slots.

Focus on the WAN side, the WICs (WAN Interface Cards). You are the only one to know which cards you are going to need, but here’s how to recognize them. The name is always something like the one below.


N indicates the number of ports on the module, like 1, 2, or 4. Instead, the technology is represented by a symbol of one or two letters:

  • E or ENET is plain Ethernet (10Mbps)
  • FE is Fast Ethernet (100Mbps)
  • GE is Gigabit Ethernet (1Gbps)
  • T is Serial

Depending on the router model, you can add more or fewer modules to it. Our 1700, for example, supports only two WAN modules. Once you finish, click Next.

#4 – Idle PC

Now, click on Idle-PC finder. This is pretty self-explanatory, GNS3 creates a process for each router you add to the topology. If the router struggles, you don’t want your PC to struggle too. This prevents that, and it is automatic. Wait for this step to complete (it can take even a few minutes), then click Next.

And this is it! Now we have added the device to our list. Now, very important, click to Apply and then OK. Do that for all your routers.

Using GNS3 Tutorial

At this point, you can already work with GNS3. However, this GNS3 Tutorial wouldn’t be complete without a brief explanation of the user interface. Even if it is not complex, we can have a look at it.

In this GNS3 tutorial, we explain how to use the GNS3 interface
The GNS3 user interface.

Below, a quick explanation of all the parts.

  1. File options, from there you can save and load your project.
  2. Device and topology options: you can connect in the console to all devices, or show/hide the labels of the cables.
  3. Simulation options. In GNS3, devices aren’t always up and running like in Packet Tracer. You have to turn the topology on, and you can do it from here.
  4. Drawing tools: you can add some style to your topology with these tools.
  5. List of device categories you add to your topology.
  6. Connection tool that allows you to connect cables.
  7. List of devices, it will show all devices in the category you selected in point 5.
  8. Topology canvas: the place where you have to put all your devices.
  9. Logs, some cool information about what’s happening. You can even use this window to push commands to some devices, but that’s for another day.

And this is it. Now, try this yourself by adding and removing routers to the topology. Then, turn them on and configure them.


In this article, we got you going for the CCNP and CCIE. At this point, you can create awesome routing labs. But in case this isn’t enough for you, wait for the next article. We will explain how to boost your GNS3 performance to run tons of devices, and how to implement Cisco switches in GNS3.

Meanwhile, just let me know your feelings on GNS3 below in the comments!

Picture of Alessandro Maggio

Alessandro Maggio

Project manager, critical-thinker, passionate about networking & coding. I believe that time is the most precious resource we have, and that technology can help us not to waste it. I founded with the same principle: I share what I learn so that you get value from it faster than I did.
Picture of Alessandro Maggio

Alessandro Maggio

Project manager, critical-thinker, passionate about networking & coding. I believe that time is the most precious resource we have, and that technology can help us not to waste it. I founded with the same principle: I share what I learn so that you get value from it faster than I did.

Alessandro Maggio