Wednesday, February 6, 2008

CCIE practice - My dynamips environment

This is the PC i used during my practice:

Abit IP35Pro
Core2Duo E6550 (@2.66)
320GB HD
Windows XP & Ubuntu

I started using WindowsXP, but soon i found out that i couldn't run concurrently >10 routers (i didn't insist too much on trying this). So i switched to Ubuntu, where after 1 week of trial & error, i managed to create my home environment and then run the sample lab that is provided free at IE's site. You can find more information on a previous post of mine about this setup.

Afterwards, i started creating mini labs on this setup, based on the topology of IE's sample lab, "stealing" ideas from the 2 CCIE Practical Studies books and adapting them to a specific physical topology. I started using 3640s as routers and switches (using 12.3(14)T7) but i had a lot of issues with spanning-tree & transparent vtp (it was like spanning tree was getting stuck). So i decided to use 3725s as switches, 3640s as routers and move both routers and switches to latest 12.4 IOS (12.4(17a) at that time).

Although everything was working fine in Ubuntu, i had to switch to Windows quite often in order to check some other material i had there, especially my email (although i could read my new emails from inside Ubuntu, i couldn't read the old ones). Also, i was experiencing strange crashes once in a while in Ubuntu, when restarting dynagen. So i decided to give it one more try and transfer the dynamips/dynagen setup to Windows again.

I had already found the ideal idlepc values for my routers' ios on Ubuntu, so i was going to use the same on Windows. The biggest difference between Ubuntu & Windows, was that i had to use the sparsemem option in dynagen on Windows (only for routers) in order to decrease memory usage, but even after that, Ubuntu was still using less memory. Also, cpu usage was a little bit higher in Windows, but as long as it stayed below 15%, is wasn't a problem. Having full configurations on all 13 routers/switches kept the cpu around 40% busy, which was fine by me (in Ubuntu it was under 20%). At the same time, memory usage was around 1.4GB on Windows and under 1 GB in Ubuntu.

I used 2 dynamips processes in order to split the memory usage per process (Windows is said to have a problem with this) and i assigned all routers in one process and all switches + bb routers in the other process (pretty much like IE's dynamips setup). Btw, you can find a lot of useful info about dynamips/dynagen in

This is the general routers/switches dynagen setup i used on Windows:

image = C:\images\c3640-ik9o3s-mz.124-17a.extracted.bin

ram = 128
disk0 = 0
disk1 = 0
idlepc = 0x605a5040
mmap = True
ghostios = True
sparsemem = true

image = C:\images\c3725-adventerprisek9-mz.124-17a.extracted.bin

ram = 128
disk0 = 8
disk1 = 0
idlepc = 0x62379ed0
mmap = True
ghostios = True

It took me a while until i was able to initialize the setup for every mini-lab i was having. I was spending around 2 hours in order to prepare my setup for each mini-lab. But, after creating a xls table with the differences between my physical topology and the mini-lab topologies, i managed to bring this time down to 20-30 minutes.

I also used the same topology for all the Mock Labs, which helped me a lot. There were some issues with L2 features not supported by dynamips, but i wasn't worried because i knew most of this stuff. Nevertheless, i had a scrap paper near me where i was taking notes and i also used it for writing down all the config commands i couldn't configure. That way i was able to grade myself in everything, even in things dynamips didn't support.

One thing that i didn't regret of, is that when i was redoing my Mock Labs using dynamips, i did every possible task, even the ones that seemed silly and were repeated quite a few times. There were times that i was thinking how boring is to configure something for nth time, but i knew i had to do it if i wanted to succeed.

Lastly, i had created a pdf file like the following (i created it in Excel, then converted it to PDF and printed it), where for every Mock Lab i was writing the task number, the task points, whether i though i had completed it and some notes about tricky things or things to be looked later.

After finishing each lab, i was comparing my solution to the proctor's one and i was grading myself. Mostly i was giving myself lower grades for all alternative solutions, until i was 100% sure that my solution was correct too. That way, after finishing all Mock Labs, i was able to see in what parts i had repeatedly made mistakes so that i could focus more on these.

My final advice :
Try to be organized! It'll make your preparation much easier.
Try to repeat things! It'll make you exam much easier.

In the meanwhile, i have already decided what exam i'm going to try next, but i won't reveal it until the poll ends. Of course my pre-preparation has already started...

Btw, i 'm also searching for a new job. Last weekend i rewrote my CV (it has been a long time since i had updated it) and i have already found 3 "candidate" companies which seem very interesting. But i won't do anything until the end of this month, because i'm waiting for an offer from my current job.


  1. You are doing a wonderful Practice!
    I'd like to exchange link with your blog.

  2. Congrats on your success! I am curious, why didnt you use the sparsemem option for your 3725s?

  3. I was actually trying to avoid using this option, because it refers to virtual memory.
    On Ubuntu i wasn't using it at all, because there was enough free memory.
    On Windows i had to use it, so i decided to use it only under routers. I had met some problems with the switches (with spanning-tree and vtp), so i wanted these to work with absolute priority and depend on as few things as possible.

  4. This comment has been removed by the author.

  5. Hi I have a question about the Dynamips lab, I actually have topology of 4 routers connected via frame-relay, so that's about routing.Have you an idea how is it possible to practice switching because as far as I know the dynamips can't emulate IOS switches (e.g. 3550, i mean I would like to practice VTP,STP,Etherchannel in topology like SW1--SW2, is it possible? And also run ISDN through BRI or AUX would be nice but i haven't find any info about that :(

  6. You can use a NM-16ESW module and a 36xx/37xx router in order to simulate a switch. Of course you'll be missing many features but you can still experiment upon the basic stuff.

    ISDN is not required anymore for R&S.

  7. Thanks for reply :) yes you right it work I use this image c3640-jk9o3s-mz.124-5a and the vtp is only available under vlan database configuraion and when I create e.g. vlan 128 and assign ip address it newer goes up even if i have working trunk between switches.

  8. Hi Tassos,

    Ive searched the internet for the two ios that you mentioned

    3640 (routers) : c3640-ik9o3s-mz.124-17a.bin
    3725 (switches) : c3725-adventerprisek9-mz.124-17a.bin

    Can you give me the link where i can download these two ios.please.

    Thanks for inspiring us especially who dont have the power to buy lab equipments.

  9. You must have a support contract in order to download IOS.
    Of course, you can always search around at the usual places...

  10. Hi Tassos,

    Thanks for your reply, I already searched the internet but i cannot find those two ios that you mentioned. Please can you upload it? i really need those IOS.Please..


  11. Sorry, but IOS software is copyrighted by Cisco, so uploading them for free (without permission from Cisco) is not allowed.

  12. gosh I'm so glad i found this blogsite...

    i'm a little bit new to cisco and i'll be taking my CCNA this jan. 2010.. i hope that i could be like you someday.. a CCIE.

    from now on, this site will be listed as one of my references.. thanks! =)

    electronics engineer

  13. hi

    i am having trouble finding the ios versions mentioned above:


    can someone direct me to where i might obtain them?



Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States License.
Creative Commons License
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Greece License.