Install FreeBSD 9 64-bit as per normal and give it a hostname like myiou. A five letter host name will work better. Then goto http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/linuxemu-lbc-install.html and follow the first few steps of the linux compatibility install guide. These are replicated below:
kldload linux
kldstat
Add linux_enable="YES" /etc/rc.conf
cd /usr/ports/emulators/linux_base-f10
make install
The IOU L2 & L3 binaries are 32 bit as a result I'm installing the 32 bit linux libraries that it requires (notice the i368 keyword in the rpms)
Install rpm2cpio
cd /usr/ports/archivers/rpm2cpio
make install
Install libcrypto.so.4 from openssl-0.9.7a-20.2.i386.rpm as follows
1) rpm2cpio openssl-0.9.7a-20.2.i386.rpm | cpio -idm
2) cp lib/libcrypto.so.0.9.7a /compat/linux/lib/
3) ln -s /compat/linux/lib/libcrypto.so.0.9.7a /compat/linux/lib/libcrypto.so.4
Install libcom_err.so.3 from krb5-libs-1.2.7-10.i386.rpm as follows
1) rpm2cpio krb5-libs-1.2.7-10.i386.rpm | cpio -idm
2) cp usr/kerberos/lib/libcom_err.so.3.0 /compat/linux/lib/
3) ln -s /compat/linux/lib/libcom_err.so.3.0 /compat/linux/lib/libcom_err.so.3
Now notice that the hostid for the "freebsd" machine is different to the linux compat:
FreeBSD
/etc/rc.d/hostid start
Setting hostuuid: 564dfe52-4453-f568-f0f0-a7ff9a1778ba.
Setting hostid: 0x94ad1311.
Linux Compat (NOTE: the number returned is in hex and seems to be the same across a number of builds)
/compat/linux/usr/bin/hostid
64343635
Use the linux compat hostid to generate license. Find the gen.c source code (Keygen for IOU) and compile as shown below:
gcc -g gen.c -o gen -lssl
Create the iourc in the following format:
[license]
myiou = 87************30;
Create a sample NETMAP file which contains:
101:0
L3 IOU (Router)
Now run L3 IOU as follows:
./wrapper-linux -m /path/to/iou/i86bi_linux-adventerprisek9-ms -p 2222 -- 101
Note the path has to be exact, for some reason it does not like a ./
Connected to the router as:
telnet localhost 2222
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
--- System Configuration Dialog ---
Would you like to enter the initial configuration dialog? [yes/no]:
% Please answer 'yes' or 'no'.
Would you like to enter the initial configuration dialog? [yes/no]:
% Please answer 'yes' or 'no'.
The default interfaces this starts up with are:
Router#show ip int b
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 unassigned YES unset administratively down down
Ethernet0/1 unassigned YES unset administratively down down
Ethernet0/2 unassigned YES unset administratively down down
Ethernet0/3 unassigned YES unset administratively down down
Ethernet1/0 unassigned YES unset administratively down down
Ethernet1/1 unassigned YES unset administratively down down
Ethernet1/2 unassigned YES unset administratively down down
Ethernet1/3 unassigned YES unset administratively down down
Serial2/0 unassigned YES unset up down
Serial2/1 unassigned YES unset administratively down down
Serial2/2 unassigned YES unset administratively down down
Serial2/3 unassigned YES unset administratively down down
Serial3/0 unassigned YES unset administratively down down
Serial3/1 unassigned YES unset administratively down down
Serial3/2 unassigned YES unset administratively down down
Serial3/3 unassigned YES unset administratively down down
The IOS version message is:
Router#show ver
Cisco IOS Software, Linux Software (I86BI_LINUX-ADVENTERPRISEK9-M), Experimental Version 12.4(20090407:185408) [yuiu-redbuild-V124_24_5_6_PIC1 177]
Copyright (c) 1986-2009 by Cisco Systems, Inc.
Compiled Wed 08-Apr-09 02:09 by yuiu
ROM: Bootstrap program is Linux
Router uptime is 5 days, 16 hours, 52 minutes
System returned to ROM by reload at 0
System image file is "unix:/usr/i86bi_linux-adventerprisek9-ms"
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.
A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html
If you require further assistance please contact us by sending email to
export@cisco.com.
Linux Unix (Intel-x86) processor with 40401K bytes of memory.
Processor board ID 2050149
8 Ethernet interfaces
8 Serial interfaces
16K bytes of NVRAM.
Configuration register is 0x0
L2 IOU (Switch)
You can run L2 IOU as follows (with same iourc and NETMAP):
./wrapper-linux -m /path/to/iou/l2iou/i86bi_linuxl2-upk9-ms -p 2222 -- 101
Connected to the switch as:
telnet localhost 2222
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
% Please answer 'yes' or 'no'.
Would you like to enter the initial configuration dialog? [yes/no]: n
Press RETURN to get started!
The default interfaces the switch starts up with are:
Router#show ip int b
Interface IP-Address OK? Method Status Protocol
Ethernet0/0 unassigned YES unset administratively down down
Ethernet0/1 unassigned YES unset administratively down down
Ethernet0/2 unassigned YES unset administratively down down
Ethernet0/3 unassigned YES unset administratively down down
Ethernet1/0 unassigned YES unset administratively down down
Ethernet1/1 unassigned YES unset administratively down down
Ethernet1/2 unassigned YES unset administratively down down
Ethernet1/3 unassigned YES unset administratively down down
Serial2/0 unassigned YES unset administratively down down
Serial2/1 unassigned YES unset administratively down down
Serial2/2 unassigned YES unset administratively down down
Serial2/3 unassigned YES unset administratively down down
Serial3/0 unassigned YES unset administratively down down
Serial3/1 unassigned YES unset administratively down down
Serial3/2 unassigned YES unset administratively down down
Serial3/3 unassigned YES unset administratively down down
Vlan1 unassigned YES unset administratively down down
The IOS version message is:
Router#show ver
Cisco IOS Software, Linux Software (LINUXL2-UPK9-M), Experimental Version 12.2(20100802:165548) [mtimm-mtrosel2iol 102]
Copyright (c) 1986-2010 by Cisco Systems, Inc.
Compiled Mon 02-Aug-10 10:05 by mtimm
ROM: Bootstrap program is Linux
Router uptime is 1 minute
System returned to ROM by reload at 0
System image file is "unix:/usr/i86bi_linuxl2-upk9-ms"
This product contains cryptographic features and is subject to United
States and local country laws governing import, export, transfer and
use. Delivery of Cisco cryptographic products does not imply
third-party authority to import, export, distribute or use encryption.
Importers, exporters, distributors and users are responsible for
compliance with U.S. and local country laws. By using this product you
agree to comply with applicable laws and regulations. If you are unable
to comply with U.S. and local laws, return this product immediately.
A summary of U.S. laws governing Cisco cryptographic products may be found at:
http://www.cisco.com/wwl/export/crypto/tool/stqrg.html
If you require further assistance please contact us by sending email to
export@cisco.com.
Linux Unix (Intel-x86) processor with 204264K bytes of memory.
Processor board ID 2050249
8 Ethernet interfaces
8 Serial interfaces
16K bytes of NVRAM.
Configuration register is 0x0
Aliases
Here are some aliases is use to make life easy. These are formatted for a zsh shell buts its easy to convert them to equivalent tcsh/csh commands.
alias kw="killall wrapper-linux"
alias r1="telnet localhost 2101"
alias r2="telnet localhost 2102"
alias r3="telnet localhost 2103"
alias r4="telnet localhost 2104"
alias r5="telnet localhost 2105"
alias r6="telnet localhost 2106"
alias s1="telnet localhost 3101"
alias s2="telnet localhost 3102"
alias s3="telnet localhost 3103"
For these to work I have mapped my IOU instances as follows:
Device | IOU ID | TCP Port |
---|---|---|
R1 | 101 | 2101 |
R2 | 102 | 2102 |
R3 | 103 | 2103 |
R4 | 104 | 2104 |
R5 | 105 | 2105 |
R6 | 106 | 2106 |
R7 | 107 | 2107 |
S1 | 301 | 3101 |
S2 | 302 | 3102 |
NETMAP Topology Generation
Source: here
NETMAP does not use interface names but, rather, interface IDs. The IDs are not tied to a specific interface type (e.g. Serial or Ethernet). When launching an IOU instance, you can specify (via the command-line) which interfaces you want and how many. The ID used for Serial1/2 and Ethernet1/2 would be the same and, as such, it’s impossible to have both of those interfaces in an single instance.
To calculate the ID used by “interface x/y”, you would use the following formula:
id = x + (y * 16)
Examples:
- interface 0/0 = 0
- interface 0/3 = 48
- interface 1/2 = 33
- interface 12/1 = 28
Interface Slot Port NETMAP ID
Ethernet0/0 0 0 0
Ethernet0/1 0 1 16
Ethernet0/2 0 2 32
Ethernet0/3 0 3 48
Ethernet1/0 1 0 1
Ethernet1/1 1 1 17
Ethernet1/2 1 2 33
Ethernet1/3 1 3 49
Serial2/0 2 0 2
Serial2/1 2 1 18
Serial2/2 2 2 34
Serial2/3 2 3 50
Serial3/0 3 0 3
Serial3/1 3 1 19
Serial3/2 3 2 35
Serial3/3 3 3 51
Working Example
You can find a working example using this setup here.
Updates
28/3/12 - Traceback
During my use of L3 IOU I've noticed the following traceback appear regularly. At the moment this seems cosmetic. However it seems to increase with frequency as you continue to use the image. Restarting that instance of IOU fixes the issue.
*Mar 30 09:57:33.599: %SYS-2-CHUNKSIBLINGS: Attempted to destroy chunk with siblings, chunk 2DFF0FD8. -Process= "Exec", ipl= 0, pid= 88, -Traceback= 0xA70B0A7z 0xA70B268z 0xA23A686z 0xA23A5C2z 0x9584198z 0x95FACECz 0x95FAC3Fz 0x95F9989z 0x95F5809z 0x8CD5B1Ez 0x8CD3659z 0x8CE665Cz
26/4/12 - L3 IOU 15.0
This is the only version of IOU 15.0 that I runs under FreeBSD with the above set-up procedure. v15.2 of IOU seems to either crash or go into a nano sleep loop.
Cisco IOS Software, Linux Software (I86BI_LINUX-JK9S-M), Version 15.0(1)XJR111.358, INTERIM SOFTWARE
Synced to V122_49_YST273_111_101108, Branch: mtrose
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2012 by Cisco Systems, Inc.
Compiled Sun 08-Jan-12 07:38 by integ
ROM: Bootstrap program is Linux
ROM: Cisco IOS Software, Linux Software (I86BI_LINUX-JK9S-M), Version 15.0(1)XJR111.358, INTERIM SOFTWARE
Hi,
ReplyDeleteI am really keen to know how stable the L2 image is running on Freebsd. I'm running Asasel's IOU image on a VM and although it's great, L2 is buggy when connected in physical loops in that spanning tree doesn't work and the interfaces produce excessive collisions.
Hi Yasser, I not used the L2 image extensively so cannot comment on your issue. The L3 image is proving to be quite stable but I do get the occasional trackback message in the logs. However the CPU and memory usage is quite low.
DeleteHi friend would u provide L2 IOU binary so i also lab switching i have router binary but not L2 one hope u share my email id is raipraveen83@gmail.com send me here
ReplyDeleteHi, this is one thing I cannot help with.
Delete