An SDN Interactive Manager application to enable management of SDN-related parameters of OpenFlow-Based networks.
SDN Interactive Manager is an OpenFlow-based application to SDN management through monitoring, visualization, and configuration that includes the administrator in the management loop. Moreover, the application introduces management of advanced features, such as reporting control traffic statistics and dynamically configuring the idle and hard timeout of forwarding rules, such feature which most SDN management approaches do not consider. This application was developed in order to help the administrator to better understand the impact of configuring SDN-related parameters on the overall network performance. SDN Interactive Manager application uses Software-Defined Networking (SDN) software-defined networking (SDN) concepts and OpenFlow protocol version 1.0 of specification - currently the most relevant SDN implementation - to establish communication between the controller and forwarding devices.
The following installation steps assume you will be running the application on Ubuntu Server 14.04. You should easily find the same required packages in any other distribution, however keep in mind that different versions of libraries and other software may cause the application not to work as expected.
$ git clone https://github.com/ComputerNetworks-UFRGS/AuroraSDN.git
$ sudo apt-get update
$ sudo apt-get install apache2 libapache2-mod-wsgi python-dev python-pip python-django python-pygments python-django-debug-toolbar
$ sudo apt-get install python-mysqldb mysql-server
$ sudo apt-get install python-psycopg2 postgresql pgadmin3
Install Django Widget Tweaks module from pip
$ sudo pip install django-widget-tweaks python-social-auth
$ sudo cp AuroraSDN/extras/apache/auroraSDN.conf /etc/apache2/conf-available/
$ cd /etc/apache2/conf-enabled/
$ sudo ln -s ../conf-available/auroraSDN.conf auroraSDN.conf
Note 1: Editing auroraSDN.conf to match your local directory settings may be required.
Note 2: Make sure you have an early version of django (1.6 or newer) so that the platform can be installed as a wsgi application.
$ django-admin --version
$ cd /etc/apache2/sites-enabled
$ sudo ln -s ../sites-available/default-ssl.conf 000-default-ssl.conf
If ssl modules are not already enabled then:
$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/ssl.conf ssl.conf
$ sudo ln -s ../mods-available/ssl.load ssl.load
$ sudo ln -s ../mods-available/socache_shmcb.load socache_shmcb.load
Then restart Apache:
$ sudo service apache2 restart
Execute the following SQL code into your MySQL console to create a user and database for Aurora (replace *** with the password you want).
CREATE USER 'aurorasdn'@'localhost' IDENTIFIED BY '***';
CREATE DATABASE IF NOT EXISTS `aurorasdn`;
GRANT ALL PRIVILEGES ON `aurorasdn`.* TO 'aurorasdn'@'localhost';
Execute the following SQL code into your pgAdmin III console to create a user and database for Aurora (replace *** with the password you want).
CREATE USER aurorasdn WITH PASSWORD '***';
CREATE DATABASE aurorasdn
WITH ENCODING='UTF8'
CONNECTION LIMIT=-1;
GRANT ALL PRIVILEGES ON DATABASE aurorasdn TO aurorasdn;
If you want to edit local django settings and avoid conflicts when pushing back modifications, create a local_settins.py file (this file is included in .gitignore) inside the Aurora folder where the default settings.py is.
from settings import *
DATABASES['default']['PASSWORD'] = 'yourpassword'
STATIC_ROOT = '/var/www/html/AuroraSDN/static/'
MEDIA_ROOT = '/var/www/html/AuroraSDN/manager/'
LOGGING['handlers']['file']['filename'] = '/var/www/html/AuroraSDN/logs/main.log'
ADMINS = (
('You', 'you@yoursite.com'),
)
GOOGLE_OAUTH2_CLIENT_ID = '...'
GOOGLE_OAUTH2_CLIENT_SECRET = '...'
You can create log file wherever you like as you configured the variable LOGGING['handlers']['file']['filename']. In general, a logs directory can be created within the platform installation folder.
$ mkdir AuroraSDN/logs
$ touch AuroraSDN/logs/main.log
$ chmod -R a+w AuroraSDN/logs
$ cd AuroraSDN
$ python manage.py syncdb
The SDN Interactive Manager application currently works with our version of Floodlight OpenFlow Controller that we modified to support control channel statistics features. By default, the application expects your installation to have this Floodlight running to perform its functionalities correctly. You can easily install the controller from by clonning its repository from Github:
$ git clone https://github.com/phisolani/floodlight.git
For academic work referencing and citation please read our paper "Interactive Monitoring, Visualization, and Configuration of OpenFlow-Based SDN" published at 14th IFIP/IEEE Symposium on Integrated Network and Service Management 2015 (IM 2015) in Ottawa or the demo paper named "SDN Interactive Manager: An OpenFlow-Based SDN Manager" published at demonstration track of the same event.
Currently the main authors are:
- Pedro Heleno Isolani - http://www.inf.ufrgs.br/~phisolani/
- Juliano Araujo Wickboldt - http://www.inf.ufrgs.br/~jwickboldt/