Using OpenFlow and Orbit to Achieve Mobility in a Heterogeneous Wireless Network
description
Transcript of Using OpenFlow and Orbit to Achieve Mobility in a Heterogeneous Wireless Network
Sponsored by the National Science Foundation
Using OpenFlow and Orbit to Achieve Mobility in a
Heterogeneous Wireless Network
Ryan [email protected]
GREE-SC2014Iowa State University
Sponsored by the National Science Foundation 2GREESC2014
Outline
1. A brief overview of software defined networking (SDN) and OpenFlow (OF)
2. OF controller and OF switch software components and interaction
3. The Floodlight (FL) OF controller4. Achieving IP Mobility with OF5. Tutorial / Walk-through
Sponsored by the National Science Foundation 3GREESC2014
What is Software Defined Networking and OpenFlow?
Sponsored by the National Science Foundation 4GREESC2014
• Physical separation of network control plane from forwarding/data plane
• Network control– Centrally managed– Directly programmable
• Network infrastructure– Abstracted from applications
What is SDN?
Sponsored by the National Science Foundation 5GREESC2014
Network Operating SystemAPI Feature A API Feature B API Feature C
Packet Forwarding
Packet Forwarding
Packet Forwarding
Packet Forwarding
Packet Forwarding
How Does SDN Work?
Sponsored by the National Science Foundation 6GREESC2014
• Link between SDN control and infrastructure layers
• OF-enabled infrastructure communicates with an OF controller via the OF protocol
What Is OpenFlow?
Sponsored by the National Science Foundation 7GREESC2014
OpenFlow ControllerNetwork Services Custom Services
Packet Forwarding
Packet Forwarding
Packet Forwarding
Packet Forwarding
Packet Forwarding
User Applications
APIs
How Does OF Work?
Sponsored by the National Science Foundation 8GREESC2014
Basic SDN packet handling example
OpenFlowController
Sponsored by the National Science Foundation 9GREESC2014
OpenFlowController
User 1 User 2
Basic SDN packet handling example
Sponsored by the National Science Foundation 10GREESC2014
OpenFlowController
User 1 User 2
Basic SDN packet handling example
Sponsored by the National Science Foundation 11GREESC2014
OpenFlow Switches and Controllers
Sponsored by the National Science Foundation 12GREESC2014
1. Power On2. Bootloader3. OF-Enabled OS
Data Path / Switching Hardware
Control Path OpenFlow
Flow Table
time
Bottom-Up: An OF-Enabled Switch
Sponsored by the National Science Foundation 13GREESC2014
Data Path / Switching Hardware
Control Path
Flow Table
OpenFlow
Hardware
OS (e.g. Linux, Mac, Windows, etc.)
Network Services Custom Services APIs
OpenFlow Controller (e.g. Floodlight, NOX, etc.)Controller
OF Switch Connection to Controller
Sponsored by the National Science Foundation 14GREESC2014
• Switch probes for controller– Configured with controller IP/port (6633/6653)– Connection established via TCP/TLS– Standalone or secure modes
• Controller can learn topology– Packet-out LLDP– Devices and other participating OF switches
discovered and mapped
OF Switch Connection to Controller
Sponsored by the National Science Foundation 15GREESC2014
Controller
Hardware
OS (e.g. Linux, Mac, Windows, etc.)
OpenFlow Controller (e.g. Floodlight, NOX, etc.)
Hardware
OS (e.g. Linux, Mac, Windows, etc.)
Interface to Controller (e.g. REST)
Application Requesting Controller Service(s)
Network Services Custom Services APIs
Application Connection to Controller
Sponsored by the National Science Foundation 16GREESC2014
• Controller-dependent• Floodlight provides REST API
– JSON– Modify or query running configuration– Expandable with custom modules
• Options are vast with open-source– Customize controller APIs and behavior– User-application-independent (e.g. a transparent
network service like SOS)
Application Connection to Controller
Sponsored by the National Science Foundation 17GREESC2014
• Open-source OF controller• Sponsored and supported
by Big Switch Networks• Written in Java and easily
used with Eclipse• Modifiable and
expandable to suit any application via modules
• Large developer community and support group
The Floodlight OpenFlow Controller
Sponsored by the National Science Foundation 18GREESC2014
• What is a Floodlight (FL) module?– FL service that reacts to switch/controller
events, manages running switches, and/or manages controller configuration
– Java package– FL ships with many modules, but custom
modules are supported• Modules can work collaboratively and be
chained to achieve desired results
Floodlight Modules
Sponsored by the National Science Foundation 19GREESC2014
1. Execute2. Parse module list3. Load modules4. Start REST service5. Start FL Provider
Service (Core)
time
FL Provider Service
FL Modules (e.g. Forwarding, DHCP, Your_Module, etc.)
REST Service
Floodlight Architecture
Sponsored by the National Science Foundation 20GREESC2014
Floodlight Architecture
Sponsored by the National Science Foundation 21GREESC2014
• Off-the-shelf, the FL controller mimics traditional learning switch behavior for all connected switches
• Custom modules allow for advanced SDN applications/behaviors– SOS, HetNet Mobility, GENI Cinema, etc.– Add your custom modules here too!
• REST API allows third party apps to query and modify the running configuration of FL
Customizing Floodlight Behavior
Sponsored by the National Science Foundation 22GREESC2014
How can Software Defined Networking and OpenFlow
be Used to Achieve a Vertical Handover?
Sponsored by the National Science Foundation 23GREESC2014
• Part I: Design/Setup– Use OpenFlow to perform L2 handoff
• Part II: Execute– Configure and initialize software and scripts– Execute handoff experiment
• Part III: Finish– Determine results– Kill processes– Shutdown node and logout
Sponsored by the National Science Foundation 24GREESC2014
• Provide mobility for clients over IPv4• Entirely SDN and OF-based solution
– Network-level• Migration detection• IP address assignment and management• Packet routing
– Client-level• Packet routing• Interface switching• Transparent service to application
Mobility OverHeterogeneous Networks
Sponsored by the National Science Foundation 25GREESC2014
• Network-Level, Mobile IP:– Home/Foreign Agents OpenFlow Controller– Mobile IP tunnels OpenFlow flows– DHCP server on OpenFlow controller
• Client-Level, Vertical Handoff:– Change physical interface broken socket– Open vSwitch + Floodlight OF controller
• Manage the physical interfaces via SDN• End-user sees “always-up” virtual interface
Mobility OverHeterogeneous Networks
Sponsored by the National Science Foundation 26GREESC2014
Client Connects to WiMAXClient-Level
Sponsored by the National Science Foundation 27GREESC2014
Client Connects to WiMAX
Controller andDHCP Server
Network-Level
Sponsored by the National Science Foundation 28GREESC2014
Client Uses WiMAX Network
Controller andDHCP Server
Network-Level
Sponsored by the National Science Foundation 29GREESC2014
Client Migrates
Controller andDHCP Server
Network-Level
Sponsored by the National Science Foundation 30GREESC2014
Client Switches to WiFi InterfaceClient-Level
Sponsored by the National Science Foundation 31GREESC2014
Network Responds to Handover
Controller andDHCP Server
Network-Level
Sponsored by the National Science Foundation 32GREESC2014
Client Connection Rerouted to WiFi
Controller andDHCP Server
Network-Level
Sponsored by the National Science Foundation 33GREESC2014
Client-Level Mobility OverHeterogeneous Networks
Sponsored by the National Science Foundation 34GREESC2014
Sponsored by the National Science Foundation 35GREESC2014
Sponsored by the National Science Foundation 36GREESC2014
• Part I: Design/Setup– Use OpenFlow to perform L2 handoff
• Part II: Execute– Configure and initialize software and scripts– Execute handoff experiment
• Part III: Finish– Determine results– Kill processes– Shutdown node and logout
Sponsored by the National Science Foundation 37GREESC2014
Configure Experiment• Experiment is a simple ping to demonstrate a vertical
handoff between a WiFi and a WiMAX interface on a node in the Orbit grid testbed
• Detailed instructions:– http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/
WiMAXOpenFlow• GREE-SC2014 group and node assignments:
– http://tinyurl.com/greesc2014-d7-node-info
Sponsored by the National Science Foundation 38GREESC2014
Configure Experiment• Enable WiMAX for your GENI project
– Login to GENI at portal.geni.net– Scroll down to the Tools section and select WiMAX– Select the button to enable WiMAX for your project (GREESC14)– Click Submit– Note your username
Sponsored by the National Science Foundation 39GREESC2014
Configure Experiment• You should be able to login to the Orbit testbed
for your project– eval `ssh-agent –s`– ssh-add /path/to/private/key
• Open two separate terminal windows and in each SSH to Orbit– ssh [email protected]
Sponsored by the National Science Foundation 40GREESC2014
Configure Experiment• Load AP image onto node
– omf load -o 1200 -i rizard-greesc2014-ap.ndz -t node11-11
• Load Server image onto node– omf load -o 1200 -i rizard-greesc2014-server.ndz -t node10-10
• Load Client image onto node– omf load -o 1200 -i rizard-greesc2014-client.ndz -t <client-node>
• Power off and boot nodes– omf tell -a offh -t node11-11,node10-10,<client-node>
– omf tell -a on -t node11-11,node10-10,<client-node>
Do NOT Complete at GREE-
SC2014
It’s Already Been Done For You
Sponsored by the National Science Foundation 41GREESC2014
Configure Experiment• Setup AP node (Already done for GREE-SC2014)
– ssh root@node11-11– Start: ./gec20_setup_ap.sh
• Setup Server node (Already done for GREE-SC2014)– ssh root@node10-10– Start: ./StartupScripts/gec20_setup.sh– ARP: ./StartupScripts/arp_add_list.sh
• Setup Client node – Your Turn!– ssh root@<client-node>– Disable Floodlight’s forwarding module– Configure startup and switching scripts– Start: ./StartupScripts/gec20_setup.sh
Sponsored by the National Science Foundation 42GREESC2014
• Part I: Design/Setup– Use OpenFlow to perform L2 handoff
• Part II: Execute– Configure and initialize software and scripts– Execute handoff experiment
• Part III: Finish– Determine results– Kill processes– Shutdown node and logout
Sponsored by the National Science Foundation 43GREESC2014
Execute Experiment1) WiFi flows are installed as “initial flows” when setup
script is run.2) In a new terminal, start a ping to the server IP,
10.41.105.105. The packets will be switched out the WiFi interface.
3) Run the WiMAX switching script. The ping packets will be switched out the WiMAX interface../SwitchingScripts/gec20_switch_to_wimax.sh
4) You’ve performed a handoff! Want proof? View the flows and packet counts on each OVS bridge before and after an interface-switch.
5) Alternate inferfaces and switch back to WiFi../SwitchingScripts/gec20_switch_to_wifi.sh
Sponsored by the National Science Foundation 44GREESC2014
• Part I: Design/Setup– Use OpenFlow to perform L2 handoff
• Part II: Execute– Configure and initialize software and scripts– Execute handoff experiment
• Part III: Finish– Determine results– Kill processes– Shutdown node and logout
Sponsored by the National Science Foundation 45GREESC2014
Teardown Experiment
• When the experiment is done, on the Client node stop the Floodlight controller, stop OVS:
./StartupScripts/gec20_teardown.sh• On the Server node: ./StartupScripts/gec20_teardown.sh• Exit all SSH connections to nodes and power off
resources: omf tell -a offh -t all• Exit Orbit console SSH connections.