400 likes | 521 Views
Tutorial: OpenFlow in GENI with Instrumentation and Monitoring. Divya Bhat , Umass Amherst Niky Riga, GENI Project Office IC2E 2014. “The current Internet is at an impasse because new architecture cannot be deployed or even adequately evaluated” [PST04].
E N D
Tutorial: OpenFlow in GENI with Instrumentation and Monitoring DivyaBhat, Umass Amherst Niky Riga, GENI Project Office IC2E 2014
“The current Internet is at an impasse because new architecture cannot be deployed or even adequately evaluated” [PST04] [PST04]: Overcoming the Internet Impasse through Virtualization, Larry Peterson, Scott Shenker, Jonothan Turner Hotnets 2004 Modified slide from: http://cenic2012.cenic.org/program/slides/CenicOpenFlow-3-9-12-submit.pdf
OpenFlow… • Enables innovation in networking • Changes practice of networking Google’s SDN WAN
Network Devices DHCP access point router DNS proxy VPN gateway firewall NAT switch software Any network device can be OpenFlow enabled
Network Types Campus Multiple buildings, heterogeneous IT, groups of users, campus backbone Enterprise Data Centers Security, various sizes, storage, WAN optimizations Data Centers – Clouds Multi-tenant, virutalization, disaster recovery, VM mobility WAN Diversity, multiple domains/carriers/users
Deployment Stories Google global private WAN [1] Connects dozens of datacenters worldwide with a long-term average of 70% utilization over all links Stanford Campus deployment Part of Stanford campus migrated to OpenFlow NTT’s BGP Free Edge Internet 2 - AL2S Can build Layer 2 circuits between any Internet 2 end-points https://www.ntt-review.jp/archive/ntttechnical.php?contents=ntr201310fa3.html [1] B4: Experience with a Globally-Deployed Software Defined WAN, SIGCOMM’13, Jain et al.
GENI Programmable Network • Key GENI concept: slices & deep programmability • Internet: open innovation in application programs • GENI: open innovation deep into the network OpenFlow switches one of the ways GENI is providing deep programmability Good old Internet Slice 0 Slice 1 Slice 1 Slice 2 Slice 3 Slice 4
Racks and Campuses • GENI Rack projects are expanding available GENI infrastructure in the US. • Racks provide reservable, sliceable compute and network resources using Aggregate Managers. • GENI AM API compliance
GENI Rack Campuses Fundsin hand • 43 racks planned this year • Each rack has an OpenFlow-enabled switch Needs funding Oct. 24, 2012
Core Networks NLR committed to 2013 meso-scale expansion following reorganization Internet2 adding 10GbE paths to Advanced Layer 2 Services (AL2S) at 4 of 5 OpenFlow meso-scale/ProtoGENI Pops GENI Aggregate Manager in Internet2 AL2S and dynamic stitching with GENI coming in Spiral 5 Internet2 SDN networks
OpenFlow Experiments Debugging OpenFlow experiments is hard: • Network configuration debugging requires coordination • Many networking elements in play • No console access to the switch Before deploying your OpenFlow experiment test your controller. http://mininet.github.com/ http://openvswitch.org/
OpenFlow common PitFalls • Controller is responsible for all traffic, not just your application! • ARP, DHCP, LLDP • Reactive controllers • UDP • Performance in hardware switches • Not all actions are supported in hardware • No STP • Broadcast storms
LabWikiThe complete Experiment LifeCycle in a Tool DivyaBhat, UmassAmherst
The “Experiment Cycle” Runs Setup Design Notes ExperimentDescription Measurements Code Execute
The “Successful Experiment Cycle” Publish Runs Notes ExperimentDescription Setup Design Measurements Code Execute
Collect and Archive Experimenter iRODS Automated 6.Obtain 5.Save 5.Save LabWiki 1.Instrument 4.Plot 4.Plot OML Server 0.Reserve 2.Run 2.Run 3.Collect 3.Collect GENI TestBed OMLClient
Search Wiki Edit Run
Status: • Open-source MIT License • Code: • https://github.com/mytestbed/labwiki • Bug reports & documentation (hahaha): • http://omf.mytestbed.net/projects/labwiki • Plugin example: • https://github.com/mytestbed/labwiki_topology_plugin
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Balanced Service • Balance load between two or more server providers • In networks Balance traffic between two or more paths Need to run load balancer in each decision point, i.e. within the network Picture from : www.inetu.ne
OpenFlow • The controller is responsible for populating forwarding table of the switch • Controller can get statistics directly from each switch: • per port • per flow • per table Any Host OpenFlow Controller OpenFlow Protocol (SSL/TCP) Switch Control Path OpenFlow Data Path (Hardware) Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt
Today’s Experiment • Two paths from source to destination • Balance traffic between the two paths so that: • Both paths are equally utilized • All TCP flows have similar performance Picture from : www.spacegamejunkie.com
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Design Your Experiment • Start OpenFlow Load Balancing Controller • Connect OpenFlow Switch to Controller • Start several TCP flows from Sender to Receiver VM VM VM LB R S OF Ctl SW Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt
Monitor Your Experiment Monitor SW VM VM VM LB R S OF Ctl Throughput Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Execute Experiment • Follow Instructions on Tutorial page to execute your experiment on LabWiki • Pay attention to the output of your OpenFlow Controller:
Trema • Trema is NOT an OpenFlow Controller • Trema is a Programming Framework for implementing OpenFlow Controllers • Trema is a Platform to run OpenFlow Controllers • You need to: • Write your own controller using TremaAPI • Run your controller with Trema
TremaAPI • API for both C and Ruby • Event-triggered Functions: • start() iscalledwhencontrollerstartsup • switch_ready() iscalledwhenswitchconnects in • packet_in() iscalledwhen a packet isreceived • stats_reply() iscalledwhen a flowstatsreplymessageisreceived • ...... • More information about Trema API: • http://rubydoc.info/github/trema/trema/master/frames
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Collect and Archive Experimenter iRODS Automated 6.Obtain 5.Save 5.Save LabWiki 1.Instrument 4.Plot 4.Plot OML Server 0.Reserve 2.Run 2.Run 3.Collect 3.Collect GENI TestBed OMLClient
Part I: Design/Setup • Network Load Balancing and OpenFlow • Design your experiment • Obtain Resources • Part II: Execute • Configure and Initialize Services • Execute Experiment • Collect Measurements • Part III: Finish • Archive results • Teardown Experiment
Part III: Finish Experiment When your experiment is done, you should always release your resources. • Normally this is when you would archive your data • Delete your slivers at each aggregate sliver credentials sliver project RSpec resource user AM API aggregate certificate slice