Version 20 (modified by 10 years ago) (diff) | ,
---|
This tutorial is currently deprecated. We are actively working on updating it, if you need help please contact help@geni.net
OpenFlow LoadBalancer Tutorial
In this tutorial, we will show how do Network Load Balancing using OpenFlow on GENI. Network Load Balancing is the division of traffic of multiple path to improve performance.
This exercise was developed by Sonia Fahmy, Ethan Blanton and Sriharsha Gangam of Purdue University.
Overview
This tutorial leverages resources on the GENI aggregate in order to experiment with OpenFlow. For this tutorial, you will design a load-balancing OpenFlow controller capable of collecting flow status data from OpenFlow switches and using it to divide traffic between dissimilar network paths so as to achieve full bandwidth utilization. We are going to use OpenFlow Virtual Switches (OVS) and implement a Load Balancer OpenFlow Controller using Trema.
Please remember to release the resources you when you are done with them. The following is the topology that you will be creating:
Prerequisites
- A GENI account, if you don't have one sign up!
- Familiarity with how to reserve GENI resources with any of the GENI Tools (GENI Experimenter Portal, Omni, Flack). If you don't know you can take any of the tutorials:
- Familiarity with logging in to GENI compute resources.
- Basic understanding of OpenFlow. If you are going over this tutorial at home, flip through the tutorial's slides
- Create iRODs account
- Introduction to LabWiki tutorial
- Familiarity with Unix Command line - See "Tools" section
- A moderately deep understanding of the OpenFlow controller model and API is required.
- The OpenFlow specification, version 1.0 is a valuable reference for OpenFlow and the controller model.
Tools
1. Trema
Each exercise in this assignment will require you to design and implement an OpenFlow controller.
Numerous libraries and controller frameworks are available for this task. The guidelines in this assignment assume that you are using the Trema controller framework.
The Trema project web site, http://trema.github.com/trema/, contains documentation, a number of helpful examples, and some tutorial material for learning to use Trema.
2. Traffic Control (tc)
The tc command is available in the GNU Linux distributions on GENI nodes, found in the /sbin directory.
This command manipulates the Linux network forwarding tables, allowing for configuration of queuing disciplines,
which change the policies controlling which packets are forwarded in what order and which are dropped; and network
emulation, which allows the Linux kernel to emulate various network conditions such as delay or loss.
These two effects are provided by the qdisc and netem subcommands, respectively.
In these exercises, tc will be used to modify network conditions and enable different scheduling policies.
Example command lines will be provided.
3. Iperf
Iperf is available on the GENI nodes, located at /usr/local/etc/emulab/emulab-iperf.
Iperf is used to measure the bandwidth performance of Internet links. In these exercises,
it is used to study the behavior of TCP in the face of changing link characteristics.
Iperf runs as both a server and a client. The server is started with the -s command line option,
and listens for connections from the client. The client is started with the -c <server> command line option,
and connects to the server and sends data at either the fastest possible rate (given the underlying network)
or a user-specified rate. The -u option causes the sender or receiver to use UDP instead of TCP.
Various other options will be required for these exercises, and provided in the appropriate sections.
All Iperf measurement data should be recorded from the TCP receiver (server) side.
How to get Help
- Always ask your tutors (tutorial helper/presenter/TA) first. They are the fastest way to solve the problem.
- If you are using a specific aggregate or tool, you should consider registering in their mailing list. It is a great way to get connected with other GENI users and it is an excellent source of wisdom.
- Send mail to the GENI help list: help@geni.net.
- If you want to chat real-time with other GENI users and ask questions, join us in a GENI chatroom.
Tutorial Instructions
|
|
|
|
|
Appendices with useful explanations and tips for the tutorial
Attachments (2)
- OpenFlowLBExo.png (63.8 KB) - added by 11 years ago.
- OpenFlowLB-topo.png (31.0 KB) - added by 11 years ago.
Download all attachments as: .zip