Sponsored by the National Science Foundation 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 2 March “The current Internet is at an impasse because new architecture cannot be deployed or even adequately evaluated” [PST04] Modified slide from: [PST04]: Overcoming the Internet Impasse through Virtualization, Larry Peterson, Scott Shenker, Jonothan Turner Hotnets 2004
Sponsored by the National Science Foundation 3 March OpenFlow… Enables innovation in networking Changes practice of networking Google’s SDN WAN
Sponsored by the National Science Foundation 4 March OpenFlow’s basic idea
Sponsored by the National Science Foundation 5 March OpenFlow’s basic idea
Sponsored by the National Science Foundation 6 March Network Devices NAT firewall DHCP DNS switch VPN router gateway proxy access point Any network device can be OpenFlow enabled software
Sponsored by the National Science Foundation 7 March 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 8 March OpenFlow benefits [1] External control –Enables network Apps –General-purpose computers (Moore’s Law) –Deeper integration –Network hardware becomes a commodity Centralized control –One place for apps to interact (authentication, auth, etc) –Simplifies algorithms –Global Optimization and planning [1]: OpenFlow: A radical New idea in Networking, Thomas A. Limoncelli CACM 08/12 (Vol 55 No. 8)
Sponsored by the National Science Foundation 9 March 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 [1] B4: Experience with a Globally-Deployed Software Defined WAN, SIGCOMM’13, Jain et al.
Sponsored by the National Science Foundation 10 March GENI Programmable Network Key GENI concept: slices & deep programmability –Internet: open innovation in application programs –GENI: open innovation deep into the network Good old Internet Slice 0 Slice 1 Slice 2 Slice 3 Slice 4 Slice 1 OpenFlow switches one of the ways GENI is providing deep programmability
Sponsored by the National Science Foundation 11 March 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 12 March GENI Rack Campuses 43 racks planned this year Each rack has an OpenFlow-enabled switch
Sponsored by the National Science Foundation 13 March 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
Sponsored by the National Science Foundation 14 March 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.
Sponsored by the National Science Foundation 15 March 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 LabWiki The complete Experiment LifeCycle in a Tool Divya Bhat, Umass Amherst
Sponsored by the National Science Foundation 17 March Experiment Workflow
Sponsored by the National Science Foundation 18 March The “Experiment Cycle” Setup Design Execute Notes Code Experiment Description Runs Measurements
Sponsored by the National Science Foundation 19 March Setup Design Execute Notes Code Experiment Description Runs Measurements Publish The “Successful Experiment Cycle”
Sponsored by the National Science Foundation 20 March “Experiment Cycle” in a Tool: LabWiki
Sponsored by the National Science Foundation 21 March GENI TestBed OML Server LabWiki iRODS 1.Instrument 2.Run 3.Collect 4.Plot 5.Save OML Client 6.Obtain Collect and Archive 0.Reserve Experimenter 2.Run 3.Collect 4.Plot 5.Save
Sponsored by the National Science Foundation 22 March WikiEditRun Search
Sponsored by the National Science Foundation 23 March Status: –Open-source MIT License –Code: –Bug reports & documentation (hahaha): –Plugin example:
Sponsored by the National Science Foundation 24 March 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 25 March Balanced Service Picture from : 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 26 March OpenFlow Switch Data Path (Hardware) Control Path OpenFlow Any Host OpenFlow Controller OpenFlow Protocol (SSL/TCP) Modified slide from : 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
Sponsored by the National Science Foundation 27 March 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 :
Sponsored by the National Science Foundation 28 March 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 29 March Design Your Experiment Modified slide from : Start OpenFlow Load Balancing Controller Connect OpenFlow Switch to Controller Start several TCP flows from Sender to Receiver S SW VM R LB OF Ctl
Sponsored by the National Science Foundation 30 March Monitor Your Experiment Modified slide from : S SW VM R LB OF Ctl
Sponsored by the National Science Foundation 31 March 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 32 March Resources Reserved!
Sponsored by the National Science Foundation 33 March 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 34 March 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 35 March 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 36 March 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: –
Sponsored by the National Science Foundation 37 March 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 38 March 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 39 March GENI TestBed OML Server LabWiki iRODS 1.Instrument 2.Run 3.Collect 4.Plot 5.Save OML Client 6.Obtain Collect and Archive 0.Reserve Experimenter 2.Run 3.Collect 4.Plot 5.Save
Sponsored by the National Science Foundation 40 March 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 41 March 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 slice project aggregate RSpec user resource sliver AM API sliver credentials certificate