Version 3 (modified by 15 years ago) ( diff ) | ,
---|
OpenFlow How-To
Sandbox 9 uses the OpenFlow capable switch as part of its setup as a means to provide a testbed for experimentation with the OpenFlow protocol. This tutorial describes the different components of the OpenFlow network and provides the basics needed to set up an experiment.
OpenFlow Protocol
OpenFlow is a protocol that allows for the creation of overlay networks over pre-existing network infrastructure. This allows a researcher to run experiments on production networks without the fear of affecting any of the legacy installations or setups, while having control over how data is handled across the network.
"OpenFlow" specifically refers to the protocol that is used by a network device and its controller to pass information about flows, or instructions on how to handle data packets based on the packet header, to each other.
Detailed information can be found here: http://www.openflowswitch.org/
The Testbed
Sandbox 9 consists of three nodes connected to the SB9 Console through a OpenFlow enabled IP8800/S3640-48T2XW switch.
The switch
The switch is currently running firmware supporting OpenFlow v0.8.9. The switch is pre-configured so that ports 25-36 (the data VLAN) is an OpenFlow virtual switch that listens to the Console as the controller. The configurations can be altered by using the setvsi
command in the switch's command-line interface.
The details behind configuring the virtual switch(es) on the IP8800 can be found here.
The Controller
Installing the controller
The OpenFlow reference System (v0.8.9r2) and NOX-core (v0.5.0) have been successfully installed and tested on the Console. These can be downloaded from the following places:
- OpenFlow reference system: http://www.openflowswitch.org/wp/downloads/
- NOX-core: http://noxrepo.org/wp/
The former is a simple implementation that comes with a few tests; latter is a full-blown network operating system/ development tool that comes with a Network API that can be used to write and develop your own controller in C++ or Python.
Starting the controller
Both commands start the controller and establish a connection with the OpenFlow switch. The -v is for verbose. -h for both will give you the help files for the controllers. In the reference system, the controller is found under …/openflow/controller/
./controller -v ptcp:6633
and in NOX, it is found under …/noxcore/build/src/
./nox-core -v ptcp:6633