From the Cisco IOU FAQ page:
Cisco IOS on UNIX (IOU) is a fully working version of IOS that runs as a user mode UNIX (Solaris) process. IOU is built as a native Solaris image and run just like any other program. IOU supports all platform independent protocols and features.
Many of you are already making use of Cisco IOU in your certification studies. What you might not have been able to do is connect those “virtual” routers to your physical network to interact with real devices… but now you can.
I am aware of at least two people who have managed to figure out how Cisco’s own IOUlive software encapsulates the data traffic from IOU and written their own replacements for IOUlive, which has never been made available (as far as I’m aware).
I’ve mentioned both of them, iou2net and IOUlive86, previously in the IOU FAQ.
iou2net is a Perl script written by “einval” shortly after IOU became available on the Internet. Many of us have used it and it works quite well. I did run into some minor issues when using it with the L2IOU images (due to the way MAC addresses are generated), but the fix for that was quite simple and einval incorporated that back into his code.
IOUlive86 is another replacement for IOUlive. Unlike iou2net, IOUlive86 is written in C and, thus, could potentially run much faster and handle much more throughput than iou2net. A binary executable of IOUlive86 was linked to by the author (who wishes to remain anonymous) here in the comments on Evil Routers a while back but, unfortunately, he had lost the source code by that time.
As some of you probably know (if it isn’t evident by my @gnu.org e-mail address), I’m a big fan of open-source software. The authors of both IOUlive replacements obviously agreed to share their work and make it available for anyone.
Luckily, the author of IOUlive86 recently found a copy of his source code while going through some backup disks and sent that along to me.
Two git repositories have been created on Github to host the code for these applications.
The source code for iou2net was taken from the iou2net Internetwork Pro wiki page where it was first posted (after the author agreed that Github would be a better home for it). I’ve went back and grabbed all the previous versions and incorporated all of those into the git repo. iou2net, being written in Perl, doesn’t require any development tools to be installed in order to compile it, although the wiki page does list some dependencies that you’ll need to meet (Perl modules, mostly).
I did make a few changes to the IOUlive86 source code:
- I removed any references to the author’s identity (by request)
- Two minor changes to suppress a couple of warnings at compile-time
In addition, I created a makefile to ease compilation (simply run “make” in the directory to build it) and I also built a (64-bit) statically linked executable for those who don’t have — or are unable to install — the necessary development tools (it’s available in the bin/ directory) on their system.
The preferred way to obtain the source is using git, which you may need to install on your system. Usually, this is as simple as running sudo apt-get install git or sudo yum install git. You can then clone either or both of the git repositories:
$ git clone https://email@example.com/jlgaddis/iou2net.git $ git clone https://firstname.lastname@example.org/jlgaddis/ioulive86.git
Otherwise, you can use the “ZIP” link on each repository’s page to download a single zip file containing all the files.
If you happen to come across any issues with either application, please report them in the “Issues” section of each repository on Github: issues w/ iou2net, issues w/ IOUlive86. This will allow everyone to see them, including the authors (who may be in a better position to fix some of them than I).
Now, go grab the source code and get your IOU instances talking to your physical network!
NOTE: The Cisco IOU FAQ includes information on what you need to include in your NETMAP file in order for either of these applications to work.