40
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 Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Embed Size (px)

Citation preview

Page 1: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

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

Page 2: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 2March 10 2014

“The current Internet is at an impasse because new architecture cannot be

deployed or even adequately evaluated” [PST04]

Modified slide from: http://cenic2012.cenic.org/program/slides/CenicOpenFlow-3-9-12-submit.pdf

[PST04]: Overcoming the Internet Impasse through Virtualization, Larry Peterson, Scott Shenker, Jonothan Turner Hotnets 2004

Page 3: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 3March 10 2014

OpenFlow…

• Enables innovation in networking

• Changes practice of networking

Google’s SDN WAN

Page 4: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 4March 10 2014

OpenFlow’s basic idea

Page 5: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 5March 10 2014

OpenFlow’s basic idea

Page 6: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 6March 10 2014

Network Devices

NAT

firewall

DHCP

DNS

switch

VPN

router

gateway

proxy

access point

Any network device can be OpenFlow enabled

software

Page 7: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 7March 10 2014

Network Types

CampusMultiple buildings, heterogeneous IT, groups of users, campus backbone

Enterprise Data CentersSecurity, various sizes, storage, WAN optimizations

Data Centers – CloudsMulti-tenant, virutalization, disaster recovery, VM mobility

WANDiversity, multiple domains/carriers/users

Page 8: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 9March 10 2014

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 deploymentPart of Stanford campus migrated to OpenFlow

NTT’s BGP Free Edge

Internet 2 - AL2SCan 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.

https://www.ntt-review.jp/archive/ntttechnical.php?contents=ntr201310fa3.html

Page 9: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 10March 10 2014

GENI Programmable Network

• Key GENI concept: slices & deep programmability– Internet: open innovation in application programs

– GENI: open innovation deep into the network

Good old

InternetSlice 0

Slice 1

Slice 2

Slice 3

Slice 4

Slice 1

OpenFlow switches one of the ways GENI is providing

deep programmability

Page 10: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 11March 10 2014

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

Page 11: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 12March 10 2014

GENI Rack Campuses

• 43 racks planned this year• Each rack has an OpenFlow-enabled switch

Fundsin hand

Needsfunding

Oct. 24, 2012

Page 12: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 13March 10 2014

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

Page 13: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 14March 10 2014

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/

Page 14: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 15March 10 2014

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

Page 15: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation

LabWikiThe complete Experiment

LifeCycle in a Tool

Divya Bhat, Umass Amherst

Page 16: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 17March 10 2014

Experiment Workflow

Page 17: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 18March 10 2014

The “Experiment Cycle”

SetupDesign

Execute

Notes

Code

Experiment

Description

RunsMeasurements

Page 18: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 19March 10 2014

SetupDesign

Execute

Notes

Code

Experiment

Description

RunsMeasurements

Publish

The “Successful Experiment Cycle”

Page 19: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 20March 10 2014

“Experiment Cycle” in a Tool: LabWiki

Page 20: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 21March 10 2014

GENITestBed

OMLServer

LabWiki

iRODS

1.Instrument

2.Run

3.Collect

4.Plot

5.Save

OML Client

6.Obtain Automated

Collect and Archive

0.Reserve

Experimenter

2.Run

3.Collect

4.Plot

5.Save

Page 21: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 22March 10 2014

Wiki Edit Run

Search

Page 22: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 23March 10 2014

• 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

Page 23: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 24March 10 2014

• 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

Page 24: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 25March 10 2014

Balanced Service

Picture from : www.inetu.ne

• 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

Page 25: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 26March 10 2014

OpenFlow

Switch

Data Path (Hardware)

Control Path OpenFlow

Any Host

OpenFlow Controller

OpenFlow Protocol (SSL/TCP)

Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt

• 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

Page 26: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 27March 10 2014

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

Page 27: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 28March 10 2014

• 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

Page 28: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 29March 10 2014

Design Your Experiment

Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt

• Start OpenFlow Load Balancing Controller

• Connect OpenFlow Switch to Controller

• Start several TCP flows from Sender to Receiver

S

SW

VM VM

VM

R

LB

OFCtl

Page 29: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 30March 10 2014

Monitor Your Experiment

Modified slide from : http://www.deutsche-telekom-laboratories.de/~robert/GENI-Experimenters-Workshop.ppt

S

SW

VMVM

VM

R

LB

Monitor

Throughput

OFCtl

Page 30: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 31March 10 2014

• 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

Page 31: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 32March 10 2014

Resources Reserved!

Page 32: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 33March 10 2014

• 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

Page 33: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 34March 10 2014

Execute Experiment

• Follow Instructions on Tutorial page to execute your experiment on LabWiki

• Pay attention to the output of your OpenFlow Controller:

Page 34: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 35March 10 2014

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

Page 35: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 36March 10 2014

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

Page 36: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 37March 10 2014

• 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

Page 37: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 38March 10 2014

• 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

Page 38: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 39March 10 2014

GENITestBed

OMLServer

LabWiki

iRODS

1.Instrument

2.Run

3.Collect

4.Plot

5.Save

OML Client

6.Obtain Automated

Collect and Archive

0.Reserve

Experimenter

2.Run

3.Collect

4.Plot

5.Save

Page 39: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 40March 10 2014

• 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

Page 40: Sponsored by the National Science Foundation Tutorial: OpenFlow in GENI with Instrumentation and Monitoring Divya Bhat, Umass Amherst Niky Riga, GENI Project

Sponsored by the National Science Foundation 41March 10 2014

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

RSpecuserresourcesliv

er

AM API

slivercredentials

certificate