How to use the GNS3 WorkBench Exercises

I’ve managed to get GNS3 Desktop installed, and have tested that my IOS for a 3725 or 2600 or 2691 router works.

How do I use the GNS3 WorkBench Exercises?

Let’s distinguish between Labs and Exercises – they work slightly differently – Labs continue your configuration from where you last saved them, Exercises have a pre-defined starting point that is always the same.  The subtlety different lesson on How to use the GNS3 WorkBench Labs is here.

For this lesson, we will use one of the ICND1 Exercises.  The process described here is the same for the ICND2 Exercises, and the Odom’s (and other) Examples.

Now in this lesson I am going to cover:

  • How to to start a GNS3 WorkBench Exercise session
  • How to use the VPCs application
  • How to start the virtual routers
  • How to configure the virtual routers
  • How to save your configurations
  • How to quit the GNS3 WorkBench environment cleanly
  • How to continue a previous Exercise session

Task 1: start a GNS3 WorkBench exercise session

Double-click on the ICND1 Exercises icon on the Desktop, then double-click on the ICND1 2Routers exercise. This will start three processes:

1. The GNS3 application will start, and depending on the speed of your PC, it may appear sooner or later than the Instructions window.  For now though, we need to focus on the Instructions window described below.

2.  A page of instructions will appear in text format in a konsole window.  This konsole window will become the main focus of your entire session, so take note of it.  If the window is covered by the eGNS3 application, bring it to the front.

3. Notice that the Instructions Window has two tabs, Instructions, and VPCs.  VPCs is the 3rd application that started when you double-clicked on the Linear2Routers icon.

Task 2: use the VPCs application

After you have read the Instructions, Click on the VPCs tab. Remember, clicking on the Instructions tab will bring you back to the instructions.  Clicking on the VPCs tab will show you the VPCs window, and you should see that there have been two Virtual PCS configured with IP addresses. The Prompt showing:


indicates that your VPCs focus is Virtual PC number 1.  There are 9 Virtual PCs, and you can switch to Virtual PC number 2 by entering the digit 2 and pressing .  Note how the prompt changes to:


Your job in this exercise is to get the two PCs pinging each other.  Lets start by making sure that your focus is back at PC #1 (type 1) and then enter the show command.  This will show you the IP address and default gateway for each of the PCs.

Now try some pings.  Firstly, ping your own IP address.  That should work.  Then ping your default gateway (that won’t work, we haven’t even started the routers yet) and then ping the IP address of PC#2 – that won’t work either, but you will see something interesting in the output.  Examine my session below:

VPCS 1 >show           

NAME   IP/CIDR              GATEWAY           MAC                LPORT  RPORT
PC1        00:50:79:66:68:00  20000  30000
PC2        00:50:79:66:68:01  20001  30001
PC3             00:50:79:66:68:02  20002  30002
PC4             00:50:79:66:68:03  20003  30003
PC5             00:50:79:66:68:04  20004  30004
PC6             00:50:79:66:68:05  20005  30005
PC7             00:50:79:66:68:06  20006  30006
PC8             00:50:79:66:68:07  20007  30007
PC9             00:50:79:66:68:08  20008  30008

VPCS 1 >ping icmp_seq=1 time=0.001 ms icmp_seq=2 time=0.001 ms icmp_seq=3 time=0.001 ms icmp_seq=4 time=0.001 ms icmp_seq=5 time=0.001 ms

VPCS 1 >ping
host ( not reachable

VPCS 1 >ping
host ( not reachable

Notice that the output for the ping to shows the output “host ( not reachable” rather than “host ( not reachable” as you might expect, since after all you were trying to ping!  Hopefully your mind is saying ‘Of course – before the Virtual PC could send a ping to, it would have to resolve the MAC address of its default gateway, and it tried and failed so THAT’S WHY the reply comes back “host ( not reachable”.’

Task 3: start the virtual routers

It’s time now to focus on the GNS3 window.  Bring this window to the front, and you should see the layout of the lab.  If necessary, resize the sides of the window so you can see the entire topology. You can also zoom in and zoom out using Ctrl++ and Ctrl+

Notice the three featured icons in the picture above.  Click the Start all devices icon and observe that the icons for R1 & R2 in the Status icons section turn green to indicate that the routers R1 & R2 have now started.  You will also notice that the interface status markers on the routers turn green as well.

Task 4: configure the virtual routers

Now with your routers started, click the Telnet to all IOS icon, and your konsole window will gain two new tabs (careful – don’t click on the Telnet icon more than once – if you can’t see you original konsole window, bring it to the front now).

Click the tab of the router you wish to configure first – R1 or R2, then click inside the window, and hit . Now you may have to be a bit patient here, as it may take some time for the routers to boot up, but since there are no saved configurations, the routers should soon start with the standard default blank configuration dialogue.

Would you like to enter the initial configuration dialog? [yes/no]:

Answer No, and go ahead and configure the routers with IP addresses, but at this stage without any routing.  If you are not confident you can do this on your own, cut and paste the sessions below:

For router R1

config term
hostname R1
interface fa0/0
ip address
no shut
interface s0/0
clock rate 64000
ip address
no shut
write mem

and of course, router R2

config term
hostname R2
interface fa0/0
ip address
no shut
interface s0/0
clock rate 64000
ip address
no shut
write mem

Check that one router can ping the serial interface of the other router, and it would be a good idea now, to click on the VPCs tab and check that VPC 1 can ping its default gateway, and VPC 2 an ping its default gateway – of course they won’t be able to ping each other yet because you haven’t configured routing!

Task 5: save your configurations

Note that the past command you issued for each router was write memory (which executes a no-nonsense copy running-config startup-config) – in other words, you saved your configuration – but don’t get too excited, you haven’t saved it from within the GNS3 environment yet – so it may not be completely saved yet – you still have to export your configurations from GNS3 so that you can continue with this lab later.  Note that not all Labs are set up to allow you to continue – check the last lines of the instructions to see.  If (like this one) is says something like…

If you wish to save your configs and continue at a later time, make sure you 
do BOTH a) save your configs (using 'copy running-config startup-config') AND 
b) save your network file (click file->save) from GNS3.  If you do this, you 
can continue your lab later by running the 'startup.continue' script from the 
'/opt/GNS3/Project/ICND1 2Routers' directory.

…then you will be able to save now and come back to the lab later.  But first, you will have to export your configurations.

For now, I’m going to tell you that the easiest way to export your most recently saved configurations is to click File->Save from within GNS3. This will export your configurations to the configs directory of your project, and you should see the following output in the Dynagen management console for Dynamips window at the bottom of your GNS3 workspace.

Now if you have saved your configurations, and exported them (saved from GNS3) then I am going to next explore how you quit the GNS3 WorkBench environment and start up again from where you left off.

Task 6: quit the GNS3 WorkBench environment cleanly

Quitting is a 3 step process (you can skip step 1, but I want you to see what happens)

Step 1 is to stop the routers. This can be done by clicking the big red Stop every device icon at the top of your GNS3 workspace, or (in version 0.7.3) by clicking Device->Stop.

Notice that when you stop all the devices, your console sessions for each of the routers disappears from the main konsole window.

Step 2 is to quit GNS3 – this is easily achieved by clicking File->Quit in GNS3

Step 3 is the step most people forget, and then they come to grief if they try to start another session.  This is the step to close the konsole window where the Instructions are displayed and the VPCs session is running. This can be done 3easily by clicking File–>Quit form the konsole application.

Task 7: continue a previous session

NOTE: The method described below is relevant for many of the Exercises.  Not ALL exercises will allow you to “continue”, and the Standard Layout labs use a different method described here.

Recall that earlier, we had read in the instructions that:

…you can continue your lab later by running the ‘startup.continue‘ script from the
/opt/GNS3/Project/ICND1 2Routers‘ directory.

Now back at the desktop, double-click the icon labelled GNS3 Files – More exercises here. This is actually a folder, and contains shortcuts to all the /opt/GNS3/Project directories.

Find the ICND1 2Routers shortcut, and double-click on it.  This time, the program won’t start, but you will get to see some of the scripts and configuration files that live behind the scenes of GNS3 WorkBench.

Locate the startup.continue script – it has a little red heart icon on it.

When you find it, double click on it, and you will be presented with 4 options. Run in TerminalDisplayCancel and Run.

You should choose Run, but it you choose Run in Terminal the script will still run, but you will have to confirm some of the actions, but you can see a little more clearly what is going on BUT you have to be careful you don’t close the terminal window or it will close every program it spawned – including GNS3.

This time when you start the routers, they should start with the same configuration they had when you last saved your configurations earlier, and you can complete the exercise.

Here’s the config you can paste in to complete the exercise using RIP – you might prefer to finish the exercise using static routes instead.

Router R1

config term
 router rip
 version 2
write mem

Router R2

config term
 router rip
 version 2
write mem

Once you have completed the configuration, test if your PCs can ping each other now, by clicking on the VPCs tab and using the ping command, and also try the tracert command:

VPCS 1 >ping icmp_seq=1 timeout icmp_seq=2 time=9.124 ms icmp_seq=3 time=9.974 ms icmp_seq=4 time=9.967 ms icmp_seq=5 time=9.235 ms

VPCS 1 >tracert
traceroute to, 64 hops max
 1   5.425 ms  10.867 ms  18.088 ms
 2   8.902 ms  10.815 ms  6.281 ms
 3   9.824 ms  16.034 ms  14.760 ms

Fantastic.  You have completed the first part of the exercise – I’ll leave you on your own to complete the configuration so that you can telnet from one router to the other, and to shut down GNS3 cleanly as described in Step 6.

End of Lesson


23 Responses to How to use the GNS3 WorkBench Exercises

  1. cutty says:

    Hi Chris and everyone,

    I Could finally complete the goals of the SDM DHCP & NAPT.
    I really like all those exercises, every time I learn a lot of things.

    Finally I figured out how to handle most things in the SDM. The one that I really miss: I could never configure the IP for the serial interface of R1, had to do it at the console.

    I also tried the “Cisco configuration professional”. It looks much better in that you do not need to downgrade you Java runtime. But it tells right from the beginning that it cannot handle all features of the 3725. Nice GUI though.

    In the exercise, I also had to change the config of the other router, that was not in the instructions.

    Is it always like this in the exams? some instructions are left out to challenge the student?

    • rednectar says:


      Good idea to try the “Cisco configuration professional” – it has some huge improvements over SDM.

      If you completed the exercise successfully (with NAPT working using the IP address of the Serial interface of R1) you do not have to change anything on the SP_Router.

      This exercise is probably a little more challenging that what you would expect in the exam because you start with a completely unconfigured router. My experience in exam simulations has been more along the lines of configuring just one or two things – or fixing one or two things. However, I have not sat the new CCNA exams, so I have no idea what they are like.


  2. cutty says:

    Hi Chris,

    I started ICND1 exercises, i works like a charm. However I hit a roadblock with SDM DHCP & NAPT Exercise. It looks like I cannot get past the password setup. Whether I use the telnet from my host PC or the console in GNS3, no luck.
    I was trying to find some hints in the blog, nothing turned up either.
    I wonder if my image could be the problem? I already tried to install 2 different IOS.
    c3725-adventerprisek9-mz124-15.image and then
    I was not able to find the T10. If this is the problem, I will have to pull some strings when I go back at work. (I was trying this during a holiday).

    I get the following console output:

    It is strongly suggested that you create a new username with a privilege level
    of 15 using the following command.
    username  privilege 15 secret 0 
    Replace  and  with the username and password you want to
    yourname#username assurbanipal privilege 15 secret 0 lapinabrussa
    % Invalid input detected at '^' marker.

    To clarify The ^ marker comes under the “s” of username

    Any hint would be welcome.

    • rednectar says:

      Hi Cutty,

      The SDM lab was designed to be completed using the SDM – not the console – you don’t need to open the console at all. What you will have to do is to make sure your host PC (the one running VMware) has an IP address in the range and a default gw of

      You will then (after starting the routers in the GNS3 WB exercise) run SDM on your VMware Host PC – use the default username/password of cisco/cisco


      • cutty says:

        Hi Chris,
        Thanks for the answer, it was really a case of read the friendly manual. A lot of those things are new for me, I need to focus more.
        So I installed the SDM, with great pain: It really works only if I have the correct combination of browser and java runtime. For example SDM refused to start with firefox, and then IE as well, unless I installed the java 6u6, as I found recommended from someone.
        But now I am stuck again; if I save to the startup config, although the SDM states the command was successful, rebooting the routers, I am back to square one. The router would only accept the cisco/cisco credentials and asks me again to change the PW.
        Is that part of the exercise? I saw in one of your blog articles that you sometimes add extra difficulties (with evil laugh…) Difficult, I dont know if am am chasing installation or tool problems, or something else.

      • rednectar says:

        SDM is really a pain – thank goodness it has now been removed from the new ICND exams (so doing this exercise is really only academic now).

        You can actually get into a lockout situation with SDM – so you really do have to change the password right up. Now as far as “rebooting” goes, you have to understand that Exercises (like this one) will reset the lab every time you run it, so if you do the exercise, save your config, and want to continue from where you left off, you will have to run a “continue” script file – in your case it will be /opt/GNS3/Project/SDM-DHCP & NAPT/startup.continue – eg:

        user@GNS3WB:Project$ /opt/GNS3/Project/SDM-DHCP\ \&\ NAPT/startup.continue 

        If you have the exercise running, and you want to test a “reboot”, save your config, then right-click on the router and choose “Reload”


  3. Hi
    how can J check answers for there some file J can load into GNS3 or something like that?
    tnx 🙂

    • rednectar says:

      Most of the exercises have a goal – such as being able to ping from one vPC to another – much like the simulations in the exams. Paul Meng has done a lot of work improving vpcs, so I’ve added a couple of vpcs scripts to check a couple of labs in the next release. In the meantime I’m afraid it is very much a self-check exercise. Unfortunately this can be tough when you are just learning!

  4. gonzalexx says:

    Thanks so much for your quick reply. I’ve really hit a breakthrough. Was able to get through the exercise w/ some googlin’ assistance, and I now understand lots of network perspective I’ve worked around for a long time, but now I can follow even better. Its a great way to discover. A lesson/exercise guide would be good, but that’s what courses are for. The way GNS3 workbench puts the tools in front of you is what counts. I can speed up some skill development of my own. Thanks again!

  5. gonzalexx says:

    I’m sure folks come and go, with comments here… but I did have one question.
    Is there an order to the exercises, from basic to advanced?
    I’m not really trying to get certified with CISCO, or what have you… but I need to learn networking, and I don’t have an exercise guide. Since this is a great environment (the workbench) I thought I’d use it, and believe me… already having learning breakthroughs.
    So… is there an order to follow?
    Thanks so much for your hard work. (I got the network bug… officially).

    • rednectar says:

      There is no particular order, although ICND1 exercises are probably easier than ICND2. The most important exercise to master as a beginner is ICND1->ICND1 2Routers. In that exercise you ahve to configure two routers from scratch so that the PCs on either side can ping each other, and be able to telnet from one router to the other and reach privileged mode. This means you have to configure the interfaces with ip addresses, bring the interfaces up (no shutdown) and then either use static routes or RIP (the exercise is designed so RIPv1 won’t work!) to make teh ping possible. You then have to configure appropriate passwords to allow the telnet to happen.

      Good luck, and when you’ve finished all these, add your own variations, or better still, design some of your own.

      • Harry says:

        Hi rednectar,

        The net mask values for the router interfaces are not same as the actual exercise (should be /30 instead of /24) in the appliance. Though it is not an big issue as any one should be able to spot it if they know how to configure a router. Appreciate if could correct it beginners like me to verify their answers.


      • Thanks for letting me know Harry. As you can imagine, errors like this are very hard to track down.

        Chris – RedNectar

  6. Waleed says:

    Hi Chris ,

    I have found a way to add new hard desk to UBUNTU as below (it is copied from this link ) :
    First thing to do is install the second hard drive into your computer. I assume you already know how to do this. One thing I have learned with IDE drives and ubuntu, always use the Ultra DMA 80 conductor IDE cables on the drives. If you don’t, you will find all kinds of disk errors in your log files.
    For the second hard drive, we need to create partitions. To do this, we use the following command: sudo fdisk /dev/sdb

    After the fdisk menu comes up, you might get the following warning message:

    WARNING: DOS-compatible mode is deprecated. It’s strongly recommended to switch off the mode (command ‘c’) and change display units to sectors (command ‘u’)

    Command (m for help):

    Press “u” like it is telling you. Then press “n” to create a new partition. It will respond with:

    Command action
    e extended
    p primary partition (1-4)

    Tell it “p” for “primary partition”. Next it will ask you which partition (1 – 4). In my case, I just want one big partition, so I just accept the default responses for the first and last sectors.

    Next we need to tell fdisk which type of formatting we want. As of this writing, we want type code 83 for Linux. For a complete list of all drive types, just press “L”.

    When everything is configured press “w” to write the partition changes to the disk. Important! If you don’t write the changes to the disk, the changes won’t be saved! Finally press “q” to quit fdisk.

    Next run partprobe to update the kernel with the changes we have made with the following command: partprobe in my case, my device name is /dev/sdb.

    Next, we need to format our new hard drive. To do this, enter the following command: sudo mkfs /dev/sdb1 -t ext4

    Another disclaimer: like with fdisk before, you need to make sure you are using the correct hard drive with this command. It must be the same drive that you referenced in your fdisk command.

    After you have your second hard drive installed in your computer, go into your computer’s BIOS and make sure it is recognized there.

    Next, boot the computer up, and see if Ubuntu can see the second hard drive. To do this, open up the terminal window and type the following: sudo fdisk -l

    You should see the following:

    Disk /dev/sda: 41.1 GB, 41110142976 bytes
    255 heads, 63 sectors/track, 4998 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0x000c1e50

    Device Boot Start End Blocks Id System
    /dev/sda1 * 1 4905 39399381 83 Linux
    /dev/sda2 4906 4998 747022+ 5 Extended
    /dev/sda5 4906 4998 746991 82 Linux swap / Solaris

    Disk /dev/sdb: 500.1 GB, 500107862016 bytes
    255 heads, 63 sectors/track, 60801 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Disk identifier: 0xd89ff2c4

    Notice that the second hard drive (/dev/sdb: 500.1 GB) doesn’t show any partitions like the first drive does. (/dev/sda: 41.1 GB)

    If, on the other hand, there is already data on your new hard drive,(you will see the partitions) and you want to keep the data, just skip the this part, as well as the formatting of the hard drive.

    DISCLAIMER: this is what MY computer tells me for my second hard drive. You need to make sure you tell it the correct hard drive for YOUR computer as displayed in the prevous fdisk command. If you incorrectly tell fdisk the wrong drive you will destroy your data! You have been warned!
    Next you need to create a directory for a mount point. I usually create these directories in the /mnt directory (as that is what it is for..). Since in this case, my hard drive is labeled sdb, and I have (in this case..) put one partition on this hard drive, I am going to create a directory called, sdb1. If you have chosen to place more than one partition on your new hard drive, then you will need to create a separate directory for each partition. The command for this is:

    sudo mkdir /mnt/sdb1

    Next, you need to make this folder writable. to do this, use the following command:

    sudo chmod 777 /mnt/sdb1

    Again, use the appropriate names for the hard drive you are using above.

    Next, let’s test things out by mounting the drive:

    sudo mount /dev/sdb1 /mnt/sdb1 -t ext4

    Now let’s see if we can write a file on to the new drive, like so:

    touch /mnt/sdb1/test.txt then ls /mnt/sdb1/*

    By executing the last command, you should see the test.txt file. If so, congratulations, you now have a second hard drive on your computer. However, this is only a temporary mount point. The next time you reboot your computer, it will be gone. If you want this new hard drive to be permanently mounted, (who doesn’t?) you need to edit your filesystem tab file like this:

    sudo vi /etc/fstab

    The vi editor will load and show the contents of the fstab file. It will look something like this:

    # /etc/fstab: static file system information.
    proc /proc proc defaults 0 0
    # /dev/sda1
    UUID=0654cdd0-480c-4ebd-b9f1-c153be45a259 / ext4 defaults,errors=remount-ro 0 1
    # /dev/sda5
    UUID=bf55d909-3ece-44e5-8622-6d08ef034c9f none swap sw 0 0
    /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec 0 0
    /dev/fd0 /media/floppy0 auto rw,user,noauto,exec 0 0

    at the end of the file, add a line similar to following line with the appropriate folders for the mounting points you used previously. (these are mine..)

    /dev/sdb1 /mnt/sdb1 ext4 defaults 0 0

    Save this file. You can reboot your computer if you like, or just use the following command:

    mount -a

    If you have done everything correctly, you will have a second hard drive. Enjoy your new hard drive in Ubuntu


    • Waleed says:

      Currently the issue is /VAR is only 900MB free and the new desk does not added to /VAR . Need to expand /var to have at least 2GB.

      What is your advice ?


    • rednectar says:

      Thanks for at least starting to sort this out – I began looking and couldn’t find a simple answer – and at the moment I don’t have a a PC to practice on (I’m away form home) so it will be a few days before I get another chance to look at it. Thanks for sharing the info you did get!

  7. Waleed says:

    Hi chris, good morning…
    Thank you for your great effort and all the job you’ve done to make this project.
    I have made my file and started to run it with GNS3 , the .net file has 14 devices , I faced an error message about low desk space while I am pressing on Start ALL Routers . I have tried to increase the harddesk size by VMWARE but the VMWARE says that the size is pre-allocated .

    Could you check for it and reply .


  8. jkdave82 says:

    Hi chris, good morning…
    just a stupid question to satisfy my curiosity!
    gns3 workbench is good and all included 1). GNS3 0.7.3 2) VPC 3) ubuntu
    now is it possible to connect routers configured in ubuntu ( lets say we have 4 routers in ubuntu i.e. inside our vmware) with 4 routers that I am running in gns3 which is installed on my laptop having Win7 OS?
    the reason is to utilize less memory and use more no. of routers in different environment. pls dont waste your time if its a stupid question but spend your time replying me from your busy schedule if it make a sense with my stupidity
    Thanks for reading, JD

    • rednectar says:

      Hi Jigar,
      Yes – you can run routers on multiple PCs and there are several options to join them.
      One way is to configure multiple hypervisors (see
      Another is to simply link them through the ethernet port – connect your routers to a cloud, and set the destination of the cloud a NIO UDP port on the other PC’s IP address (and on the other PC connect your router to a NIO UDP port on the VMWare’s Ubuntu IP address)

  9. KishoreKannan says:

    Can u please tell me how to use VPCS 20a in GNS3 under ubuntu

    Thanks in advance

    • rednectar says:

      Kishore, To install vpcs v0.20a on the GNS3 WorkBench, follow these steps:
      From within your GNS3 WorkBench environment, start Firefox and browse to
      Click on the download link and choose to open with

        Archive Manager (default)

      This will show a folder called vpcs-0.20a. Double click on the folder to open it
      You should now see a list of files. Find the file vpcs32.linux. Right click on it and choose Extract
      Choose the target folder to extract to as /opt/GNS3/vpc
      When the extraction has completed (about 0.1 secs) click on Show the files from the Extracting files from archive dialogue.
      You should see the files in the /opt/GNS3/vpc directory appear.
      Find the file called vpcs, right click on it and rename it to vpcs.old
      Find the file called vpcs32.linux (the one you just extracted) and rename it to vpcs
      Now right click on the vpcs file and select Properties
      Click on the Permissions tab and make sure the Allow executing file as program check box is checked.
      Click close
      Close any other windows.

      Next time you run a lab/exercise, you will be running with vpvs v0.20a

      Note that the echo command in vpcs v0.20a is different to previous versions, so we are not finished yet:

      From the desktop, open the link to GNS3 Files – More exercises here
      Find the Acme2Router.NAPT exercise and open it
      In this directory you will find 3 files with a name beginning with Instructions
      Edit each of these files, and change the lines:

      echo 80 tcp
      echo 80 tcp


      ping -p 80 -3
      ping 80 -p 80 -3

      ANd of course make sure you save each file 😉

      Now navigate to the folder /opt/GNS3/Project/SDM-DHCP & NAPT
      Find the file Instructions, and edit it so that the line:

      Test your configuration by having PC1 ping and echo 80 tcp

      reads as:

      Test your configuration by having PC1 ping and ping -p 80 -3

      And again, make sure you save the file!

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.