Getting Started Part 5: Your Third Option for CLI: Dynamips

A Free Option to Build CLI Skills

Imagine a lab pod with 4-5 routers, connected with serial links, Frame Relay, and Ethernet. It has PCs for testing with ping and traceroute. Now think of the cost: $0.00. And it takes no more electricity, and makes non more noise, than running your PC or Mac. Welcome to world of Dynamips, the third leg of the choice of how to get experience with Cisco's Command Line Interface (CLI) for CCNA. Today I'll hit the highlights of what Dynamips is, and pros and cons with using it, and get us close to the end of this series.

Dynamips Defined

Dynamips is software that you can download for free and run on your favorite desktop OS (Windows, Linux, and/or Mac). That software emulates router hardware, so that you can run the real Cisco IOS on your PC. To run that pod with 4-5 routers, you run Dynamips on your PC or Mac, create 4-5 virtual routers inside Dynamips, connect them virtually with various links (serial, Frame Relay, Ethernet), and you have a virtual lab pod.

When using Dynamips, your computer desktop still has the usual windows open - email, web browser, etc. Then you also use a terminal emulator, just like you would with real gear, and terminal emulator communicates with the console of each virtual router.

To make this work, Dynamips run on the PC or Mac, and then IOS runs on top of Dynamips. That mens when you use a terminal emulator - you can use the same ones you would use to communicate with real Cisco routers - you are talking to the CLI as created by IOS. That's one of the biggest positives about Dynamips, and ironically, one of the biggest negatives.

Note that the term Dynamips refers to a very specific software package, but several related software packages can be used with Dynamips as well. The most popularly known related software is called GNS3; this software adds a graphical front-end to the text-based Dynamips. For our purposes, when I write "Dynamips" here in this blog post, I'm referring to Dynamips itself plus all the related tools and software. Use the following links to learn more:

Dynamips proper

Dynagen

GNS3

Hacki's Forum

IOS 101, in Context

To use Dynamips, you need IOS. In keeping with my goal in this series to make this usable for newbies to Cisco, let me introduce IOS a bit more.

IOS exists as a single file. To install a new version of IOS on a real Cisco router, you download 1 file from cisco.com, copy it into permanent (flash) memory in the router, do a simple command or two that boil down to an instruction like "router: use this new IOS", and reboot the router. You just upgraded to a new version of IOS by using this new IOS file you downloaded.

While an IOS exists as one file, there are many IOS files in the world. Different model series of routers require different IOS files (called IOS images). Different versions and releases of IOS each require a different IOS image, for each model series of router. Also, Cisco makes some IOS images with more functions, some with less, for more or less cash, so that customers can pay only for what functions they need. So while one single IOS image contains the entire IOS, there are many choices as to which single IOS image to use, based on model, version, maintenance release, and features.

To study by using Dynamips, you need to get your hands on at least one IOS file, for a model of router supported by Dynamips. To get an IOS file, you can:

1.     Buy a Cisco router, new or used, that comes with an IOS, and copy it from the router onto your PC (easily done).

2.     If your Cisco.com account gives you right to download IOS images, download from there

3.     Google, a look for people who have posted IOS images online

Once you have an IOS in hand, one that works with Dynamips, you have enough of the pieces to get started learning Dynamips.

Dynamips and IOS - the Good

The good part about Dynamips using IOS is that the CLI is real. The IOS image (version, release, feature sets) defines what commands are supported, the parameters, and so on. So, the major drawback of Simulators - the fact that the command support may not be exactly like IOS - is removed from the equation. If the IOS you use in Dynamips supports a command or parameter when running on real gear, it will support the command on Dynamips. (The underlying function may not work in some cases, but the command syntax can be checked.)

Dynamips and IOS - the Bad

How would Dynamips and its use of IOS be bad? Two issues. First, the simple mechanics of getting your hands on an IOS image or three can be a challenge. If you cannot use option 1 above, because you do not have a job that gives you access to download IOS images from Cisco, you have to buy used gear just to grab the IOS, or Google the world for images. Also, note that in most cases, you need to experiment with different IOS images to get Dynamips to work well on your PC - so it's not so easy as getting one image, and knowing that it'll work. You'll need to experiment a little.

The other issue is that running IOS on Dynamips breaks Cisco's IOS license agreement. At least, that's my understanding. As you might guess, I'm no lawyer, and certainly I'm not a spokesperson for Cisco. Cisco's license agreement for IOS grants the person who bought the new or authorized refurbished router the right to run IOS. Technically, if some buys authorized hardware from Cisco, and then later sells that router on the street, on EBay, etc, the IOS license does not follow. If you Google, find, and download an IOS from anywhere on the net, it's not licensed. If you copy an IOS from a router at work, and that router IOS is licensed, and then run that IOS image under Dynamips, again you have broken Cisco's license agreement.

That said, lots of people run IOS under Dynamips. I am not here to judge the ethics of the choice; I'm just letting you know about the issues. If/when you get interested in Dynamips, I encourage you to check out discussions about it anywhere online, but particularly on the Cisco Learning Network (CLN).

Outside the Box on the IOS Issue

Before leaving the whole IOS licensing issue, I wanted to toss out a couple of perspectives on the idea of making IOS legal for learning purposes, e.g., with Dynamips. I asked Greg Ferro, author of the popular Etherealmind blog, his thoughts. Greg has made efforts in the past to get a petition going asking Cisco to let us use IOS legally for learning purposes. I asked Greg for a quick quote, and a link to the petition, which he recently re-issued. Here's the quote, and the petition:

http://etherealmind.com/cisco-ios-petition-reloaded/

When John Chambers gave the keynote at Cisco Live, he spoke with passion about Cisco's commitment to learning and the power of Cisco Networking Academy. And yet, Cisco doesn't provide a workable solution for us to practice, to study, to test our configurations. Building and maintaining test environments has been hugely successful in helping people achieve study goals and learn advanced technology. This has led to engineers using more features, getting more value, more innovation from Cisco products. By refusing to help us, Cisco is seriously impacting their long-term goals for helping customers achieve value, and impeding learning goals. 

I think Greg's statement is fair in how it reflects the attitudes that anyone of us can read in comments in various online forums. I believe that Cisco is listening, and I think that signing the petition can make a difference.

On the other side, I asked the folks of Learning@Cisco, the group inside Cisco that owns the Cisco certifications, about this issue. I asked them at Cisco Live (tradeshow) last June, and they said something to the effect that they have considered it in the past, and continue to consider it, but no specific solution was implied or forthcoming. There was a lot of space to read between the lines in that particular part of the conversation, but my impression was that the possibility of legit IOS for Dynamips wasn't completely dead. You can go here to see the whole post if interested.

So, I asked last week if there was any change in that answer since last June, and the answer is...no. So we wait, and we hope, and while we wait, many of us use IOS with Dynamips anyway. I'm sure I'll ask again when I see the Learning@Cisco crew at Networkers Vegas in July.

Now that I've hit the most important parts of the Dynamips story, let me give you a broader look at this option compared to real gear and Simulators.

Dynamips - Pros

To wrap this up, I'm going to summarize some of the rest of the reasons, and ask you experienced folks to chime in as to what resonates with you.

  • It's free.
  • It runs router IOS
  • It supports all commands that the IOS itself supports
  • It uses less electricity than real gear
  • It's free
  • There are great communities of others that work with it, so you can get help
  • It's free. It's a difficult point to overemphasize!

Dynamips - Cons

  • It breaks Cisco's license agreement
  • Getting IOS images can be a challenge
  • It requires a learning curve - it can take some time to learn to the point of being comfortable and focused on learning
  • It requires time/effort to make it perform on your existing hardware (it can chew up your CPU; requires tuning)
  • It supports generic switches, but not Cisco switches, so you'll need to get a real switch or two to practice switch commands
  • For CCNA candidates, you may not know enough to troubleshoot problems, because your mistake, or IOS, or Dynamips itself may cause a problem.

Summary - which Choice is Right for Me?

So, why go for real, versus Sims, versus Dynamips? Let me end with a ramble as to why you might consider one or the other.

If you plan to go no further than CCENT, or CCNA, then Sims give a good compromise of total price, time invested, and enough skills to pass.

If you plan to end up with a CCIE, start building your real lab, and start building Dynamips skills after you are halfway to CCNA. Maybe buy a switch or two, practice CLI, maybe one old real router, and then start getting into Dynamips, and cutting your teeth there.

If you already have a job or other conduit to choose IOS images to grab, and the license issue doesn't bug you, then you should try Dynamips.

If you think you'll go somewhere past CCNA at least, then getting some used gear can be a big help, to learn all those intangibles.

If you sit there and still can't decide, but you have $50: buy one 2501 router and a console cable. You can at least play with the CLI from there, even though you can't connect it to anything else without more. You could add an external Ethernet transceiver, which is required with that model of router to connect to an Ethernet, and connect it to your LAN at home. Then you could experiment with managing configs, copying IOS images, and you can configure lots of administrative settings. That may give you enough to get more comfortable. Or go for a CCENT Simulator, often times less than $100 retail, and get more experience there before spending more $.

Related Posts:

So You Want to Get STarted in Cisco Certs - Now What?

Getting Started Part 2: Primary CCNA Study Source

Getting Started, Part 3: What and Why on the Cisco CLI

Getting Started, Part 4: Simulators vs Real Gear for CLI Skills

What to Consider After PAssing CCNA

Join the Network World communities on Facebook and LinkedIn to comment on topics that are top of mind.

Copyright © 2011 IDG Communications, Inc.

SD-WAN buyers guide: Key questions to ask vendors (and yourself)