In the months since Cisco IOU leaked out, many people have began using it for study purposes instead of or in addition to dynamips. One advantage that dynamips has over IOU is the ability to communicate with a physical network which comes in handy sometimes, like when you want to do pointless things like dumping full BGP routing tables into dynamips.
Cisco IOU has similar functionality, although it requires another binary executable called IOUlive. Unfortunately, like IOU itself, it’s not available to the general public and getting ahold of it isn’t easy. I did manage to acquire a Solaris version which I used to create an example IOU topology but I haven’t yet gotten my hands on an official Linux version.
Fortunately, I don’t need to.
Others have reverse engineered IOU and figured out how to achieve the same result. iou2net.pl is a Perl script that provides the same functionality as IOUlive. I’ve been using it while writing some lab exercises for Free CCNA Labs and it works wonderfully.
I did have problems with it at first, as it wasn’t correctly computing the MAC address of my IOU router’s Ethernet interface (due, I believe, to the fact that I’m using an IOU 15.1(4) image instead of the 12.4 version that everyone else seems to use). I hacked around on the Perl script and added the ability to explicitly specify the MAC address as a command-line parameter and then it worked great. That functionality has now been added into version 0.5 of the iou2net.pl script itself, in case you run into that same issue.
For those interested, you can check out the topology that I’m using on the Free CCNA Labs Topology page. The corresponding NETMAP file, including the instance for iou2net.pl, looks like this:
/* http://freeccnalabs.com/resources/topology/ */ /* Router to frame-relay switch links */ 101:1/0 199:1/3 102:1/0 199:0/2 103:1/0 199:0/3 104:1/0 199:0/0 105:1/0 199:0/1 /* Router to router serial links */ 101:1/1 102:1/1 102:1/2 103:1/2 104:1/1 105:1/1 104:1/2 105:1/2 /* Router to switch ethernet links */ 101:0/2 111:0/2 102:0/1 111:0/1 102:0/2 112:0/2 103:0/1 112:0/1 104:0/3 111:0/3 105:0/3 112:0/3 /* Switch to switch ethernet link */ 111:0/0 112:0/0 /* Used by iou2net.pl to bridge PHOENIX e0/0 to physical network */ 101:0/0@chaos 100:0/0@chaos
Not shown in the topology diagram is the connection to the physical network, which uses the Ethernet 0/0 interface on the PHOENIX router. You’ll need to change the hostname on the last line of the NETMAP file (“chaos”, in my case) to accurately reflect the hostname of the machine you’re running IOU on.
In addition, I have a shell script that I use to start up the IOU instances and the iou2net.pl script:
#!/bin/sh IOURC=/home/jlgaddis/.iourc IOU2NET=/home/jlgaddis/iou/iou2net.pl IOU2NET_ID=100 IOU2NET_IF=eth0 L2IOU=/home/jlgaddis/iou/i86bi_linuxl2-upk9-ms.M L3IOU=/home/jlgaddis/iou/i86bi_linux-adventerprisek9_ivs-ms.151-4.M NETMAP=/home/jlgaddis/iou/freeccnalabs/NETMAP WRAPPER=/home/jlgaddis/iou/wrapper # Start the frame-relay switch $WRAPPER -m $L3IOU -p 50199 -- -e0 -s2 199 -c $NETMAP & # FRSW sleep 2 # Start the routers $WRAPPER -m $L3IOU -p 50101 -- -e1 -s1 101 -c $NETMAP & # PHOENIX sleep 2 $WRAPPER -m $L3IOU -p 50102 -- -e1 -s1 102 -c $NETMAP & # DALLAS sleep 2 $WRAPPER -m $L3IOU -p 50103 -- -e1 -s1 103 -c $NETMAP & # MIAMI sleep 2 $WRAPPER -m $L3IOU -p 50104 -- -e1 -s1 104 -c $NETMAP & # CHICAGO sleep 2 $WRAPPER -m $L3IOU -p 50105 -- -e1 -s1 105 -c $NETMAP & # NEW YORK sleep 2 # Start the switches $WRAPPER -m $L2IOU -p 50111 -- -e1 -s0 111 -c $NETMAP & # SW1 sleep 2 $WRAPPER -m $L2IOU -p 50112 -- -e1 -s0 112 -c $NETMAP & # SW2 sleep 2 # Start iou2net.pl instance sudo $IOU2NET -i $IOU2NET_IF -n $NETMAP -p $IOU2NET_ID -v -m 02:03:e8:00:65:00
Obviously, you’ll want to change the variables at the beginning of the script as appropriate. You’ll probably also need to modify (or remove) the MAC address that’s passed to the iou2net.pl script.





{ 9 comments… read them below or add one }
would u please share latest solaris version IOU
Anybody wishing to play with a true IOUlive clone for Linux can download it here:
http://204.11.120.212/ioulive.zip
Enjoy!
what is this file type? what i suppose to do with this file??please reply
1. Copy it to your Linux machine where you have your IOU files.
2. Unzip it.
3. Change file attribs to make it executable: chmod a+rx ioulive
4. Run it to see how it’s used: ./ioulive
5. Have fun!
Hi,Grim
Could you please share the source code of ioulive.
Hey bzzjh,
I found my source code and have already sent it to Jeremy to make available, but Mr. Gaddis is busier than a one-legged man in an ass-kicking competition! I’m sure he’ll post it when he gets some free time.
Grimm
Hi,Grim
My e-mail address is [bzzjh at hotmail dot com],could you sent it to me ,thanks very much.
I found the ioulive of cisco version can not bridge to network card(IOU interface only get ip address from DHCP server,no ping,on telnet,etc.),I test your ioulive version on linux box,it work well.I want to compile on my solaris(Sparc) host.Thanks a lot.
BR,
Bzzjh
Very cool! I fired iou2net up with an IOU router and the router immediately started barking about a CDP duplex mismatch with the switch the host is attached to. Thanks!
Hey how to make it work ? because when i try to run L3 an L3 image i have an issue with licence key even i have both licence key in iourc file .
{ 1 trackback }