Neutron plugins

Providing rich cloud networking by enhancing traditional networking solutions is quite challenging. Traditional networking is not scalable to cloud proportions by its design nor able to cope with automatic configuration. OpenStack Networking introduces the concept of a plugin, which is a backend implementation of the OpenStack Networking API. In order to implement logical API requests, a plugin can utilize a variety of technologies. Some plugins might use Linux IP tables and basic VLANs, while other implementations might use more advanced technologies, such as L2-in-L3 tunneling or OpenFlow.

Plugins can have different features for hardware requirements, properties, performance, scale, or operator tools. OpenStack supports a wide spectrum of plugins. Therefore, the cloud administrator is able to consider different options and decide which networking technology fits a particular use case scenario. Among different plugins for Neutron, in this section, we will consider the Floodlight controller plugin for OpenStack Neutron.

Utilizing a Neutron plugin, Floodlight can be run as the network backend for OpenStack. Neutron exposes a NaaS model via a REST API, which is implemented by Floodlight. This solution includes two main components: the Neutron RestProxy plugin that connects Floodlight to Neutron and a VirtualNetworkFilter module in Floodlight that implements the Neutron API. The VirtualNetworkFilter module implements MAC-based layer 2 network isolation in OpenFlow networks and exposes it through a REST API.

This module is included in Floodlight by default and does not depend on Neutron or OpenStack to be active and running. The VirtualNetworkFilter can be activated through a configuration file change described later in the chapter. The RestProxy plugin was designed to run as part of OpenStack's Neutron service. Floodlight with the Big Switch Neutron plugin supports the OpenStack Grizzly release.

The Floodlight OpenStack support is enabled by:

The following instructions are for setting up Floodlight and OpenStack (Grizzly) on an Ubuntu VM using devstack scripts developed by Big Switch. A virtual machine with Ubuntu Server 12.04.1 or a later version is required. The outcome of this procedure is a single-node OpenStack installation with Floodlight as its Neutron backend. Tenants, virtual networks, and virtual instances can be created by the OpenStack Horizon GUI (dashboard).

You will need to execute a Floodlight controller for the OpenStack Neutron networking support to properly function. The floodlight controller can be running on a separate Floodlight VM or you can obtain and download the Floodlight source as a compressed ZIP file, unzip it, compile it, and run it with the following simple steps on your Ubuntu VM. Make sure you have internet connectivity before proceeding.

$ sudo apt-get update
$ sudo apt-get install zip default-jdk ant
$ wget --no-check-certificate https://github.com/floodlight/floodlight/archive/master.zip
$ unzip master.zip
$ cd floodlight-master; ant
$ java -jar target/floodlight.jar -cf src/main/resources/neutron.properties

To confirm the VirtualNetworkFilter is successfully activated, enter the following commands on your Ubuntu VM:

$ curl 127.0.0.1:8080/networkService/v1.1
{"status":"ok"}

Once Floodlight is confirmed running, we are ready to install OpenStack using the install -devstack script. The following are the steps:

  1. It configures the OVS switch on the VM to listen to the Floodlight controller.
  2. Then it installs OpenStack and the Big Switch REST proxy plugin on the VM.
  3. If you want the OpenStack Grizzly release, use the following commands:
      $ wget https://github.com/openstack-
dev/devstack/archive/stable/grizzly.zip
$ unzip grizzly.zip $ cd devstack-stable-grizzly
  1. If you want the OpenStack Folsom release, use the following commands:
      $ wget 
https://github.com/bigswitch/devstack/archive/floodlight/
folsom.zip
$ unzip folsom.zip $ cd devstack-floodlight-folsom
  1. Use your favorite editor to create a file named localrc and fill in the following details. Remember to replace <password> with your chosen password and update BS_FL_CONTROLLERS_PORT=<floodlight IP address> with the value 8080. If you have run Floodlight in the same VM, then use 127.0.0.1 for <floodlight IP address>; otherwise, use the IP address of the VM or host where Floodlight is running:
      disable_service n-net
      enable_service q-svc
      enable_service q-dhcp
      enable_service neutron
      enable_service bigswitch_floodlight
      Q_PLUGIN=bigswitch_floodlight
      Q_USE_NAMESPACE=False
      NOVA_USE_NEUTRON_API=v2
      SCHEDULER=nova.scheduler.simple.SimpleScheduler
      MYSQL_PASSWORD=<password>
      RABBIT_PASSWORD=<password>
      ADMIN_PASSWORD=<password>
      SERVICE_PASSWORD=<password>
      SERVICE_TOKEN=tokentoken
      DEST=/opt/stack
      SCREEN_LOGDIR=$DEST/logs/screen
      SYSLOG=True
      #IP:Port for the BSN controller
      #if more than one, separate with commas
      BS_FL_CONTROLLERS_PORT=<ip_address:port>
      BS_FL_CONTROLLER_TIMEOUT=10
  1. Then enter the following command:
      $ ./stack.sh
  

Note that OpenStack installation is a long process that cannot be interrupted. Any interruption or loss of network connectivity results in unknown states that cannot be resumed. It is recommended that you take a snapshot using VirtualBox before you begin the installation so that you can easily power down and restore the original snapshot if indeed the process is interrupted.

The script install-devstack.sh requires uninterrupted IP connectivity to run. If the installation completes successfully, it will show the following screen:

You can verify the installation of OpenStack and Floodlight using the instructions in the following link: https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller/pages/1343607/Install+Floodlight+and+OpenStack+on+Your+Own+Ubuntu+VM.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset