2012/04/04

CISCO IOU

Declare:
- Ubuntu 11.10 "Oneiric Ocelot" i386
- pre-downloaded IOU source.
- pre-given iougen.
- THIS SOFTWARE IS SECRETLY DEVELOPED BY CISCO FOR ACADEMIC USE, AND UNTIL THIS BLOG IS WRITTEN, IT IS HIGHLY PROHIBITED FOR PUBLIC USE!
- WRITER GOT THIS SYSTEM FROM TRUSTED BUT UNWILLINGLY TO BE KNOWN SOURCE, SO PLEASE DON'T ASK FOR COPY OF IOU OR CONTACT THE SOURCE.

I. Installing

1. Assume IOU was on
/home/user/Downloads/

2. Create a container for all IOU sources:
user@nb:~$ cd /opt/
user@nb:/opt$ sudo mkdir /iou
/*enter root password
user@nb:/opt$ cd iou
user@nb:/opt/iou$

3. Copy downloaded IOU files into the container:
user@nb:/opt/iou$ sudo cp /home/user/Downloads/i86bi_linux* ./
user@nb:/opt/iou$ sudo cp /home/user/Downloads/wrapper-linux ./
user@nb:/opt/iou$ ls
i86bi_linux-adventerprisek9-ms i86bi_linux-tpgen+ipbase-ms.PAGENT.4.7.0
i86bi_linux-ipbase-ms wrapper-linux
i86bi_linuxl2-upk9-ms
/*make executable!
user@nb:/opt/iou$ sudo chmod a+x *


4. Create Link files:
4a. Dependencies:
user@nb:/opt/iou$ cd /usr/lib
user@nb:/usr/lib$
/*download and install libssl0.9.8
user@nb:/usr/lib$ sudo apt-get install libssl0.9.8
user@nb:/usr/lib$ sudo ln -s ./libcrypto.so.0.9.8 ./libcrypto.so.4

4b. Create shortcut for all IOU files to be executable anywhere:
user@nb:/usr/lib$ cd /sbin
user@nb:/sbin$ sudo ln -s /opt/iou/i86bi_linux-adventerprisek9-ms ./i86bi_linux-adventerprisek9-ms
user@nb:/sbin$ sudo ln -s /opt/iou/i86bi_linux-tpgen+ipbase-ms.PAGENT.4.7.0 ./i86bi_linux-tpgen+ipbase-ms.PAGENT.4.7.0
user@nb:/sbin$ sudo ln -s /opt/iou/i86bi_linux-ipbase-ms ./i86bi_linux-ipbase-ms
user@nb:/sbin$ sudo ln -s /opt/iou/i86bi_linuxl2-upk9-ms ./i86bi_linuxl2-upk9-ms
user@nb:/sbin$ sudo ln -s /opt/iou/wrapper-linux ./wrapper-linux


5. Create License file
user@nb:~$ gedit /home/user/.iourc
[license]
nb = 16digitlicensecode;


6. Re-route xml.cisco.com
user@nb:~$ sudo gedit /etc/hosts
127.0.0.1 xml.cisco.com


7. Create lab folder:
user@nb:~$ mkdir /home/user/ioulab/


II. Preparation

CISCO IOU works on scripts.
There're 2 main scripts which should exists to run IOU; NETMAP & ioustart.

define & create NETMAP.

i86bi_linux-adventerprisek9-ms -e #e -s #s #r
#e = amount of desired ethernet interface.
#s = amount of desired serial interface.
#r = router ID.
1 set = 4 interfaces.

e.q.
i86bi_linux-adventerprisek9-ms -e 1 -s 2 100
means:
I'm building a router using virtual IOS 'i86bi_linux-adventerprisek9-ms' which ID 100, with 4 ethernet and 8 serial interfaces attached.

if there's un-defined interfaces sets, it will be assumed that you're building 2 (two) sets of interface.
e.q.
i86bi_linux-adventerprisek9-ms 100
means:
I'm building a router using virtual IOS 'i86bi_linux-adventerprisek9-ms' which ID 100, with 8 ethernet and 8 serial interfaces attached.

Serial interfaces will be build after Ethernet Interfaces.

buidling topology:
a. assume all routers using default configuration (2 sets of interface)
b. topology will connect:
b.1. e0/0 R1 to e0/0 R2
b.2. e0/1 R1 to e0/0 R3
b.3. e0/2 R2 to e0/1 R3
c. #r for R1 is 100; #r for R2 is 200; #r for R3 is 300

NETFILE would be:
100:0/0 200:0/0
100:0/1 300:0/0
200:0/1 300:0/1

remember that serial interfaces would create after ethernet interfaces, if I'm building 1 set of ethernet an 2 sets of serial, so the interfaces I have were:
et0/0; et0/1; et0/2; et0/3; s1/0; s1/1; s1/2; s1/3; s2/0; s2/1; s2/2; s2/3

Define & create ioustart script.

- ioustart is a script to run numbers of routers in 1 execution.
- ioustart script should be an executable file.
- ioustart should use wrapper-linux to recall all IOU files.

ioustart

wrapper-linux -m imagefilename -p portnumber -- -e #e -s #s -c startupfiles #r &
wrapper-linux -m imagefilename -p portnumber -- -e #e -s #s -c startupfiles #r &
wrapper-linux -m imagefilename -p portnumber -- -e #e -s #s -c startupfiles #r &

-m = image file to be used ~> followed by the image file name.
-p = port number, the image would took-place.
-e = sets of ethernet interfaces.
-s = sets of serial interfaces.
-c = startup files (if any)
#r = router ID
& = /*syntax

e.q.
wrapper-linux -m i86bi_linux-adventerprisek9-ms -p 2100 -- -e 0 -s 2 -c generic 100 &
wrapper-linux -m i86bi_linux-adventerprisek9-ms -p 2200 -- -e 0 -s 1 -c generic 200 &
wrapper-linux -m i86bi_linux-adventerprisek9-ms -p 2300 -- -e 0 -s 1 -c generic 300 &


starting the lab
user@nb:~$ cd /home/user/ioulab/ioustart

...
...
...



quitting the lab
/* view the latest application ports in use
user@nb:~$ top
1108 root 20 0 160m 93m 14m R 17 3.4 14:12.22 Xorg
3103 user 20 0 72908 19m 14m R 17 0.7 9:33.26 gnome-system-mo
5158 user 20 0 132m 108m 77m S 7 3.9 0:01.77 i86bi_linux-adv
4862 user 20 0 205m 104m 32m S 6 3.8 6:03.75 compiz
5165 user 20 0 132m 107m 77m S 5 3.9 0:01.78 i86bi_linux-adv
5157 user 20 0 132m 108m 77m S 4 3.9 0:01.80 i86bi_linux-adv
4801 user 20 0 74740 14m 10m S 3 0.5 0:01.50 gnome-terminal
5129 root 20 0 0 0 0 S 1 0.0 0:00.90 kworker/0:1

user@nb:~$ kill IOU 5165
user@nb:~$ kill IOU 5158
user@nb:~$ kill IOU 5157



Good Luck!