When you use or reference this software, please cite the following paper.
This documentation includes the step-by-step instructions to run and test Libera framework.
Libera is SDN-based network hypervisor that creates multiple virtual networks (VNs) for tenants. This software is developed based on OpenVirteX, which is originally developed by ONF (Open Networking Foundation). Now, OpenVirteX and Libera are both managed by Korea University.
The following figure shows the initialization of Libera and creation of VN.
Also, the figure below shows the basic network program sequence between physical network, Libera, and VN controller.
We provide a VM-based tutorial that is easy to follow.
-
Install virtualbox software: https://www.virtualbox.org/
-
Get the virtual machines we have prepared - Here!
- Note that the password for the account is kuoslab12
- "Mininet" VM for emulating physical network
- "Libera" VM for running Libera framework
- "ONOS" for running ONOS controller as VN controller
- Note that the password for the account is kuoslab12
-
Open the provided VMs through virtual box (see here for the steps)
Note that while opening the VMs, you should check "MAC address policy" to include all adapters MAC addresses! If you choose "Include only NAT network adapter MAC addresses", the pre-configured static IPs do not work!
-
Check whether the network connections work between VMs through ping.
- Mininet: 10.0.0.1 / Libera: 10.0.0.2 / ONOS: 10.0.0.3
- [Mininet] Ping to Libera or ONOS
ping 10.0.0.2 ping 10.0.0.3
- [Libera] Ping to ONOS
ping 10.0.0.3
-
[Mininet] Physical network creation
We create a physical topology as shown in the figure below. Use the python file that automates the creation of the topology!
sudo python internet2_OF13.py
- If you create physical network repeatedly, put the following command to get rid of the created Mininet emulations.
sudo mn -c
- If you create physical network repeatedly, put the following command to get rid of the created Mininet emulations.
-
[Libera] Execute Libera framework
cd /home/libera/Libera sh scripts/libera.sh –-db-clear
When the physical network is initiated, the logs for physical topology discovery appears in [Libera] as follows:
Wait for a moment until the entire network is discovered.
-
[ONOS] Run the ONOS controller to be used as VN controller
For the tenant to directly program its VN, we use ONOS, which is widely-used. The ONOS VM provides the script to build multiple ONOS controllers for multi-tenant evaluations.
sudo sh onos_multiple.sh -t 1 -i 10.0.0.3
- -t: the number of tenants
- -i: IP address
When the initiation is finished, you can check the ONOS GUI to check whether it works normally.
- URL: http://10.0.0.3:20000/onos/ui/ [Should access from ONOS VM].
- Account: ID - karaf, PW - karaf
-
[Libera] Now, create the VN topology.
We input several commands in Libera to create the following VN topology:
Each virtual switch, port, and link is created by single command. Fortunately, we provide a script for the above VN topology as follow. Enter the following command from a new shell.
cd /home/libera/Libera/utils sh examplevn.sh
When the VN topology creation is finished, the topology appears in the ONOS VM!
-
[Mininet] VN is ready. Let's create network traffic.
Since our network topology allows network connections between H_SEA_1 and H_LAX_2, let's ping them. (Note that the following command is entered in the Mininet)
h_SEA_1 ping -c10 h_LAX_2
As shown in the figure below, the packets normally goes. This is because the ONOS VN controller programmed network routing to its virtual switches, and it is appropriately installed in the physical network.
Libera is built based on OpenVirteX, so you can follow the installation guide of OpenVirteX here.
When following the guide, please clone the repository of Libera, not the OpenVirteX. Also, run the VNC with ONOS, not the Floodlight.
It is welcomed to reference the following papers for Libera framework.
- TBD
We tested Libera framework only with Ubuntu 14.04 version. Basic structure and APIs for this hypervisor is shared with OpenVirteX (as shown here).
- This project is under the lead of Professor Chuck Yoo.
- Contributors: Gyeongsik Yang, Bong-yeol Yu, Seong-Mun Kim, Heesang Jin, Wontae Jeong, Minkoo Kang, Anumeha, Yeonho Yoo
- Mailing list: Here - We share mailing list with OpenVirteX