/Libera

Programmable network virtualization for cloud datacenters

Primary LanguageJava

Libera: Network Hypervisor for Programmable Network Virtualization in Datacenters

Paper

When you use or reference this software, please cite the following paper.

Contents

Introduction

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.

Libera workflow

Initialization

The following figure shows the initialization of Libera and creation of VN.

VN programming

Also, the figure below shows the basic network program sequence between physical network, Libera, and VN controller.

Tutorial

We provide a VM-based tutorial that is easy to follow.

Preparation

  • 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
  • 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

Enjoy the programmable virtual SDN!

  • [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
  • [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.

  • [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.

Source code installation

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.

References

It is welcomed to reference the following papers for Libera framework.

  • TBD

Others

We tested Libera framework only with Ubuntu 14.04 version. Basic structure and APIs for this hypervisor is shared with OpenVirteX (as shown here).

Contacts

  • 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