Overview:
This project investigate firewall rule implementation on SDN using OpenFlow Standards.
Major Components:
- OpenDayLight
- POX
- Mininet
- NodeJS
- MongoDB
Installation Guide:
- OpenDayLight
Download prebuild OpenDayLight from : https://www.opendaylight.org/downloads For feature installation refer : https://wiki.opendaylight.org/view/Karaf:Step_by_Step_Guide
- POX
checkout repository with (git clone https://github.com/noxrepo/pox.git) copy AltusFirewall.py from project repository to ext folder in pox directory
- Mininet
sudo apt install mininet
- NodeJS
sudo apt install node sudo apt install npm
- MongoDB
To install mongoDB please refer : https://www.digitalocean.com/community/tutorials/how-to-install-mongodb-on-ubuntu-16-04
Instructions to Run web application:
- git clone http://gitlab.thothlab.org/team_altus/OpenFlow-Firewall.git
- go to Firewall_GUI/Project folder
- run npm install
- run 'node server.js'
- thats it.
Instructions to run other Components:
- OpenDayLight
run /bin ./karaf
- POX
goto pox directory and run ./pox.py AltusFirewall forwarding.l2_learning
- Mininet
sudo mn --topo tree,depth=2,fanout=3 --nat --controller=remote,ip=192.168.1.7 --switch ovs,protocols=OpenFlow10
open new terminal and run
sudo ovs-vsctl set-controller s1 tcp:192.168.1.4:6633
- MongoDB
Mongo client will be invoked automatically.
To install pymongo please refer: https://pypi.python.org/pypi/pymongo/2.7.2
Dependencies:
- nodeJS
- npm
- node modules such as restify, request etc.
Description of project files
-
AltusFirewall.py THis file implements our dynamic rule that listens for pactket In events and applies blocking websites based on switch this requested from.
-
Server.js This file is the node application that provides API to the front end for all features.
-
EJSFirewallPage.ejs This is the 1 page appliation ejs file that is used by Node EJS framework to render UI.
-
package.json This file contains all the dependencies that should be installed in node_modules folder to successfully run the project.