How to Connect IOU to a Real Cisco Gear Using IOU Live - int2netio

Int2netio is a Cisco proprietary application also known as IOU live. It is written in C language and connects IOU routers to a real world. As it is for internal use, only Cisco employees can benefit from this application. The tutorial itself does not consider all the configuration options available for iou2netio. Instead of that it just shows necessary configuration that helps you to connect IOU running on Fedora Linux to Cisco 3550 multilayer switch.


Picture 1 - Testing Topology

1. Extract IOU live and install it

$ tar xvf int2netio-1.7.tar
$ cd ./int2netio-1.7/

$ ./configure
$ make

Note The file int2netio is created in a current directory.

Command line options

$ int2netio --help

int2netio supports the following options:
--version ; Display version information
--connect ; Connect interface
--disconnect ; Disconnect interface
--bridge=<int> ; Operate in bridge mode
--force-disconnect ; Force disconnect TUN interface (Solaris only)
--verbose ; Enables the display of additional info
--id=<num> ; netio application id
--port=<num> ; netio port id
--int=<name> ; Interface name to use
--dev=<node> ; Tunnel device to use
--startup=<path> ; Script to execute before tunnel is created
--up=<path> ; Script to execute on tunnel up
--down=<path> ; Script to execute on shutdown
--netmap=<path> ; NETMAP file to use

2. Bring Ethernet Interface Up 

Bring interface p3p1 up.

$ sudo ifconfig p3p1 up

3. Create NETMAP file

$ echo "150:0 10:0/0" >> NETMAP

150 - netio ID default value is 150
0     - netio port default value is 0

10   - IOU router instance 10
0/0  - Ethernet interface 0/0 of IOU router 10.

Note Default netio id and netio port values can be changed specifying int2netio parameters --id and --port

4. Start IOU router

$ sudo ./i86bi_linux_l2-ipbasek9-ms.may8-2013-team_track -m 512 -s 0 -e 1 10

Int2netio needs to be started with root account.  IOU instance has to be started with the same account as int2netio.

5. Start IOU live

Int2netio can work in a routed mode (default) and in bridged mode. In routed mode a virtual interface netio0 is built. In bridged mode, int2netio automatically bridges a physical interface  p3p1 and IOU interface. We will start int2netio in bridged mode.

$ sudo ./int2netio --connect --bridge p3p1

Note You must be root in order to run int2netio otherwise iou2netio starts to fails to start.

p3p1 - Ethernet interface available in Fedora

In order to avoid loop and bringing port FastEthernet 0/1 to error disabled state on 3550 switch, disable keepalives on that port.


Picture 2- Port FastEthernet 0/1 in error disabled state

3550-I(config)#interface FastEthernet 0/1
3550-I(config-if)#no keepalive

6. Cisco 3550 and IOU router instance 10 configuration

a) Cisco 3550 Multilayer switch configuration

3550-I#conf t
Enter configuration commands, one per line. End with CNTL/Z.
3550-I(config)#vlan 10
3550-I(config-vlan)#name test

3550-I(config)#interface fastEthernet 0/1
3550-I(config-if)#switchport trunk encapsulation dot1q
3550-I(config-if)#switchport mode trunk
3550-I(config-if)#switchport trunk allowed vlan all
3550-I(config-if)#no shutdown

3550-I(config)#interface vlan 10
3550-I(config-if)#ip address
3550-I(config-if)#no shutdown
3550-I(config-if)#do write

b) Cisco IOU router instance 10 configuration

Switch#conf t
Enter configuration commands, one per line. End with CNTL/Z.

Switch(config)#hostname IOU

IOU(config)#vlan 10
IOU(config-vlan)#name TEST

IOU(config)#interface ethernet 0/0
IOU(config-if)# switchport trunk encapsulation dot1q
IOU(config-if)#switchport mode trunk
IOU(config-if)#switchport trunk allowed vlan all
IOU(config-if)#no shutdown

IOU(config)#interface vlan 10
IOU(config-if)#ip address
IOU(config-if)#no shutdown
IOU(config-if)#do write


8 thoughts on “How to Connect IOU to a Real Cisco Gear Using IOU Live - int2netio

  1. I try to compile int2netio but I get an error saying i'm missing netio_netmap.c, does your tarball include this file? is it possible to share this file with me?

  2. I don't think that you finished your work on this post.
    You are saying : Create interfaces tap0 and virbr0. Where is virbr0 used and where you do you make the connection between the switch and tap0 ?

    • Hi, you don't need to create bridge and virtual tap interfaces. Int2netio automatically bridges a physical interface p3p1 and IOU interface. Sorry for confusion, tutorial updated.

  3. What if I need to connect more IOU routers to a BR0 bridge?
    I am trying to achieve this:
    (IOU)R1tap1Br0eth0SW1 (Cat3650)
    (IOU)R2tap2Br0eth0SW1 (Cat3650)
    (IOU)R3tap3Br0eth0SW1 (Cat3650)
    and so on.
    I would like to use the native bridging offered by the kernel to connect a number of IOU routers to an external Cat3560

Leave a comment

Your email address will not be published. Required fields are marked *