Saturday, April 30, 2011

IOU Lab Topology #1

Some time ago Cisco's IOU was leaked out to the web.  I was able to get a copy (don't ask where, I won't help you) and have managed to get it set up on a spare box at home.  There are a couple of really good tutorials on the Web that explain how to get it set up and working and how to build a lab topology.  I've built two topologies so far that I use to lab things up when needed, and I'd like to share the first with you now.

To create a topology in IOU you define how devices connect to each other via a NETMAP file.  If you want more details on how to build a NETMAP file you can head over to Google and search for it.

Here's a diagram I did up for this topology,  Note that the addressing is my own and that you are free to use anything you configure yourself.  Since I'm not providing any base device configs you are on your own here.

The corresponding NETMAP file looks like so:
1:0/0@server 2:1/0@server
1:0/1@server 2:1/1@server
2:0/0@server 3:0/0@server 4:0/0@server
3:0/1@server 5:0/1@server
3:0/2@server 6:0/2@server
4:0/1@server 6:0/1@server
4:0/2@server 5:0/2@server
5:1/0@server 7:0/0@server
6:1/0@server 7:0/1@server
I don't actually use this topology very much.  I built another that is far better suited to my requirements and I'll be posting that one shortly in a follow up post.

If you like this and use it let me know.  I'd love to hear about it.

If you liked this topology see my IOU topology #2


  1. Can you load initial configs like dynamips into IOU?

  2. Correction on that. If you look at the help there's a switch to load a config file when you start the router. It's -c.

    j@weintraub ~/ipex_iou $ ./i86bi_linux-adventerprisek9-ms
    IOS On Unix - Cisco Systems confidential, internal use only
    Under no circumstances is this software to be provided to any
    non Cisco staff or customers. To do so is likely to result
    in disciplinary action. Please refer to the IOU Usage policy at for more information.
    Missing application ID

    Usage: [options]
    : unix-js-m | unix-is-m | unix-i-m | ...
    : instance identifier (0 < id <= 1024)
    -e Number of Ethernet interfaces (default 2)
    -s Number of Serial interfaces (default 2)
    -n Size of nvram in Kb (default 16KB)
    -b IOS debug string
    -c Configuration file name
    -d Generate debug information
    -t Netio message trace
    -q Suppress informational messages
    -h Display this help
    -C Turn off use of host clock
    -m Megabytes of router memory (default 128MB)
    -L Disable local console, use remote console
    -u UDP port base for distributed networks
    -R Ignore options from the IOURC file
    -U Disable unix: file system location
    -W Disable watchdog timer
    -N Ignore the NETMAP file

  3. Hi Buddy
    I need your help to learn how to create our own network topology , if you could possibly agree to help its my pleasure to hear from you

  4. Everything you need to learn is above. It's just a matter of creating a NETMAP file. Using this, and the two other examples on the blog I'm sure you can figure it out. :)

  5. hey how do you differentiate between a router and a switch in the IOU NETMAP file?

  6. You don't. It's irrelevant really. The NETMAP only describes which interfaces connect to which interfaces for specific IOU instances. Which IOU image you start up for that instance determines if it's a "switch" or a "router".

    This topology doesn't use L2IOU, but if you look at my IPexpert IOU topology you will see that I've used L2IOU for some devices, and IOU for others.