Jump to: navigation, search

VTN:Boron:Installation Guide

Overview

OpenDaylight Virtual Tenant Network (VTN) is an application that provides multi-tenant virtual network on an SDN controller.

Conventionally, huge investment in the network systems and operating expenses are needed because the network is configured as a silo for each department and system. So, various network appliances must be installed for each tenant and those boxes cannot be shared with others. It is a heavy work to design, implement and operate the entire complex network.

The uniqueness of VTN is a logical abstraction plane. This enables the complete separation of logical plane from physical plane. Users can design and deploy any desired network without knowing the physical network topology or bandwidth restrictions.

VTN allows the users to define the network with a look and feel of conventional L2/L3 network. Once the network is designed on VTN, it will automatically be mapped into underlying physical network, and then configured on the individual switch leveraging SDN control protocol. The definition of logical plane makes it possible not only to hide the complexity of the underlying network but also to better manage network resources. It achieves reducing reconfiguration time of network services and minimizing network configuration errors.

It is implemented as two major components

  • VTN Manager
  • VTN Coordinator

VTN Manager

An OpenDaylight Controller(ODC) Plugin that interacts with other modules to implement the components of the VTN model. It also provides a REST interface to configure VTN components in ODL controller. VTN Manager is implemented as one plugin to the OpenDaylight controller. This provides a REST interface to create/update/delete VTN components. The user command in VTN Coordinator is translated as REST CONF to VTN Manager by the ODC Driver component. In addition to the above mentioned role, it also provides an implementation to the Openstack L2 Network Functions API.

VTN Coordinator

The VTN Coordinator is an external application that provides a REST interface for a user to use the VTN Virtualization. It interacts with VTN Manager Plugin to implement the user configuration. It is also capable of multiple controller orchestration. It realizes Virtual Tenant Network (VTN) provisioning in OpenDaylight Controller. In the OpenDaylight architecture VTN Coordinator is part of the network application, orchestration and services layer. VTN Coordinator has been implemented as an external application to the OpenDaylight controller. This component is responsible for the VTN virtualization. VTN Coordinator will use the REST interface exposed by the VTN Manger to realize the virtual network using the OpenDaylight controller. It uses OpenDaylight APIs (REST) to construct the virtual network in ODC. It provides REST APIs for northbound VTN applications and supports virtual networks spanning across multiple ODC by coordinating across ODC.

Preparing for Installation

VTN Manager

Installing Karaf Distribution

1. Go to the download page of opendaylight.org.
http://www.opendaylight.org/software/downloads
2. Download the Pre-Built Zip File or Pre-Built Tar File of the latest Boron.
3. Extract files from the downloaded file.
e.g.)
unzip distribution-karaf-0.5.0-SNAPSHOT.tar.gz
or
tar -zxvf distribution-karaf-0.5.0-SNAPSHOT.tar.gz

VTN Coordinator

Arrange a physical/virtual server with any one of the supported 64-bit OS environment.

  • Fedora 20/21/22
  • RHEL 7
  • CentOS 7

Installing the Java

  • For RHEL/CentOS 7 (x86_64)
Install OpenJDK 8.
yum install java-1.8.0-openjdk-devel
  • For Fedora 19/20/21
Install OpenJDK 8.
yum install java-1.8.0-openjdk-devel
Note:
  • To install JDK 8 in Fedora 22
dnf install java-1.8.0-openjdk-devel

Installing prerequisites

  • For RHEL 7
yum install perl-Digest-SHA uuid libxslt libcurl unixODBC
wget http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
rpm -Uvh epel-release-6-8.noarch.rpm
yum install json-c bzip2


  • For CentOS 7 and Fedora 20/21
yum install perl-Digest-SHA uuid libxslt libcurl unixODBC json-c bzip2

Installing PostgreSQL Database

1. Configure Yum repository to download the latest rpms for PostgreSQL 9.1
rpm -ivh http://yum.postgresql.org/9.1/redhat/rhel-6-x86_64/pgdg-redhat91-9.1-5.noarch.rpm
2. Install the required PostgreSQL packages
yum install postgresql91-libs postgresql91 postgresql91-server postgresql91-contrib postgresql91-odbc

or

1. Configure Yum repository to download the latest rpms for PostgreSQL 9.3
rpm -ivh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-redhat93-9.3-3.noarch.rpm
2. Install the required PostgreSQL packages
yum install postgresql93-libs postgresql93 postgresql93-server postgresql93-contrib postgresql93-odbc
Note:
  • If you are facing any problems while installing postgreSQL rpm, Please refer to openssl_problems query in troubleshooting FAQ.
  • The above procedures indicate the rpms for RHEL 6 only, please visit the http://yum.postgresql.org/ for the rpm for the other linux distros
  • VTN Coordinator support PostgreSQL version greater than 9.1 only and currently tested with 9.1 and 9.3. Please ensure the PostgreSQL version>=9.1 is installed.
Note:
  • To install packages in Fedora 22 dnf is used instead of yum
dnf install <package-name>

Installing the VTN Coordinator

1. To get the Boron distribution for VTN coordinator download the latest "tar.bz2" file from the below link:
https://nexus.opendaylight.org/content/repositories/opendaylight.snapshot/org/opendaylight/vtn/distribution.vtn-coordinator/6.3.0-SNAPSHOT/
2. Run the below command to extract VTN Coordinator from the tar.bz2 file.
tar –C/ -jxvf distribution.vtn-coordinator-6.3.0-SNAPSHOT-bin.tar.bz2
This will install VTN Coordinator to /usr/local/vtn directory.
The name of the tar.bz2 file name varies depending on the version. Please give the same tar.bz2 file name which is there in your directory.


Note:
VTN Coordinator runs on port 8083 (TCP) for REST API by default. If you want to run it on different port other than the default, change the port number in the below file:
/usr/local/vtn/tomcat/conf/tomcat-env.sh

Configuring database for VTN Coordinator

Execute the below command.

/usr/local/vtn/sbin/db_setup

Setting up VTN Manager

VTN Manager runs in OpenDaylight controller. In order to run VTN Manager, run the controller and install VTN Manager features.

1. Ensure Java Runtime Environment 8 is installed, else install it.
yum install java-1.8.0-openjdk
or
yum list *openjdk*
(then install the version available in the distro)
2. Enter into the top directory of Boron.
e.g.)
cd distribution-karaf-0.5.0-Boron

Note: We will update Boron version after Boron SR1 release.

3. Run the below command to run the controller.
./bin/karaf
4. Once the console is up, type as below to install VTN Manager and other necessary features.
feature:install odl-vtn-manager-neutron odl-vtn-manager-rest

Note: VTN Manager features are,

  • odl-vtn-manager : provides VTN Manager's JAVA API.
  • odl-vtn-manager-rest : provides VTN Manager's REST CONF.
  • odl-vtn-manager-neutron : provides the integration with Neutron interface.


5. For logs, please look into the below file
data/log/karaf.log

Basic usage of VTN

Launching the VTN Coordinator

/usr/local/vtn/bin/vtn_start

Using VTN REST API

  • Get the version of VTN REST API using the below command, and make sure the setup is working.
curl --user admin:adminpass -H 'content-type: application/json' -X GET http://<VTN_COORDINATOR_IP_ADDRESS>:8083/vtn-webapi/api_version.json
The response should be like this:
{"api_version":{"version":"V1.2"}}
  • Create and use VTN
Please refer to User Guide and Web API reference.

Verifying your Installation

VTN Manager

  • In the karaf prompt, type the below command to ensure that vtn packages are installed.
feature:list | grep vtn
  • Run any VTN Manager REST Conf
  curl --user "admin":"admin" -H "Accept: application/json" -H \
  "Content-type: application/json" -X GET \
  http://localhost:8181/restconf/operational/vtn:vtns/

VTN Coordinator

  • ps -ef | grep unc will list all the vtn apps
  • Run any REST API for VTN Coordinator version

Uninstalling VTN

VTN Manager

   Feature:uninstall odl-vtnmanager-all

VTN Coordinator

   /usr/local/vtn/bin/vtn_stop
  • Remove the /usr/local/vtn folder