Cisco CSR1000V vs the Fabled IOU

CSR1000v Icon

While I love hardware, I really don’t like the space it takes up in my house, nor the noise it makes (rather ironic given the noise levels emanating from my network closet, but still…). To that end I’m a big fan of solutions like GNS3 that allow me to virtualize my environment and build out simulations without needing to fumble with a bunch of Cat5 cables to build my desired connectivity.

And so I really enjoyed when today Jeff Fry published a post called Cisco CSR1000V Home Lab Setup and Configuration. This is a great post (please do click through and read it) explaining how to get, and install, some instances of the Cisco Cloud Services Router (CSR1000V).

I was a little surprised though because last time I checked out the CSR1000V it simply didn’t look like something practical to run at home. So what changed?

System Requirements

Last time I checked the CSR1000V requirements, this is what they were:

CSR1000V v3.09 Requirements

As you can imagine, with a requirement for 4 vCPUs, my reaction was that this was absolutely not something I would want to deploy at home as it’s just not scalable to have more than one VM running like that. At least, in my environment I don’t have CPUs to throw at stuff just for fun. Then I considered how much this was likely to cost as well, so I noted the product and put it our of my mind as something I could run.

The decision to shelve the CSR1000v as a home use product turns out to have been somewhat hasty as in the next release (3.10), the requirements were reduced:

CSR1000V 3.10 Requirements

And 3.11 continued the same way:

CSR1000V 3.11 Requirements

That’s a bit more like it. Instead of four vCPUs I now only need one vCPU, and the RAM requirement has gone down to 2.5GB. That I can handle much more easily, and in fact I can run a few of those at the same time without killing my VMware server.

The CSR1000V

The CSR1000v runs IOS XE and specifically, it runs one instance per VM.

CSR1#sh ver
Cisco IOS XE Software, Version 03.11.00.S - Standard Support Release
Cisco IOS Software, CSR1000V Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 15.4(1)S, RELEASE SOFTWARE (fc2)
Technical Support:
Copyright (c) 1986-2013 by Cisco Systems, Inc.
Compiled Tue 19-Nov-13 21:00 by mcpre

That’s not a terribly onerous requirement by any means, but it does mean that for each router I want to run, I need to have 1 vCPU and 2.5GB of RAM. In particular, that seems like an awful lot of memory to soak up, especially when you think back to how little RAM Cisco routers have typically come with over the years.


To my surprise, just as Jeff said, I was able to download a copy of the CSR1000V OVA image without anything other than accepting the licensing terms. I’m not using it for business, just for my lab, so it’s nice to be able to grab a copy like that. I keep wondering if that’s a mistake, or if they know that the 1 vCPU version is so powerless that it simply can’t do anything useful on its own, so it’s safe to download. I haven’t dug around much to find out; I was just pleased that I could download it and install without having to hand over a fat wad of cash.

Home Lab

With the help of Jeff’s excellent guide I was able to get three CSR1000V instances up and running and talking to each other. Excellent – but it’s only three hosts, and it’s a lot of resources to eat up per host. It’s almost like the CSR1000V is not optimized for lab use?


IOS On Unix (IOU) is an internal Cisco tool to simulate an IOS router or switching IOS. It’s not supposed to be available outside Cisco, so of course I wouldn’t know anything about it, but IOU does seems to be out there to some extent. What’s brilliant about IOU is that rather than needing a VM per router, each router is its own process; you want a new router, you run another instance of the router code. Because IOU isn’t actually emulating a router (like GNS3) it’s incredibly CPU and memory efficient; idle time in IOS is idle time for the app, which means idle time for the host operating system. What this means is that it’s possibly to run a large number of router/switch instances on a single machine with quite limited resources. For example, I’ve seen a simulation with 30 devices running in under 2GB of RAM on a dual-core mobile CPU. That’s pretty impressive to say the least. For the same rough specification of compute resources you can either run one CSR1000V router instance or you could run 30 routers.


This is the problem; you can’t license IOU because it’s not supposed to be available outside Cisco. I sincerely wish that Cisco would make IOU available for home lab use. Cripple throughput if you need to, but please make it available to the public. This is such a hugely valuable learning tool, I don’t know why it’s not made available by Cisco.

Home Lab

Yeah. This would totally rock as a home lab, if it were available. It’s resource-efficient and very effective. It’s not the easiest to configure connectivity between the simulated devices, but once you get the hang of it, it’s not so bad. $100 and I’d buy it in a heartbeat.


GNS3 rocks, but because it emulates the router hardware, it’s a lot tougher on CPU than IOU is. On the other hand, you can still simulate a large number of devices with 2 CPUs and 2.5GB of RAM (compared to CSR1000V).

Cisco’s Packet Tracer is available to Network Academy students only. It serves a slightly different purpose than other tools, and offers some interesting packet tracing capabilities, but otherwise like IOU it’s not much use unless you have access to it.

Cisco’s VIRL is scheduled to be launched shortly, and looks to be like Packet Tracer on the front end with IOU (or something conceptually similar) on the back end. I gather it can simulate IOS (using “VIOS”“), Nexus (”Titanium“) and IOS-XR (”XRVR”). This is something I’m really interested in, and those who have seen it indicate that it’s looking really good, but whether it’s going to be a viable home lab tool is going to come down to pricing.

Final Thoughts

It’s worth playing with the CSR1000V just to try it, and Jeff’s post is a great guide to setting it up. Whether I keep those images running is another question; maybe I’ll just spin up the VMs when I need to run a simulation and then kill them off, because it’s a lot of resources to eat up. Or maybe I’ll just create a VM and hope I can run IOU on it some time. Either way, the chance to try this out is not to be sniffed at, especially if you don’t have access to alternative tools. Give it a shot!

2 Comments on Cisco CSR1000V vs the Fabled IOU

  1. Nice post. I am the creator of GNS3 and I just wanted to let you know that the new GNS3 will support IOU, making it very easy to connect with “classic IOS” and other IOUs, VMs etc. Our first alpha release is scheduled for next week. In the meantime in invite you to watch this video ( that shows what the IOU integration looks like, please keep in mind the software is still in a early stage (alpha).


    • Exciting stuff! Thanks for the heads up on this. I’d very much like to be able to use GNS3 with IOU, so that would be a huge win. Good luck with the release, and thanks again!

Leave a Reply

Your email address will not be published.


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