First, install Virtual Box on your computer. Then, download and install the custom virtual machine for the course. (Do not use the VM referenced at the OpenFlow Tutorial Web site. Our custom VM works on a wider variety of platforms, and has software installed that you'll need on future assignments.) See the video instructions.
To install the VM, start VirtualBox, and then select File>Import Appliance and select the downloaded ova file. Then, press the Import button.
Then, follow the instructions for parts 1 through 4 of the OpenFlow Tutorial.
You do not need to submit any written materials for this assignment.
Ask your fellow students for help, in person or on Piazza, if you get stuck in the process.
In this assignment, you will learn some basic SDN programming on the POX controller platform. Complete Section 5.1 of the tutorial on POX, using your existing VM from assignment 1 rather than installing a new VM. You do not need to install POX as stated in the tutorial. It is already installed on your VM. There are three components in this assignments.
The task of the controller is to program the switch accordingly via appropriate openflow messages.
You could support the traffic monitoring in several ways. The most elegant way is for your program to send the switch a statistics request to read the counters associated with all rules forwarding to/from host 1.
In this assignment, you will experiment policy compositions in POX and learn to use some basic SDN programming on the Pyretic platform, using the same VM from assignment 1.
Implement in POX a module that does mac learning, firewalling and monitoring. Implement two versions of this module: (1): monitoring all traffic, whether or not the firewall drops the traffic and (2) monitor only the traffic that successfully passes through the firewall.
Update your pyretic repo (from inside the VM)
$ cd ~/pyretic $ git pull $ git checkout tester $ sudo pip install ipaddr
Implement a simple mac learning module
Write a simple firewalling module that blocks traffic between hosts 2 and 3
Write a simple monitoring module that counts all packets going to or leaving host 1
Write a module that imports each of the above and does firewalling and then mac learning while at the same time monitoring. Write two versions of this module: (i) monitoring all traffic, whether or not the firewall drops the traffic and (ii) monitor only the traffic that successfully passes through the firewall
Last updated: Wed Feb 12, 2014