This was sent in. Got lots more flexibility and more easily adapted for changes in your IOU image (if there are ever any). Comments are my own (hopefully they are accurate).
#!/bin/sh
#where are your IOU files
BINDIR="~"
#where is the wrapper-linux file
WRAPPER="${BINDIR}wrapper-linux"
#name of the IOU image ?
IMAGE="${BINDIR}i86bi_linux-adventerprisek9-ms"
#filename of image for end points / hosts IOU image
SIMAGE="${BINDIR}i86bi_linux-ipvoice_ivs-ms"
#name of the L2 IOU (switching) image.
L2IMAGE="${BINDIR}i86bi_linuxl2-upk9-ms"
SMEMORY="-m 116"
MEMORY="-m 192"
L2MEMORY="-m 96"
#how many 4 port ethernet port modules ?
INTE="-e 1"
#how many 4 port serial modules ?
INTS="-s 0"
#L2IOU ethernet ports
L2INTE="-e 2"
#L2IOU
L2INTS="-s 0"
#DLS
$WRAPPER -m $L2IMAGE -p 2011 -- $L2MEMORY $L2INTE $L2INTS 11 &
echo $! > pid/IOL11.pid
$WRAPPER -m $L2IMAGE -p 2012 -- $L2MEMORY $L2INTE $L2INTS 12 &
echo $! > pid/IOL12.pid
#ALS
$WRAPPER -m $L2IMAGE -p 2021 -- $L2MEMORY $L2INTE $L2INTS 21 &
echo $! > pid/IOL21.pid
$WRAPPER -m $L2IMAGE -p 2022 -- $L2MEMORY $L2INTE $L2INTS 22 &
echo $! > pid/IOL22.pid
#Hosts
$WRAPPER -m $SIMAGE -p 2041 -- $SMEMORY $INTE $INTS 41 &
echo $! > pid/IOL41.pid
$WRAPPER -m $SIMAGE -p 2042 -- $SMEMORY $INTE $INTS 42 &
echo $! > pid/IOL42.pid
$WRAPPER -m $SIMAGE -p 2043 -- $SMEMORY $INTE $INTS 43 &
echo $! > pid/IOL43.pid
$WRAPPER -m $SIMAGE -p 2044 -- $SMEMORY $INTE $INTS 44 &
echo $! > pid/IOL44.pid
Matching Kill Script
#! /bin/sh
#killab.sh
PIDFILES=pid/*.pid
for i in ${PIDFILES}; do
kill `cat $i`;
rm $i;
done
Other posts in the series
- Cisco IOU:Connect IOU with real or external networks
- Cisco IOU:Scripted Start Multiple Routing with L2IOU, memory (This post)
- Cisco IOU: What can Cisco do for Testing, Validation & the IPv6 challenge ?
- Cisco IOU: Starting Multiple Routers
- Cisco IOU: Shutting down the IOU Processes


Hi,
How can i find the L2IOU image? if anyone has a link please send it to me
Can you send me wrapper-linux utility? [email protected] Or can say packets that it have?
Are there any Significant differences in IOU and L2IOU vs real routers and switches? Specifically in MPLS, IPv6, QoS and IP Multicast?
Would IOU and L2IOU make a good replacement for real gear for ccie r/s studies? I ask this because cisco is offering virtual labs at a much cheaper cost than buying your own gear or renting time on real gear.
Thank you.
There are a number of minor differences. For example, QoS configuration depends intimately on the hardware and its different for the 3560 from an IOS router. But you could certainly achieve 95% or more of your training with IOU. I’ve heard that there are versions of the IPexpert lab configuration for IOU that work pretty well.
thanks
love the site btw, keep up the good work.
Thanks for saying so. Nice to be appreciated.
in L2IOU there is no Communication between switches, how to resolve this problem.
Hello,
I cannot make etherchannel work properly. Even though show command shows everything ok which is obviously not. Can you confirm that it is working or am I doing something wrong.
Thanks
I had the same issue…weird though….it came up as I changed the other side to LACP…then when I played a bit I never got it up again…
from what I have gathered the l2 has issues with excessive collisions, communicating with either a switch instance or a router instance. since the l2 image won’t allow a duplex change and the router image appears to be unaffected by the duplex command, as of right now, any topology with redundant links using an l2 instance is doomed. the collisions eventually will cripple the host system’s cpu.
what I mean by l2 image not allowing a duplex change is: the int level “speed” command is missing and the switch defaults to autoneg for Ethernet ints.
cpu usage on the instances should look something like this:
SW1#sh proc cpu sorted 5min
CPU utilization for five seconds: 84%/1%; one minute: 83%; five minutes: 61%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
23 129940 57590 2256 30.07% 33.27% 24.10% 0 ARP Input
33 122868 54746 2244 28.39% 33.08% 23.15% 0 ARP Snoop
80 39528 51746 763 14.31% 7.26% 6.52% 0 Ethernet
Msec Ti
R1#sh proc cpu sorted 5min
CPU utilization for five seconds: 13%/0%; one minute: 14%; five minutes: 11%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
18 71112 6005898 11 13.59% 14.09% 11.45% 0 ARP Input
1 180 12 15000 0.00% 0.00% 0.00% 0 Chunk
Manager
You can use this kill script and avoid creating redundant pid files. The format of the /tmp/netio directory is just /tmp/netio + your numeric user id:
#!/bin/shfor i in /tmp/netio`id -u`/*.lck;do kill `cat $i`; done
man that didn’t come out how I wanted it to at all, attaching an image instead.
I’ve tried some simple configurations with L2IOU switches and I’ve noticed that if I connect 3 switches in a loop the spanning three protocol works as it should, blocking one port on a switch but as soon as I do a ping from one switch to another the CPU utilization goes very high and I can see a lot of traffic on the switches’ interfaces.. I think that the ARP request loops through the “triangle topology” even if it shouldn’t… Did you experience this? The NETMAP I’ve used is very simple:
401:0/2 402:0/1
401:0/3 403:0/1
402:0/3 403:0/2
I’ve tried the following changes, but any of them solved the problem:
- force the link-type to point-to-point instead of shared (since I can not set full-duplex on the interfaces, they are seen as shared interfaces)
- set rapid-pvstp
- force another switch to become the root bridge
Any idea or possible solution?
i rebuild ioul2 with debian OS on my vmware machine ,
when
i run that i0u with 8 routers(core switch+distributed switch+access
switch) and make ACL+VLAN Lab,my lab has successed and can ping each
other.
but why sometimes i had segmentation fault on my core switch?
can u help me?
Hi all,
I have a problem with the wrapper version 1.1
When I launch my lab (about 25 switches) after one or two minutes some process crash and the wrapper print in the output “IOU 2874 exit” (2874 is the pid).
Any idea? There is a new version of the wrapper?
Thanks!
Fabio