OpenFlow controller for the "Network access control based on role-base security policy" project
In this setup, we simulate the whole network using Mininet. Since Mininet requires Linux as the operating system, we use vagrant to start and provision a Linux VM. We use Ansible to provision the VM. This is the recommended way for development.
- Install Vagrant and Ansible.
- Clone this repository and move into the
tool/
directory. - Run
vagrant up
to start and provision the VM. vagrant ssh
All commands below shall be executed inside the VM.
cd /vagrant
./tool/run_controller
(The controller will run in the foreground, so open up a new session for the following commands)sudo ./tool/run_network
In this setup, we construct the network using virtual machines/switches or physical machines/switches. Then, we execute the OpenFlow controller in an isolated environment using direnv and virtualenv. This is the recommended method for evaluation.
- Install python, pip and virtualenv.
- Install and configure direnv.
- Clone this repository and move into the source code directory.
direnv allow
pip install -r requirements.txt
- Configure each OpenFlow switch to connect to the TCP/6633 port of the machine where the controller will be running.
- Run
./tool/run_controller
This software is released under the Apache 2.0 License. See LICENSE for the full license text. This software includes a part of a work that is distributed in the Apache 2.0 License.