wiki:GENIExperimenter/Tutorials/OpenFlowOVS/Appendix

Version 13 (modified by nriga@bbn.com, 10 years ago) (diff)

--

Appendix - Move to HW switches

GENI and FIRE offer access to hardware OpenFlow switches. Each OpenFlow switch in most cases can support only one controller. To enable sharing of the resources many times a slicer (FlowVIsor) and an OpenFlow specific AM (FOAM) is used.

In GENI there is a common VLAN that has been setup for all the GENI racks and within this VLAN experimenters can reserve a flowspace based on IP or eth_type. Experimenter can also obtain a private VLAN only for their slice. For this tutorial we are going to use the common VLAN that has been setup.

Design/Setup

The topology for this experiment is very similar to the one that uses OVS, the main difference is that instead of the OVS we are going to connect the compute resources to a hardware OpenFlow switch.

When working with hardware switches the reservation usually happens in two steps:

  1. Reserve all your hosts (including the host that will be the controller)
  2. Reserve the OpenFlow resources (for this you will need the controller public IP from the previous step).

1. Reserve compute resources

The rspecs for this tutorial are site specific. If you are attending a tutorial then use the site and IP subnet that was given to you on your worksheet, if you are doing this at home choose a site out of : clemson, cornell, gatech, gpo, illinois, kansas, kentucky, kettering, max, missouri, moxi, northwestern, nysernet, nyu, sox, stanford, wisconsin and choose a subnet between 10.20.30 - 10.20.49

In the following instructions replace :

  • <SITE> with the site you were given or chose.
  • <SUBNET> with the one your were given or chose.

Do the following steps:

  1. Start jFed
  2. Load URL: http://www.gpolab.bbn.com/exp/OpenFlowHW/rspecs/ig-'''<SITE>'''.rspec in jfed
  3. Use the search and replace functionality of the rspec editor in jFed to replace "10.10.1" with "<SUBNET>"
  4. Press run

2. Reserve OpenFlow Flowspace

While your compute resources are being reserved and configured. The first thing we need is figure out the IP of our controller. Switch on the topology viewer on jfed and load the node info of the controller node. Copy the hostname and in a terminal do:

nslookup <HOSTNAME>

In the following instructions replace:

  • <CONTROLLER_IP> with the IP you just learned

Do the following steps:

  1. In JFed go back to the general view
  2. Load URL: http://www.gpolab.bbn.com/exp/OpenFlowHW/rspecs/ig-of-<SITE>.rspec in jfed
  3. Use the search and replace functionality of the rspec editor in jFed to replace "<SUBNET>" with your subnet
  4. Use the search and replace functionality of the rspec editor in jFed to replace "<CONTROLLER_IP>" with your controller ip i,. Save the rspec
  5. Use omni to reserve the resources using as your am <SITE>-of-ig

If you get no error you are all set. Once your compute resources are reserved you can go back and repeat the same exercises now running on a hw switch.

NOTE: You might get some errors when loading POX, just ignore them.

Useful tips

Which port is connected to which host

Run the learning pox controller with debug on (use the command from the OVS tutorial) and start a ping from host1 to host2 and host3. Notice that the printout of pox will have lines like:

DEBUG:forwarding.l2_learning:installing flow for 02:b4:88:6d:83:f7.1 -> 02:36:8d:c2:b0:14.8

The format after for and -> is <DPID>.<PORT> so this way you know which port is connected to which host. To figure out the name for each port then it is simply A<PORT> so if host 1 is out of port 8, then the name is A8.

Configuration files of controllers

For all controllers you will need to modify the config files (port_forward.config, proxy.config) to user the appropriate IP dataplane IP addresses of your hosts to correctly configure your controllers.

Attachments (1)

Download all attachments as: .zip