Skip to content
doriguzzi edited this page Jul 23, 2012 · 30 revisions

Introduction

VeRTIGO is a Network Virtualization architecture that extends FlowVisor by introducing additional intelligence: the purpose is to expose virtual views of the network to different controllers. Like FlowVisor, VeRTIGO sits between the physical hardware and the guest OpenFlow controllers and enables the implementation of logical topologies. Differently from FlowVisor, VeRTIGO does not act as a transparent proxy but can directly talk to the OpenFlow switches and controllers with the purpose of enabling the definition of logical topologies comprising Virtual Links, Virtual Ports and Virtual Nodes.

Installation and configuration

VeRTIGO can be installed:

  1. as Network Virtualization Layer of an Ofelia island i.e., as a replacement of FlowVisor.
  2. as controller of a FlowVisor slice to recursively partition the flowspace assigned to the slice (useful to test VeRTIGO without interfering with the island operations).

Installation procedure

The current installation procedure of VeRTIGO requires the installation of FlowVisor through the Stanford's git repository and the libraries/tools needed to compile FlowVisor (basically ant and openjdk). During the procedure, all the libraries and environment variables needed by both FlowVisor and VeRTIGO will be installed on the operating system:

  1. Install FlowVisor sources from the git repository

    git clone git://gitosis.stanford.edu/flowvisor.git

    In the directory flowvisor execute "make" and "make install" as root user (leave Installation prefix = /usr/local and set FlowVisor user/group = root/root)

  2. Launch install.sh using the following sintax:

    ./install.sh [path of flowvisor.jar] [path of envs.sh]

    e.g.: ./install.sh /usr/local/libexec/flowvisor /usr/local/etc/flowvisor

The last step installs VeRTIGO and replaces the original envs.sh script with a modified version. The original file is backed up in the same folder.

Configuration

As for FlowVisor, the VeRTIGO configuration process starts with the generation of the base configuration file through the command:

/usr/local/sbin/fvconfig generate config.xml

The initial config file contains some sample VTs and flow definitions. These must be removed before VeRTIGO can be used. In order to make the required changes, VeRTIGO must be running. Example invocation is:

flowvisor config.xml

Then, give the following commands (deleting VTs implicitly deletes the rules associated with them):

fvctl deleteSlice alice

fvctl deleteSlice bob

You can now define a new VT called charlie that will catch all flows from all switches with commands:

fvctl createSlice charlie tcp:yourhost.com:10001 [email protected]

fvctl addFlowSpace any 10 any "Slice:charlie=4"

We have also modified the fvctl script by adding some additional options that can be used to define and instantiate Virtual Links.

For instance, the instantiation of a Virtual Link can be performed through command:

./fvctl.sh addLink charlie 00:00:00:00:00:00:00:01/1-00:00:00:00:00:00:00:02/1, 00:00:00:00:00:00:00:02/2-00:00:00:00:00:00:00:03/1

Where charlie is the name of the VT and the couple 00:00:…:0X/Y represents the datapath_id of a switch plus a physical port number. This command above creates a direct connection (Virtual Link) between switches with datapath_id 00:00:00:00:00:00:00:01 and 00:00:00:00:00:00:00:03 passing through 00:00:00:00:00:00:00:02.

Authorship

VeRTIGO is under development within activities of WP8 of OFELIA FP7 project and is based on source code gracefully provided by Stanford University.

Contact

Contact { roberto.doriguzzi | matteo.gerola } @ create-net.org for further information.

Clone this wiki locally