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 0.0.0.0 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-vlan)#exit
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-if)#exit
3550-I(config)#interface vlan 10
3550-I(config-if)#ip address 192.168.10.2 255.255.255.0
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-vlan)#exit
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-if)#exit
IOU(config)#interface vlan 10
IOU(config-if)#ip address 192.168.10.1 255.255.255.0
IOU(config-if)#no shutdown
IOU(config-if)#do write
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?
Sorry, I don't have the tarball.
netio_netmap.c is generated using flex. make sure flex is installed (sudo apt-get install flex) then run configure and make.
funny but I know what is the issue, you need to install flex
sudo apt install flex
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.
You forgot to remove tap0 from the picture! :-)
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
I think that you blog ate my connecting lines, I used between devices