The Keyboardbanger GNS3 Tutorial

Down below you have a complete list of my GNS3 ramblings during my CCNP Routing and Switching journey.

Contents hide

Useful Links to set up Cisco Switching Labs with GNS3

This lab will allow me to do most of the Cisco switching games of BCMSN exam. For example, I can enter the vlan database mode to configure VLANs. It’s a deprecated feature but we need to know it, for the exam and for any situation that may imply legacy cisco switches.

Actually, I still don’t know which switching features aren’t supported in this “special” lab. But I’ll figure it out along the road. And I’ll keep you informed.
This is what I have:

  • latest GNS3 version
  • latest VPCS version
  • Cisco c3725-adventerprisek9-mz.124-15.xx.bin, with xx>= T5 (don’t ask me where I got it; Google is your best friend)
  • Windows XP as a Vmware box

Here’s the final result:

I checked actual Cisco CCNP labs for sale. Here’s one I found on

It’s 2,434$ only. two times my salary.

Isn’t that beautiful? I have a mobile switching lab that costed me absolutely no penny. I can bring my laptop with me anywhere and still mess with my toys. Cool. Thanks to the GNS3 and VPCS teams!

How to build a home Cisco switching lab with GNS3 and Ubuntu

I already, in an old post, gave some useful links on how to build a GNS3 Cisco switching lab. But for people that messed a lot with GNS3, I give them my experience:
  • Use latest GNS3 version on Ubuntu
  • Use Cisco 3725 IOS because it allows many switching features with NM-ESW16
  • Use Cisco 3725 router with NM-ESW16 installed as a module
  • You can add a Multilayer Switch symbol that represents a Cisco 3725 router with NM-ESW16 module. it looks nice :)
  • Use the same big topology to practice individual features, and to do labs
  • Take notes during labs
  • GNS3: “save” button doesn’t work, so
    • prepare your configs on a seperate document “e.g.: commands.txt”
    • copy/paste configs into the console window

After finishing the lab, and before closing GNS3, do export /all {destination_directory}
when reopening GNS3, do import /all {destination_directory}

  • to emulate a PC:
    • use Cisco 1700 routers
    • deactivate ip routing
    • configure an appropriate default-gateway

How to Use Virtual PC Simulator in GNS3

One or more PCs are needed to test some features, like VLANs, HSRP,… To make this possible with GNS3, I use what is called Virtual PC Simulator, or VPCS.

Download Virtual PC Simulator

  • You can download Virtual PC Simulator for free on the following URL:
  • Click on the green download button to begin the download:

Virtual-PC-Simulator-gns3-download _ keyboardbanger

Download Virtual PC Simulator for Linux, MAC and FreeBSD

In the previous paragraph, the downloaded file was for Windows machines. That’s the default download file. If you have another OS such as Linux or MAC, then instead of clicking on Download, click on Browse All Files

Virtual-PC-Simulator-gns3-download _ keyboardbanger2

  • You will be presented with a list of numbered folders. These correspond to the versions of Virtual PC Simulator. By the time I’m updating this post, the latest version is 0.6. So click on the 0.6 folder

Virtual-PC-Simulator-gns3-download _ keyboardbanger3

  • In this folder, you will find a Virtual PC Simulator file for each known OS platform:

Virtual-PC-Simulator-gns3-download _ keyboardbanger4

Download Cygwin file

  • After you’ve downloaded the main VPCS file, you need to download the cygwin file, or VPCS won’t be able to run. In fact, you will get a similar error if you try to run it (I have a French keyboard)

Virtual-PC-Simulator-gns3-download _ keyboardbanger5

  • To solve it:
    • first download the cygwin1.dll file under the 0.6 folder:


  • Create a folder under the root directory and name it vpcs. The root directory on Windows machines is “C:”
  • Put both cygwin1.dll and vpcsxxx.exe files under this folder:

Virtual-PC-Simulator-gns3-download _ keyboardbanger6

Setup Virtual PC Simulator

  • Double click the vpcs_0.6_Win32.exe file. A Windows shell pops up. From there, you have one virtual PC by default named VPCS[1]. Type the question mark “?” to see a list of VPCS supported command:


  • You may ask “how can I start a couple of virtual PCs when VPCS starts up?”. The answer is to use a special configuration file called “startup.vpc”. The startup file contains a configuration script that runs at VPCS launch. It must be put in the same folder as the vpcs program like this:


A sample content of the “startup.vpc” file is shown below:

Virtual-PC-Simulator-gns3-download _ keyboardbanger7With this startup file, Virtual PC Simulator will run with two PCs configured with IP addresses of and, and have the following gateway IP addresses: and

Test Virtual PC Simulator in a simple GNS3 topology

I’m going to draw a simple LAN topology with GNS3 and try to ping from one host to another.

The configuration of the switch is the following:

I now change the IP addresses of both PCs. Make sure they’re on the same subnet ( or why on Earth are you pursuing CCNP?)
Let’s launch VPCS once again:
In the older versions of GNS3, we need to add a PC symbol within GNS3 symbol library. Go to Symbol Manager and add a Computer. Make sure its type is “Cloud”:
Drag two PCs into the topology.
We need to communicate GNS3 with VPCS. This is done through ports. If you do a show on VPCS console, you’ll see all configured PCs and their ports. Look for the last two columns:
These two columns are important when we’ll connect the PC in VPCS to the switch in GNS3.
We already dragged two PCs into the topology, right? Now let’s configure them. Let’s begin with the first PC, named C1 for example.
Double-click on it, go to NIO UDP. In Local Port, type the RRPORT value of that PC. And in Remote Port, type the LPORT value for that same PC (look into VPCS console).
In our case, for C1, the value of RRPORT is 30001, so Local Port will be 30001. The value of LPORT is 20001 so Remote Port will be 20001. got it?
Remote host is

Now, a ping from PC 1 to PC2 will succeed:

Router on a Stick configuration with GNS3 and VPCS

The Router on a Stick concept was introduced to me in my CCNA studies. This section demonstrates a quick example in GNS3 to understand the concept.

The purpose of the Router on a Stick is to use a router with a single physical interface and segment it into as many sub-interfaces as there are VLANs.

Suppose you have a switch with two vlans configured on it. Vlan A  and Vlan B. In each vlan you have a host. Let’s say host A and host B. In order for host A to talk to host B, you need a L3 device right? The simplest form is to have a router, with two physical interfaces: one in vlan A and the other in vlan B. But, what if we run out of physical interfaces on the router? Your boss tells you that you have to route between vlans and you have only one physical interface to do it. Here comes the stick! What you need to do is configure two subinterfaces on the router. Each subinterface will be tagged with either vlan A or vlan B (depending on your choice). So now, it’s as if you have a router with two interfaces, except that here they are logical and not physical.

Topology Router on a Stick sample topology

On my home lab, the router on which I configured the “Router on a Stick” feature is the “Gateway” router. The goal is to make PC1 (Payroll) communicate with PC2 (Engineering) through the “Gateway” router. Lab topology:


Here are our hosts, configured in two different VLANs. PC 1 has the IP address of and PC2 has the IP address of

gns3 router on a stick vpcs configuration

A quick tracert from PC1 shows the inter-VLAN communication, thanks to the beautiful Router on a Stick.

gns3 vpcs-trace-test

How to Export and Import Configurations with GNS3 on Linux

I decided to stick with my home GNS3 lab on Linux, not Windows for the moment. That’s because Windows suffocates when I turn on 8 routers. Linux doesn’t.
But, with Linux, I couldn’t save my configurations on GNS3.
After searching on Internet, I decided to find my way out of this issue by myself. So I thought about “save”, “export” and “import” commands on the Dynagen console.
Here it is:

  1. you create a new project ( or open an existing one)
  2. you do the lab
  3. since the “save” button does not work for me, you do export /all {destination} where destination is the directory where you want to put your config files. For example: export /all /home/kbb/Desktop/homelabcfg

Nevermind about clicking on “save” on the menu bar of GNS3, mine doesn’t work :)
If you close and reopen GNS3 and want to have your router configurations uploaded, you just type on the Dynagen console the following:
import /all {destination}
in my case: import /all /home/kbb/Desktop/homelabcfg
What if you have only one router config file and you do import /all ? what happens?
Dynagen simply displays some warning that it couldn’t load the other router configs !
now, each time I switch on my home lab, I import all previous configurations manually.
It’s true it’s less convinient than clicking on “save” but I must do with that.

GNS3 home lab on Windows

I recently upgraded my Ubuntu box from Gutsy to Hardy. However, I have encountered problems while viewing .mov video files.
After a lot of effort, I decided to switch back to GNS3 on Windows, so I can view tutorials and in the same time have access to a lab.
Tonight I successfully run a 9 routers lab simultaneously without losing the connection to Dynamips.
Here are my routers and their Putty sessions:

Here’s when I stopped the equipement:

By the way, GNS3 on Windows sucks! it crashes a lot of times. I recommend to go on Linux because it’s much more stable.

Calculating GNS3 idle PC value

No matter how much processing power you’ve got, there will always be some processor cycles going on even if your routers are just sitting there for you to tape some CLI stuff.

First thing, before starting your full lab, make sure that the Idle PC Value for each type of router is well calculated.
For example, I added some 1710s as PCs for my lab:
1. all lab should be shut down, except one 1710 routeur.
2. start it
3. log to console, wait until it loads completely and enter privilieged mode
4. check your processor consumption. In Windows, it’s with Task Manager. With Ubuntu (my favourite), with System Monitor -> Resources:

5. now, recalculate the Idle PC value on GNS3

6. choose the value in front of which there’s an asterisk (*)

7.repeat these steps until you get low processor consumption:

GNS3 Waiting For http // Error In Windows

In my GNS3 lab work, I often experience issues closing the program. It’s even annoying and sometimes a pain in the ass,

I’ve searched on the Internet for a while. I even thought about switching my whole lab to Linux. This won’t be a good idea for my CIPTV1 studies, because I have IP Blue and X-Lite softphones that only run on Windows. Besides, I have a couple of Virtualbox virtual machines that I’ve built delicately and whose transition to Linux won’t be easy.

gns3-waiting-for-http- 11_47_31

I pinged the localhost IP address to see if I really can reach it:

gns3-waiting-for-http- 11_24_35

Apparently, I was wrongly accusing GNS3. It seems there is a issue connecting to the I remember from my past college days that network connectivity to must be established to confirm that TCP/IP is correctly installed on the computer. So there must be something with the firewall.

I’m using Comodo Free firewall. Although you may think it’s not that good because it’s free, I find it great and easy to use.

I disabled Comodo firewall:

gns3-waiting-for-http- 11_53_14

And I pinged once again:

gns3-waiting-for-http- 11_37_30

Now it works. I now confirm it’s a firewall issue. But I don’t want to disable my firewall altogether. I must create a security rule that allows IP traffic to In Comodo firewall, you create a network zone and allow traffic to it.
Here’s how to do it in the GUI of Comodo firewall:

Defining the network zone for

Go to the main menu and click on Firewall

gns3-waiting-for-http- 11_56_23

Go to Network Zones

gns3-waiting-for-http- 11_56_57

In the network zone area, click on the bottom arrow:

gns3-waiting-for-http- 11_58_32

then click on Add

gns3-waiting-for-http- 11_58_36

Click on New Network Zone

gns3-waaiting-for-http- 11_59_58

Type the network zone name. I named it loopback Zone. Click OK

gns3-waiting-for-http- 12_00_45

In the menu, select the loopback Zone network zone and click Add –> New Address

gns3-waiting-for-http- 12_03_30

Select IPv4 Single Address and define the local loopback address

gns3-waiting-for-http- 12_04_50

click OK to commit the changes.

gns3-waiting-for-http- 12_05_23

Defining the global rule that allows traffic to

Go to Firewall –> Global Rules

gns3-waiting-for-http- 12_07_49

click on the bottom arrow then Add

gns3-waiting-for-http- 12_08_26

Allow IP traffic, inbound and outbound. Name the firewall rule by giving it a description. And define the Source Address as “Any Address”:

gns3-waiting-for-http- 12_09_13

In the “Destination Address” field, set the Type to Network Zone, and the zone to Loopback Zone:

gns3-waiting-for-http- 12_09_21

In the IP Details field, set the IP Protocol to Any:

gns3-waiting-for-http- 12_09_32

Click OK

gns3-waiting-for-http- 12_09_41

Click OK to commit changes.

Switch the firewall back on.

gns3-waiting-for-http- 12_13_33

If you did a continuous ping earlier and the ping did not fail after you commit the firewall changes, it means you established connectivity to successfully through the firewall.

gns3-waiting-for-http- 12_14_28

Testing the result by opening and closing GNS3

After all the customization made to your firewall, open your GNS3 file and close multiple times. Normally you will no longer encounter the “waiting for” error any more. And my computer no longer freezes when I close GNS3.

Another trick that can reduce your CPU utilization is by changing your hubs with a layer 3 switch. The trick works if you connected more than one device on a single hub.

Setting GNS3 Project Directory

When you use GNS3 and want to create a new project, the software asks you to choose a project directory. Sometimes, the path is not really what you wanted to project to be stored to. So here is the solution:

I’m going to set my default GNS3 project directory to the following: “Z:\GNS3 projects”

  • In GNS3, go to Edit –> Preferences…


  • click on the General tab at your upper left side
  • Under Projects Directory, type the desired path in the text field. In my case, I type “Z:\GNS3 projects” (without the double quotes of course)


  • Click Apply when finished.

Next time you launch a new GNS3 project and type a project name, it will be stored in your favourite project directory.


GNS3 Project Files

In the past, I had encountered some hard drive issues that led me to transfer my GNS3 project files to a thumbdrive. At first, I did not know what to copy and what to leave. Then I took a look at the project folder itself and counted the files one by one (like a mummy duck counts her baby ducks) so not to lose any of them.

As an example, let’s explore the project named “kbb lab1”.


When we explore the folder, we will find the following files:

  • Configs: this is where your device configurations reside
  • qemu-flash-drives: this one gets saved with each project you make, even if you don’t use Qemu-based images
  • topology: this file has the “.net” extension. It lays out the network topology in a dynagen language.
  • topology(.PNG): this is new. In the older GNS3 versions, I used to make a screenshots of my topologies. Now GNS3 automatically generates one for me. Cool.

That’s all. You have two folders and two files. Each time you want to move your GNS3 project, make sure you have all these files.

Erasing router configuration from a project

There are some decent .net files that we download from the Internet. This is my case. I downloaded a .net file to use it to review TSHOOT exam.
However, I have to build the configurations from scratch. So I need to erase them from the project.
1/ backup your configurations that sit under working directory
2/ delete the cfg file from the working directory
3/ start the device in GNS3.

Adding IOS Images in GNS3

This section describes the step-by-step process to configure GN3 IOS images on a Windows machine.

It is assumed that you have the latest GNS3 software and a couple of IOS images for Cisco routers.

A list of IOS images and the amount of needed RAM is given in the table below. Note that these RAM values are the minimum values that worked with my GNS3 installation.

IOS image Platform Model Default RAM
C1700-K9.BIN c1700 1710 64MiB
C2600-AD.BIN c2600 2621 64MiB
C3600-JK.BIN c3600 3660 128MiB
C3700-AD.BIN c3725 3725 128MiB
C7200-AD.BIN c7200 7200 256MiB

Add an IOS Image to GNS3

In the following steps, we will add a Cisco 7200 IOS image to GNS3 and configure it.

  • In the GNS3 menu bar, go to Edit
  • Under the Edit menu, click on IOS Images and Hypervisorsadding-ios-images-to-gns3-1
  • In Preferences, under Dynamips–> IOS routers, click on new:adding-ios-images-to-gns3-2


  • Browse to the folder which contains the desired IOS image. Select the desired IOS image and click the Open button (pardon my French keyboard)adding-ios-images-to-gns3-4
  • Click Yes to copy the IOS image to the default images directory:
  • After you hit the save button, click Next. Then you’ll be taken to the menu for defining the name and the plateform of the IOSadding-ios-images-to-gns3-6
  • Choose adequate amount of RAM for the router:

adding-IOS-images-to-GNS3-2015-11-08 19_06_58

  • Continue with the steps until you finish creating an image.

Repeat the same steps for every IOS image you want to have in GNS3.

GNS3 High CPU Usage And Hubs

A couple of weeks ago I have been experiencing high CPU usage in my GNS3 home lab. After some trial and error, I localized the issue and discovered that the cloud device connection is the cause.

My old topology

I have a cloud device connected to a hub. The hub connects to the HQ router and the Unified Border Element. At some points in time, I hear the laptop fan working hard. This was not like that before adding the Unified Border Element. I think if you add more than two devices to a hub, your CPU will suffer.

So my old trick for this high CPU usage was to disconnect and re-connect the cloud device to the hub. However, one time out of three I get the gns3 waiting for error. And my GNS3 setup crashes.

My new topology

I was thinking of getting rid of hubs. I tried a switch. But it did not establish connectivity between connected devices despite they were on the same vlan (GNS3 bug?)

Then I thought about putting a multilayer switch and doing the right routing configuration to make things work. So I had to segment the network into three subnets and route between them.

It did the job.

gns3-high-cpu-utilization-hub---2016-06-17 08_51_12

Not Enough Space On Flash To Store Vlan Database

You have installed GNS3, added a couple of IOS images and built a simple routing topology that includes a Cisco 3725 with an EtherSwitch NM-16ESW module. You start the router. You think about creating a vlan, and surprisingly see the following error:


I had this issue on my GNS3 home lab. I first tried to erase Flash but that showed an error message too:


Second, I changed the NVRAM size in the device configuration menu. This did not solve th eprobme either.


The solution is to change the PCMCIA Disk 0 size:



You see that it is initially set to 0 MB. So I change it to 1 MB:


Then I boot the router. It is now able to add vlans to its database:


Producing a Frame-Relay Topology in GNS3

You can reproduce this topology -and its configuration- for your CCNP Routing&Switching or CCNP Collaboration studies on GNS3.

A lot of CCNP’s like me remember this famous topology from the old BSCI exam. In the new CCNP Routing&Switching syllabus, frame relay has been wiped out.

Frame Relay Topology Example

We’re going to use this topology:

frame-relay-gns3--2016-01-04 06_23_10

And the logical topology in terms of frame relay DLCI circuits is the following:

frame-relay-gns3--2016-01-04 06_27_11

 PSTN router has three DLCIs:

  • DLCI 401 with HQ router
  • DLCI 402 with BR1 router
  • DLCI 403 with BR2 router

The other routers connect to the frame relay networks as follows:

  • HQ router has DLCI 101
  • BR1 router has DLCI 102
  • BR2 router has DLCI 103

In this topology:

  • Traffic from any router goes through PSTN router before it reaches its final destination. It’s a hub-and-spoke topology; PSTN router is the hub, the remaining routers are the spokes.

IOU Unsupported Features in GNS3

Here is a list of Cisco IOU unsupported features that you probably won’t find, when labbing using Eve-NG or GNS3. The missing features were found with i86bi-linux-l2-adventerprise-15.1b.bin image. But the same observations could be true for other versions too.

My home lab IOU version is i86bi-linux-l2-adventerprise-15.1b.bin.

Policy-based routing with IP SLA tracking based on ICMP Echo

We can configure the Cisco IOS PBR -aka Policy-Based-Routing- with a special set ip next-hop value.

When we want to incorporate the tracking object within the Cisco IOS PBR, the track object can track an IP SLA operation.

When you track an IP SLA ICMP Echo on a Cisco IOU image switch, you get nothing. This is unsupported. Here is an example of an ICMP Echo IP SLA:

 DLS-1#sh ip sla configuration 5
 IP SLAs Infrastructure Engine-III 
 Entry number: 5
 Owner: Tag: Operation timeout (milliseconds): 5000
 Type of operation to perform: icmp-echo 
 Target address/Source address: 
 Type Of Service parameter: 0x0 
 Request size (ARR data portion): 28
 Data pattern: 0xABCDABCD Verify data: No 

I have invoked this IP SLA in a route map. A show route-map shows that the track object is down.

DLS-1#sh route-map RmapPBR
route-map RmapPBR, permit, sequence 10 
Match clauses: 
ip address (access-lists): PBRacl1 
Set clauses: 
ip next-hop verify-availability 1 track 55 [down] 
Policy routing matches: 0 packets, 0 bytes 

But the reality is that the track object is not getting any feedback from the ICMP Echo IP SLA. Even a show track gives no useful information about the state or the reachability of the IP SLA operation:

 DLS-1#sh track 55 Track 55
 IP SLA 5 state 
 State is Down 
 1 change, last change 00:12:58 
 Latest operation return code: Unknown 
 Tracked by: 
  Route Map 0 

However, tracking IP SLA ICMP Echo with a simple host, such as VPCS, works:

 DLS-1>sh ip sla summ
 IPSLAs Latest Operation Summary 
 Codes: * active, ^ inactive, ~ pending 
 ID   Type    Destination Stats     Return     Last 
                           (ms)      Code       Run 
*2     icmp-echo RTT=6 OK 49 seconds
ag !!! is the IP address of a VPCS host. 

So what is the solution? use object tracking with UDP Echo IP SLA, not ICMP Echo.

DLS-1>sh ip sla summ
IPSLAs Latest Operation Summary
Codes: * active, ^ inactive, ~ pending

ID           Type        Destination       Stats       Return      Last
                                           (ms)        Code        Run
*2           icmp-echo    RTT=6       OK          49 seconds ag

*3           udp-echo       RTT=33      OK          9 seconds ago  !!!! is the IP address of a SVI on a switch running Cisco IOU


LLDP is not supported in Cisco IOU i86bi-linux-l2-ipbasek9-15.1e:

MLS(config)#lldp run
% Invalid input detected at '^' marker.


And it is indeed supported in Cisco IOU i86bi-linux-l3-adventerprisek9-15.2:

Router(config)#lldp run

and in Cisco virtual IOS vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2:

DLS-2(config)#lldp ?
  holdtime    Specify the holdtime (in sec) to be sent in packets
  reinit      Delay (in sec) for LLDP initialization on any interface
  run         Enable LLDP
  timer       Specify the rate at which LLDP packets are sent (in sec)
  tlv-select  Selection of LLDP TLVs to send

LLDP on etherchannel interfaces

Cisco IOU vios_l2-ADVENTERPRISEK9-M), Experimental Version 15.2 does not support LLDP over Etherchannel ports.
Although we can see an exchange of LLDP packets, no LLDP neighbors are discovered on the ALS-2 switch:

Sep 26 10:52:38.661: LLDP advertisement packet TX'd on intf GigabitEthernet1/2
Sep 26 10:52:39.114: LLDP advertisement packet TX'd on intf GigabitEthernet0/0
Sep 26 10:52:39.297: LLDP advertisement packet TX'd on intf GigabitEthernet0/1
Sep 26 10:52:49.120: LLDP advertisement packet RX'd on intf Port-channel2
Sep 26 10:52:49.425: LLDP advertisement packet RX'd on intf Port-channel2
Sep 26 10:53:03.736: LLDP advertisement packet TX'd on intf GigabitEthernet0/2
Sep 26 10:53:06.688: LLDP advertisement packet TX'd on intf GigabitEthernet0/3
Sep 26 10:53:08.535: LLDP advertisement packet TX'd on intf GigabitEthernet1/2
Sep 26 10:53:08.979: LLDP advertisement packet TX'd on intf GigabitEthernet0/0
Sep 26 10:53:09.087: LLDP advertisement packet TX'd on intf GigabitEthernet0/1
Sep 26 10:53:18.853: LLDP advertisement packet RX'd on intf Port-channel2
Sep 26 10:53:19.079: LLDP advertisement packet RX'd on intf Port-channel2


ALS-2#sh lldp nei
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID

Total entries displayed: 0

ALS-2#sh lldp nei
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID

Total entries displayed: 0

The home lab Etherchannel interface contains two member ports: gi0/0 and g0/1.
When I disabled then enabled LACP on one interface, LLDP suddenly found one neighbor on it:

ALS-2(config)#int gi0/1
ALS-2(config-if)#no channel-group 2 mod act
ALS-2(config-if)#channel-group 2 mod act

ALS-2#sh lldp neighbors
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID
DLS-1               Gi0/1          120        R               Gi0/3

Total entries displayed: 1

I did the same thing with the second member port of the Etherchannel. I disabled then enabled LACP on gi0/0:

ALS-2(config)#int gi0/0
ALS-2(config-if)#no channel-group 2 mod act
ALS-2(config-if)#channel-group 2 mod act
 !!! waiting a couple of seconds
ALS-2#sh lldp nei
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID
DLS-1               Gi0/0          120        R               Gi0/2
DLS-1               Gi0/1          120        R               Gi0/3

Total entries displayed: 2

However this situation lasts not long. As soon as we start seeing LLDP neighborship, we lose them again.

ALS-2#sh lldp nei
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID
DLS-1               Gi0/0          120        R               Gi0/2

Total entries displayed: 1

ALS-2#sh lldp nei
Capability codes:
    (R) Router, (B) Bridge, (T) Telephone, (C) DOCSIS Cable Device
    (W) WLAN Access Point, (P) Repeater, (S) Station, (O) Other

Device ID           Local Intf     Hold-time  Capability      Port ID

Total entries displayed: 0


UDLD is supported in Cisco vIOS though.

Switchport mode dynamic desirable

Switch-1(config-if)#switchport mode ?
  access        Set trunking mode to ACCESS unconditionally
  dot1q-tunnel  set trunking mode to TUNNEL unconditionally
  private-vlan  Set private-vlan mode
  trunk         Set trunking mode to TRUNK unconditionally

IP DHCP Snooping trust

It is possible with IOL to configure the IP DHCP Snooping feature. However, during the configuration of trust settings under the interface, this was not possible.
Cisco vIOS however does support it.


% Unrecognized command

Not only GLBP is not supported neither on Cisco IOU, nor on Cisco vIOS, but also don’t use IOU or vIOS when they are connecting to two GLBP routers. In fact, no GLBP protocol packets are exchanged over IOU/vIOS.
To circumvent that, I simply use a normal hub in EVE-NG: Add a New Object –> Network.


To circumvent this lacking feature, one can use Cisco 7200 IOS images. But these ones do not support HSRP Interface Tracking feature.

List of missing switch features on GNS3

Access Switch Device Manager (SDM) Template
ACL – Improved Merging Algorithm
ARP Optimization
BGP Increased Support of Numbered as-path Access Lists to 500
BGP Restart Neighbor Session After max-prefix Limit Reached
BGP Route-Map Continue Support for Outbound Policy
Clear Counters Per Port
DHCP Snooping
DHCP Snooping Counters
Diagnotics Options on bootup
ErrDisable Reactivation Per Port
ErrDisable timeout
EtherChannel – Flexible PAgP
Etherchannel Guard
Fallback Bridging
Flex Link Bi-directional Fast Convergence
Flex Link VLAN Load-Balancing
Flex Links Interface Preemption
GOLD – Generic Online Diagnostics
IEEE 802.1ab, Link Layer Discovery Protocol
IEEE 802.1s – Multiple Spanning Tree (MST) Standard Compliance
IEEE 802.1s VLAN Multiple Spanning Trees
IEEE 802.1t
IEEE 802.1W Spanning Tree Rapid Reconfiguration
IEEE 802.1x – Auth Fail Open
IEEE 802.1x – Auth Fail VLAN
IEEE 802.1x – VLAN Assignment
IEEE 802.1x – Wake on LAN Support
IEEE 802.1x Authenticator
IEEE 802.1X Multi-Domain Authentication
IEEE 802.1x RADIUS Accounting
IEEE 802.1x with Port Security
IEEE 802.3ad Link Aggregation (LACP)
IEEE 802.3af Power over Ethernet
IGMP Fast Leave
IGMP Version 1
IP Phone Detection Enhancements
IP Phone Enhancement – PHY Loop Detection
IPSG (IP Source Guard)
Jumbo Frames
L2PT – Layer 2 Protocol Tunneling
MAC Authentication Bypass
MLD Snooping
Multicast Etherchannel Load Balancing
NAC – L2 IEEE 802.1x
NAC – L2 IP with Auth Fail Open
Packet-Based Storm Control
Per Port Per VLAN Policing
Port Security
Port Security on Private VLAN Ports
Private VLANs
QoS Policy Propagation via Border Gateway Protocol (QPPB)
Rapid-Per-VLAN-Spanning Tree (Rapid-PVST)
Reduced MAC Address Usage
Smart Port
Spanning Tree Protocol (STP) – Loop Guard
Spanning Tree Protocol (STP) – Portfast
Spanning Tree Protocol (STP) – PortFast BPDU Filtering
Spanning Tree Protocol (STP) – Portfast Support for Trunks
Spanning Tree Protocol (STP) – Root Guard
Spanning Tree Protocol (STP) – Uplink Load Balancing
SRR (Shaped Round Robin)
Standby Supervisor Port Usage
STP Syslog Messages
Switching Database Manager (SDM)
Trunk Failover
Trusted boundary (extended trust for CDP devices)
Unicast Mac Filtering
UniDirectional Link Detection (UDLD)
VLAN Access Control List (VACL)
VLAN Aware Port Security
Weighted Tail Drop (WTD)

GNS3 Unsupported Commands on NM-16ESW

A note before reading the list: when you read the arrow sign ( –>) it means: here’s the command that replaces it.

Unsupported Command Alternative
switchport trunk encapsulation isl NA
switchport trunk encapsulation negotiateNA
switchport mode dynamic desirable|autoNA
switchport nonegotiateNA
show interfaces vlan {vlan-id}NA
show vlan show vlan-switch
show vlan id {vlan-id} show vlan-switch id {vlan-id}
show vlan brief show vlan-switch brief
show vlan name {vlan-id} show vlan-switch name {vlan-id}
(config-if)# ip route-cache cef NA
(config-if)# spanning-tree guard rootNA
(config-if)# spanning-tree bpduguard NA

Installing CallManager Express in GNS3

This section describes how to transform a Cisco router in GNS3 into a Cisco CallManager Express or CUCME.

Remember that a Cisco router can become a CallManager Express if we install the CUCME package into it.

I’ll assume you have a CUCME package on your computer.

Here is the setup in GNS3:

  • a router destined to become CUCME
  • a cloud item associated to the physical network card of the host machine
  • a link between the router and the cloud.

We also need a TFTP server software. One of the best free TFTP servers is TFTPD32.

After you build the topology in GNS3, configure the router:

  • set up the FastEthernet interface for connectivity with the host machine network. The host machine NIC address is The router’s FastEthernet IP address is

install-CUCME-GNS3-router-2016-02-28 12_44_03

  • Erase the router Flash:

install-CUCME-GNS3-router-2016-02-28 12_50_06

  • And format it:

install-CUCME-GNS3-router-2016-02-28 12_51_00

To the TFTP server now. Download and install the TFTP server.

Set it up in a way that it points to a directory that contains the CUCME file.

install-CUCME-GNS3-router-2016-02-28 12_37_47
The E: path is where the CUCME tar file is stored

On the GNS3 router, with the archive command:

  • copy the CUCME tar file from the TFTP server to Flash,
  • extract the files from the CUCME tar file.

install-CUCME-GNS3-router-2016-02-28 12_52_15

After the operation terminates, you do a show telephony-service to display the CUCME version:

install-CUCME-GNS3-router-2016-02-28 12_56_31

Connecting CUCM to GNS3

In this paragraph, I’m going to explain how to connect a CUCM server to GNS3. My CUCM server is running on Vmware.
Here is the topology we’re going to have:
cucm-vmware-gns3--2016-01-03 20_02_45
What we will use:
  • a VM on which CUCM is running
  • Vmware bridged networking technology: this feature allows CUCM network card to be on the same physical network as the host network card. This means we’ll have CUCM and our physical machine on the same subnet.
  • GNS3 with one router and one cloud
First, start the CUCM virtual machine. I’m using Vmware Workstation.Let it run and open GNS3 in the meantime.
Add one router and one cloud item. The cloud will be the link between the router and the host physical network card.
Before we continue, let’s examine the list of network cards on the host computer:
We are only interested in the physical network card. It is called “Connexion au réseau local” in French :)
This is the NIC card we’ll configure on the cloud item, in GNS3.
cucm-vmware-gns3--2016-01-03 19_53_01
Configure the cloud component. In the Ethernet tab, select the physical network adapter we saw previously and click on Add.
cucm-vmware-gns3--2016-01-03 19_53_43
Link the router to the cloud with GNS3 automatic linking tool:
cucm-vmware-gns3--2016-01-03 19_55_15
Here on on one side we have a router R1’s FastEthernet0/0, and on the other side we have a cloud item with a physical LAN interface.
Since the CUCM uses bridged networking with the host network card, both CUCM and the host machine are on the same subnet:
cucm-vmware-gns3--2016-01-03 20_13_08
In order for the router to connect to CUCM, it must have an IP address on that subnet too. That’s why we’re going to configure FastEthernet0/0 with IP address
Start R1 and log in to the console. Configure FastEthernet0/0 with IP address
cucm-vmware-gns3--2016-01-03 19_58_12
Once CUCM boots up, R1 should be able to ping it:
cucm-vmware-gns3--2016-01-03 19_59_56

We established connectivity between a router in GNS3 and a CUCM server in Vmware, through the host computer network card.



Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *