wiki:GENIExperimenter/Tutorials/OpenFlowOVS-Floodlight/HW/DesignSetup

Version 7 (modified by lnevers@bbn.com, 7 years ago) (diff)

--

OpenFlow using a Hardware Switch

This experiment provides a guide on how to do the OpenFlowOVS with Floodlight tutorial using the Hardware OpenFlow switches available in the InstaGENI (IG) racks. This can serve as a general guide on how to use the OpenFlow Hardware switches.

Step 1. Obtain Controller Resources

The topology used in this experiment is the same as the one used in the OpenFlow using OVS with Floodlight tutorial: Three Virtual Machines (VMs) connected by an OpenFlow switch. However this tutorial uses A hardware OpenFlow switch instead of a software OVS switch.

This experiment requires two slices; one slice for the OpenFlow Controller reservation and a second slice for the network topology that includes the compute resource for the endpoint hosts.

If you have not reserved a controller yet, make sure to create a slice that will run the OpenFlow controller by reserving a VM running the controller using the request RSpec:

https://raw.githubusercontent.com/GENI-NSF/geni-tutorials/master/OVSFloodLight/ControllerCustom_request_rspec.xml

Once the controller has been reserved, login to the allocated VM and get the routable IP Address that has been allocated to the controller node. This address will be used in the next step when the hosts topology is requested. If needed, see help on how to login.

1.1 Find your Endpoint Hosts RSpecs

Once we have the controller allocated, we can proceed to reserving the second slice that allocates the VMs used as endpoint hosts in the topology.

About GENI OpenFlow switches

GENI offers access to hardware OpenFlow switches, which in most cases can support only one controller. On the InstaGENI racks the switch is sliced based on VLANs, so each VLAN is its own virtual datapath. To force the links between the endpoint host VMs to go through the rack OpenFlow switch, we must request that each be on separate physical hosts on the rack. Our experiment will bind each endpoint hosts to a separate Xen VM server, i.e. to different physical hosts.

The RSpecs for the second slice are site specific and are used to reserves the compute resources and to specify the location of your controller. If you are attending a tutorial, use the site and IP network that was given to you on your worksheet. If you are doing this at home, choose a site from : clemson, cornell, kansas, uky, max, stanford or wisconsin.

In the URLs below, replace the <AGGREGATE-NAME> with the name of the site you are using (clemson, cornell, kansas, uky, max, stanford or wisconsin). The RSpec for the second slice is available at:

https://raw.githubusercontent.com/GENI-NSF/geni-tutorials/master/OpenFlowHW/pvtVlan/ig-<AGGREGATE-NAME>.rspec.

For example, if you are working with max-ig, then you can get the sample RSPec as follows:

wget https://raw.githubusercontent.com/GENI-NSF/geni-tutorials/master/OpenFlowHW/pvtVlan/ig-max.rspec

1.2 Edit your Endpoint Hosts RSpecs

Open your RSpec in a text editor to insert the IP address of your controller. Done by replacing the string <CONTROLLER_IP> at the bottom of the RSpec with the IP address of your controller. The controller line looks as follows: <emulab:openflow_controller url="tcp:CONTROLLER_IP:6633"/>

1.3 Reserve Endpoint Hosts Resources

Use your favorite resource reservation tool (Omni, jFed, Portal) to reserve your resources. For example, if you are using Omni and the MAX IG aggregate:

omni -a max-ig createsliver <YOUR_SLICE_NAME> ig-max.rspec

Step 2. Configure and Initialize

To get ready for the tutorial you will need to have the following windows open:

  • one window with ssh into the controller
  • one window with ssh into host1
  • two windows with ssh into host2
  • one window with ssh into host3

Depending on which tool and OS you are using there is a slightly different process for logging in. If you don't know how to SSH to your reserved hosts learn how to login.

2a. Configure the Controller for the Hardware Switch: Useful Tips

Which port is connected to which host

To learn about the ports on which the Hosts are connected to the HW Switch, you need to run the Controller and execute a curl command.

2b. Run your controller.

To get started with the Tutorial, follow the steps listed on the page Running the Floodlight Controller