Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project Office IC2E 2014 Sponsored by the National Science Foundation “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 Sponsored by the National Science Foundation March 10 2014 2 OpenFlow… • Enables innovation in networking • Changes practice of networking Google’s SDN WAN Sponsored by the National Science Foundation March 10 2014 3 OpenFlow’s basic idea Sponsored by the National Science Foundation March 10 2014 4 OpenFlow’s basic idea Sponsored by the National Science Foundation March 10 2014 5 Network Devices DHCP access router point DNS proxy VPN firewall gateway NAT switch software Any network device can be OpenFlow enabled Sponsored by the National Science Foundation March 10 2014 6 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 Sponsored by the National Science Foundation March 10 2014 7 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 https://www.ntt-review.jp/archive/ntttechnical.php?contents=ntr201310fa3.html any Internet 2 end-points [1] B4: Experience with a Globally-Deployed Software Defined WAN, SIGCOMM’13, Jain et al. Sponsored by the National Science Foundation March 10 2014 9 GENI Programmable Network • Key GENI concept: slices & deep programmability – Internet: open innovation in application programs – GENI: open innovation deep into the network Good old Slice 0 Internet Slice 1 Slice 1 OpenFlow switches one of the ways GENI is providing deep programmability Sponsored by the National Science Foundation March 10 2014 Slice 2 Slice 3 Slice 4 10 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 Sponsored by the National Science Foundation March 10 2014 11 GENI Rack Campuses Funds in hand Needs funding Oct. 24, 2012 • 43 racks planned this year • Each rack has an OpenFlow-enabled switch Sponsored by the National Science Foundation March 10 2014 12 Core Networks Internet2 SDN 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 Sponsored by the National Science Foundation March 10 2014 13 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/ Sponsored by the National Science Foundation March 10 2014 http://openvswitch.org/ 14 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 Sponsored by the National Science Foundation March 10 2014 15 LabWiki The complete Experiment LifeCycle in a Tool Divya Bhat, Umass Amherst Sponsored by the National Science Foundation Experiment Workflow Sponsored by the National Science Foundation March 10 2014 17 The “Experiment Cycle” Design Notes Experiment Description Setup Runs Code Measurements Execute Sponsored by the National Science Foundation March 10 2014 18 The “Successful Experiment Cycle” Publish Design Notes Experiment Description Setup Runs Code Measurements Execute Sponsored by the National Science Foundation March 10 2014 19 “Experiment Cycle” in a Tool: LabWiki Sponsored by the National Science Foundation March 10 2014 20 Collect and Archive Experimenter 6.Obtain 1.Instrument iRODS 5.Save LabWiki 4.Plot 0.Reserve OML Server 2.Run GENI TestBed 3.Collect OML Client Sponsored by the National Science Foundation March 10 2014 21 Search Wiki Sponsored by the National Science Foundation Edit March 10 2014 Run 22 • 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 Sponsored by the National Science Foundation March 10 2014 23 • 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 Sponsored by the National Science Foundation March 10 2014 24 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 Sponsored by the National Science Foundation March 10 2014 Picture from : www.inetu.ne 25 OpenFlow Any Host OpenFlow Controller OpenFlow Protocol (SSL/TCP) Switch Control Path 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 Data Path (Hardware) Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt Sponsored by the National Science Foundation March 10 2014 26 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 Sponsored by the National Science Foundation March 10 2014 27 • 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 Sponsored by the National Science Foundation March 10 2014 28 Design Your Experiment S LB SW VM OF Ctl VM VM R • Start OpenFlow Load Balancing Controller • Connect OpenFlow Switch to Controller • Start several TCP flows from Sender to Receiver Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt Sponsored by the National Science Foundation March 10 2014 29 Monitor Your Experiment Monitor S SW LB VM OF Ctl VM VM R Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt Sponsored by the National Science Foundation March 10 2014 30 • 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 Sponsored by the National Science Foundation March 10 2014 31 Resources Reserved! Sponsored by the National Science Foundation March 10 2014 32 • 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 Sponsored by the National Science Foundation March 10 2014 33 Execute Experiment • Follow Instructions on Tutorial page to execute your experiment on LabWiki • Pay attention to the output of your OpenFlow Controller: Sponsored by the National Science Foundation March 10 2014 34 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 Trema API – Run your controller with Trema Sponsored by the National Science Foundation March 10 2014 35 Trema API • API for both C and Ruby • Event-triggered Functions: – – – – start() is called when controller starts up switch_ready() is called when switch connects in packet_in() is called when a packet is received stats_reply() is called when a flow stats reply message is received – ...... • More information about Trema API: – http://rubydoc.info/github/trema/trema/master/frames Sponsored by the National Science Foundation March 10 2014 36 • 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 Sponsored by the National Science Foundation March 10 2014 37 • 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 Sponsored by the National Science Foundation March 10 2014 38 Collect and Archive Experimenter 6.Obtain 1.Instrument iRODS 5.Save LabWiki 4.Plot 0.Reserve OML Server 2.Run GENI TestBed 3.Collect OML Client Sponsored by the National Science Foundation March 10 2014 39 • 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 Sponsored by the National Science Foundation March 10 2014 40 Part III: Finish Experiment AM API aggregate slice 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 Sponsored by the National Science Foundation March 10 2014 41