Getting started with Cisco IOU - IOS on Unix - Part 1


Firstly the standard erratas apply - I can't give you Cisco IOU, or the images, but its up to you to find them (and it's easy to find them).

What is Cisco IOU?

Cisco IOU is a fully working Cisco IOS environment running within Linux. And its awesome.

It is intended solely for Cisco personnel, so it's a bit of a grey area as if you should use it or not.

But anyway, many do use it, and its superb, so let's learn how to use it.

I am using the IOU-Web interface made by a great guy called Andrea Dainese. You can find his page over at http://www.routereflector.com/. So check it out. Anyway he made a web interface for IOU and here is where we are going to start.

On the routereflector page are links to a VM you can run in the majority of virtualization platforms, I am running it on VirtualBox for Mac, its requirements a fairly minimal, with just 4Gb memory needed and a bridged network card. Once its fired up, head to the IP address given in the terminal window in your browser of choice.

The first thing you'll need to do is get a license. There is a very handy python script (CiscoIOUKeygen.py) that I am sure you can find, and run from the VM. Once you have license click on Manage on the menu bar and then on Manage License and paste it into the little box and click Save.

Now we need to add an image to use, I will be using an IOS 15 image I found, so again on the Manage tab, click on Manage IOSes. Firstly give it a name and an alias, then browse to the image and select it.


uploading an IOS on Cisco IOU


Then hit Upload. After a moment it will appear in the list of available images to use:

Managing an IOS on Cisco IOU


Now we are ready to start making our own environment!

Click on the Laboratories and then click on the icon for Add New Lab on the icon menu on the right hand side.

Give it a suitable name and description, you can set it as a timed lab if you want (I am leaving it as 0 to say that there is no time set), whether to display the network diagram or not and any additional information. 

Adding a lab in Cisco IOU

Next we have to design the topology of the lab and this uses a NETMAP file, I am following the example given on the routereflector page.


A NETMAP file consists of a rows and each row contains an entry for where a link starts and where a link ends and includes the device ID. So to link device 10 to device 11 on ports 0/1 on each the line would look like:


10:0/1 11:0/1


So say we wanted to have two core routers (devices 10 and 11) connected to two WAN routers (devices 12 and 13) by a hub then we could do this:


10:0/0 11:0/0 12:0/0 13:0/0 1


The 1 at the end signifies that the link type will be an IEEE 802.3 ethernet link. For a list of what you can do refer to this page: http://www.tcpdump.org/linktypes.html.


Now if we wanted to have the two WAN routers connected to three branch routers (devices 30, 32 and 34) via frame relay (device 20) we would do this:


12:1/0 20:0/0 107

13:1/0 20:0/1 107
20:0/2 30:1/0 107
20:0/3 32:1/0 107
20:1/0 34:1/0 107

The 107 specifies a Frame Relay link.


Our finished NETMAP now looks like this:


Cisco IOU netmap

Now click on Add so we can start setting up out devices. The device setup looks like this at first, with our devices set for us as per the NETMAP file. Depending on what version you are on you may or may not see an entry for the hub.

Setting devices in Cisco IOU

We start by naming our devices, and selecting the IOS for them to run, in the dropdown will be BASE-15-0, which is the alias we gave our uploaded image a little while ago. Then we can either set the RAM and NVRAM or we can take the system default.

The next two columns are important, these are how many Eth(ernet) and Ser(ial) portgroups there are. There are four ethernet ports per portgroup and four serial ports per portgroup. Ethernet portgroups are installed before serial portgroups - so a device with two ethernet portgroups and two serial portgroups will have the port layout of e0/0-3, e1/0-3, s2/0-3 and s3/0-3.


L2 keepalive is not supported on all IOSes (used to overcome the always-up ethernet interfaces) and Watchdog should be checked.


Lastly we can select an appropriate picture for the device, a boot delay if required and, if we have created one, an initial configuration that we can apply here.


The final configuration should look like this:

IOU final configuration

Once we click save we are taken to the main Laboratories tab and we can see our new lab. If we start the lab and look at the diagram we should see (after moving the devices around a bit, something like this:



Cisco IOU diagram


The devices tab will look like this:

Cisco IOU devices


So lets fire up our first router Core1 by clicking on the blue start button. The picture for Core1 should now go a nice green color on the Devices tab and blue on the diagram window. Clicking on it will open up a terminal connection to the router:
Cisco IOU device communication



So lets start by getting Core1 and Core 2 talking...

Fire up Core2 from the Devices page and open a telnet connection to it. Skip the intial dialog and set them up with IP addresses, then try and ping them... it should work!



See I told you it was awesome!

In another part of this little tutorial we'll set up the other routers on this lab and really start to see how far we can go with IOU and IOU-Web. 

Update - 15/10/2013 - Frame Relay and IOU does not seem to play well together. See more here.

CCIE #49337, author of CCNA and Beyond, BGP for Cisco Networks, MPLS for Cisco Networks, VPNs and NAT for Cisco Networks.

Related Posts

Previous
Next Post »

13 comments

comments
Anonymous
11 November 2013 at 09:03 delete

It helps a lot..
thanks for your extended support and nice blog

Reply
avatar
Anonymous
11 January 2014 at 22:49 delete

Thnks, it help me.
From last 2years i m using iou, now i come to know how to use
we iou

Reply
avatar
Anonymous
8 September 2014 at 19:33 delete

I came across your very informative Blog after buying your BGP for Cisco Networks. Is there any chance that you could do a piece on creating "Config Packs" for IOU-Web? From info here on your blog I combed the internet for what was needed to use IOU-web & its great.. I initially created two LabPack...had to leave studying for a week due to work & NOW ... I can't seem to create the Packs... when viewing what I thought would be a Lab Pack... I get a blank page.

Reply
avatar
Anonymous
4 November 2014 at 11:13 delete

I have got the same problem

Reply
avatar
Anonymous
10 March 2015 at 02:16 delete

Kindly help where to get IOS to be uploaded? Is it possible the real IOS images from cisco or images are made only for IOU? Thanks

Reply
avatar
10 March 2015 at 05:31 delete

It's pretty clear how to upload images - click on Manage, then click on manage IOSes. You can only use special IOL images, not real IOS.

Reply
avatar
23 March 2015 at 18:48 delete

Thanks for wounder full post. I have very silly question how to edit diagram means to put IP address on link.

Any comments or web link with be great help.

Reply
avatar
24 March 2015 at 07:51 delete

You can add your own pictures, including IP addresses etc, then click on the routers, and turn them into clickable objects - you just need to set the port numbers correctly... I might do a post on this.

Reply
avatar
jinu
19 February 2016 at 03:05 delete

After windows 10 installation , unable to access the IOU web.normally one IP address is found in VM page . now its not found . kindly help me to fix this

Reply
avatar
20 February 2016 at 07:50 delete

Maybe check to see if the network interface is set for bridged mode?? What hypervisor are you using? I havn't used Windows 10 myself.

Reply
avatar
Anonymous
28 February 2016 at 02:59 delete

Hi, i have iou and it shows http:/x.x.x.x/ but when i try to open the lab via browser it not opening its blank.

Any help ??

Reply
avatar
28 February 2016 at 03:21 delete

Any more information? Are you using NAT or bridged mode? Can you log into IOU using SSH? Have a look at UNetLab anyway, it's newer.

Reply
avatar
2 September 2016 at 16:03 delete

So IOU is basically an OVA that you deploy in a VM like VIRL and it has a web page that use to manage it?

Reply
avatar