...
Installation with Virtual Box
Prerequisites
Follow the instructions at the IVS Installation Guide to get IVS installed and running.
Installation
Install the packages required for virtualbox
Code Block |
---|
sudo apt-get install virtualbox-4.2 |
Create a TAP interface for each virtual machine that will be running on the host. The following command creates 8 interfaces numbered veth0 to veth7.
Code Block |
---|
for tap in `seq 0 7`; do sudo ip tuntap add mode tap veth$tap; sudo ip link set veth$tap up; done |
Edit /etc/rc.local to automatically create the TAP interfaces at startup.
Code Block |
---|
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
for tap in `seq 0 7`; do sudo ip tuntap add mode tap veth$tap; sudo ip link set veth$tap up; done
/etc/init.d/xenon restart
exit 0
|
Modify the IVS configuration file /etc/default/ivs to include the virtual interfaces.
Code Block |
---|
# Default to connecting to a local OpenFlow controller
DAEMON_ARGS="-c 127.0.0.1:6633 -i veth0 -i veth1 -i veth2 -i veth3 -i veth4 -i veth5 -i veth6 -i veth7"
|
Restart xenon to apply the changes
Code Block |
---|
sudo restart xenon
|
To connect a virtual machine to the Xenon switch, go to the network configuration under Machine->Settings->Network, select Bridged Adapter, and then choose one of the veth interfaces.
Alternatively, the VboxManage tool can be used to edit the network configuration from the command-line.
Code Block |
---|
VBoxManage modifyvm <vmname> --nic1 bridged --bridgeadapter1 <interface_to_bridge_to>
|
The hosts should now be able to communicate via the Xenon switch. xenon-ctl show should show traffic counters increasing on the bridged interfaces.
Code Block |
---|
~$ xenon-ctl show
indigo:
kernel lookups: hit=348 missed=444 lost=0
kernel flows=0
ports:
0 indigo (internal)
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=0 bytes=0 errors=0 dropped=0
1 veth0
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=420 bytes=25632 errors=0 dropped=0
2 veth1
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=420 bytes=25632 errors=0 dropped=0
3 veth2
rx: packets=531 bytes=38992 errors=0 dropped=0
tx: packets=261 bytes=22944 errors=0 dropped=0
4 veth3
rx: packets=261 bytes=22944 errors=0 dropped=0
tx: packets=531 bytes=38992 errors=0 dropped=0
5 veth4
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=420 bytes=25632 errors=0 dropped=0
6 veth5
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=420 bytes=25632 errors=0 dropped=0
7 veth6
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=420 bytes=25632 errors=0 dropped=0
8 veth7
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=420 bytes=25632 errors=0 dropped=0
1023 gre (gre)
rx: packets=0 bytes=0 errors=0 dropped=0
tx: packets=0 bytes=0 errors=0 dropped=420
|