= [wiki:GEC17Agenda/AdvancedOpenFlow/Procedure OpenFlow Load Balancer Tutorial] = {{{ #!html
Image Map
}}} == 1. Obtain resources == For this experiment we are going to use ExoGENI resources, we will need: * 6 VM (KVM): 2 (inside, outside) act as regular hosts; 2 (left, right) as regular switches; 2 (aggregator, switch) as OpenFlow switches (we will only program one: switch) If you are attending a Tutorial, the resources might have already been reserved for you, check with your instructor and skip this step. [[Image(OpenFlowLBExo.png, 40%)]] The various parts of the diagram are as follows: - '''Inside and Outside Nodes''': These nodes can be any ExoGENI Virtual Nodes. - '''Switch:''' This node is a Linux host running Open vSwitch. Your Load Balancing OpenFlow Controller will be running on this node as well. '''This is the main node that you will be working on'''. - '''Traffic Shaping Nodes (Left and Right)''': These are Linux hosts with two network interfaces. You can configure netem on the two traffic shaping nodes to have differing characteristics; the specific values don’t matter, as long as they are reasonable. Use several different delay/loss combinations as you test your load balancer. - '''Aggregator''': This node is a Linux host running Open vSwitch with a switch controller that will cause TCP connections to “follow” the decisions made by your OpenFlow controller on the Switch node. You will not need to change anything on this node, you only need to implement the OpenFlow controller on node "Switch". You can use any reservation tool you want to reserve this topology: * For Omni or Flack you can use the [wiki:GENIExperimenter/RSpecs RSpec] that is published at: http://emmy9.casa.umass.edu/WinterCamp14/openflow-loadbalancer-kvm.rspec and any ExoGENI AM * At the [https://portal.geni.net GENI Experimenter Portal] there is a public RSpec called "'''WCloadbalancer'''" that you can use, and either of the ExoGENI AMs Look at the [wiki:GEC17Agenda/AdvancedOpenFlow/Procedure#Prerequisites Prerequisites] for Tutorials about reserving resources. = [wiki:GEC17Agenda/AdvancedOpenFlow/Procedure Introduction] = = [wiki:GEC17Agenda/AdvancedOpenFlow/Procedure/Execute Next: Run Experiment] =