Top Banner
An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)
82

An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

An Experimenter’s Guide to OpenFlow

GENI Engineering Workshop June 2010

Rob Sherwood(with help from many others)

Page 2: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Talk Overview

• What is OpenFlow

• How OpenFlow Works

• OpenFlow for GENI Experimenters

• Deployments

Next Session: OpenFlow “Office Hours”• Overview of available software, hardware• Getting started with NOX

Page 3: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

What is OpenFlow?

Page 4: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Short Story: OpenFlow is an API

• Control how packets are forwarded• Implementable on COTS hardware• Make deployed networks programmable

– not just configurable

• Makes innovation easier• Goal (experimenter’s perspective):

– No more special purpose test-beds– Validate your experiments on deployed

hardware with real traffic at full line speed

Page 5: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

How Does OpenFlow Work?

Page 6: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Ethernet SwitchEthernet Switch

Page 7: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Data Path (Hardware)Data Path (Hardware)

Control PathControl PathControl Path (Software)Control Path (Software)

Page 8: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Data Path (Hardware)Data Path (Hardware)

Control PathControl Path OpenFlowOpenFlow

OpenFlow ControllerOpenFlow Controller

OpenFlow Protocol (SSL/TCP)

Page 9: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Controller

PC

HardwareLayer

SoftwareLayer

Flow Table

MACsrc

MACdst

IPSrc

IPDst

TCPsport

TCPdport Action

OpenFlow Firmware

**5.6.7.8*** port 1

port 4port 3port 2port 1

1.2.3.45.6.7.8

OpenFlow Flow Table Abstraction

Page 10: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow BasicsFlow Table Entries

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

Rule Action Stats

1. Forward packet to port(s)2. Encapsulate and forward to controller3. Drop packet4. Send to normal processing pipeline5. Modify Fields

+ mask what fields to match

Packet + byte counters

Page 11: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

ExamplesSwitching

*

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport Action

* 00:1f:.. * * * * * * * port6

Flow Switching

port3

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

Action

00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6

Firewall

*

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport Forward

* * * * * * * * 22 drop

Page 12: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

ExamplesRouting

*

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport Action

* * * * * 5.6.7.8 * * * port6

VLAN Switching

*

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

Action

* * vlan1 * * * * *

port6, port7,port9

00:1f..

Page 13: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlowSwitch.org

Controller

OpenFlow Switch

PC

OpenFlow UsageDedicated OpenFlow Network

OpenFlow Switch

OpenFlow Switch

OpenFlowProtocol

Aaron’s code

Rule Action Statistics

Rule Action Statistics Rule Action Statistics

Page 14: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow Road Map

• OF v1.0 (current)– bandwidth slicing– match on Vlan PCP, IP ToS

• OF v1.1: Extensions for WAN, late 2010– multiple tables: leverage additional tables– tags, tunnels, interface bonding

• OF v2+ : 2011?– generalized matching and actions: an

“instruction set” for networking

Page 15: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

What OpenFlow Can’t Do (1)

• Non-flow-based (per-packet) networking– ex: sample 1% of packets– yes, this is a fundamental limitation– BUT OpenFlow can provide the plumbing to

connect these systems

• Use all tables on switch chips– yes, a major limitation (cross-product issue)– BUT an upcoming OF version will expose

these

Page 16: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

What OpenFlow Can’t Do (2)

• New forwarding primitives– BUT provides a nice way to integrate them

• New packet formats/field definitions – BUT plans to generalize in OpenFlow (2.0)

• Setup new flows quickly – ~10ms delay in our deployment– BUT can push down flows proactively to avoid

delays– Only a fundamental issue when delays are large

or new flow-rate is high

Page 17: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow for Experimenters

• Experiment Setup

• Design considerations

• OpenFlow GENI architecture

• Limitations

Page 18: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Why Use OpenFlow in GENI?

• Fine-grained flow-level forwarding control– e.g., between PL, ProtoGENI nodes– Not restricted to IP routes or Spanning tree

• Control real user traffic with Opt-In– Deploy network services to actual people

• Realistic validations– by definition: runs on real production network– performance, fan out, topologies

Page 19: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Experiment Setup Overview

Step 1: Write/Configure/Deploy

OpenFlow controller

Step 2: Create Slice and

register experiment

Step 3: Control the traffic of Users that opt-in to

Your experiment

• Each controller implements per-experiment custom forwarding logic

• Write your own or download pre-existing

• Configure per-experiment topology, queuing

•restricted to subset of real topology

• Specify desired user traffic: e.g., tcp.port=80

• Users opt-in via the Opt-In Manager website

• Reserving a compute node makes the experimenter a user on the network

Page 20: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Experiment Design Decisions

• Forwarding logic (of course)

• Centralized vs. distributed control

• Fine vs. coarse grained rules

• Reactive vs. Proactive rule creation

• Likely more: open research area

Page 21: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Centralized vs Distributed Control

Centralized Control

OpenFlow Switch

OpenFlow Switch

OpenFlow Switch

Controller

Distributed Control

OpenFlow Switch

OpenFlow Switch

OpenFlow Switch

Controller

Controller

Controller

Page 22: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Flow Routing vs. AggregationBoth models are possible with OpenFlow

Flow-Based

• Every flow is individually set up by controller

• Exact-match flow entries• Flow table contains one

entry per flow• Good for fine grain

control, e.g. campus networks

Aggregated

•One flow entry covers large groups of flows•Wildcard flow entries•Flow table contains one entry per category of flows•Good for large number of flows, e.g. backbone

Page 23: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Reactive vs. Proactive Both models are possible with OpenFlow

Reactive

• First packet of flow triggers controller to insert flow entries

• Efficient use of flow table

• Every flow incurs small additional flow setup time

• If control connection lost, switch has limited utility

Proactive

•Controller pre-populates flow table in switch•Zero additional flow setup time•Loss of control connection does not disrupt traffic•Essentially requires aggregated (wildcard) rules

Page 24: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Examples of OpenFlow in Action

• VM migration across subnets• energy-efficient data center network• WAN aggregation• network slicing• default-off network• scalable Ethernet• scalable data center network• load balancing• formal model solver verification• distributing FPGA processing

Summary of demos in next session

Page 25: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)
Page 26: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Opt-In Manager

• User-facing website + List of experiments• User’s login and opt-in to experiments

– Use local existing auth, e.g., ldap– Can opt-in to multiple experiments

• subsets of traffic: Rob & port 80 == Rob’s port 80

– Use priorities to manage conflicts

• Only after opt-in does experimenter control any traffic

Page 27: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Deployments

Page 28: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow Deployment at Stanford

34

Switches (23)APs (50)WiMax (1)

Page 29: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Live Stanford Deployment Statistics

http://yuba.stanford.edu/ofhallway/wide-right.html http://yuba.stanford.edu/ofhallway/wide-left.html

Page 30: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

GENI OpenFlow deployment (2010)

8 Universities and 2 National Research Backbones

Page 31: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Three EU Projects similar to GENI:Ophelia, SPARC, CHANGE

37

L2 Packet Wireless Routing

Pan-European experimental facility

L2 Packet Optics Content delivery

L2 Packet Shadow networks

L2 L3Packet Optics Content delivery

L2 Packet Emulation Wireless Content

delivery

Page 32: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Other OpenFlow deployments

• Japan - 3-4 Universities interconnected by JGN2plus

• Interest in Korea, China, Canada, …

Page 33: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

KOREA OpenFlow Network

Seoul

Daejeon

Deagu

Busan

Gwangju

Suwon

Controller

VLAN on KOREN

OpenFlow Switch (Linux PC)

NOX OpenFlow Controller

TJB

TJB Broadcasting Company

Japan OpenFlow Network

Sapporo Studio

Asahi Broadcasting Cooperation (ABC) at Osaka, Japan

Sapporo Japan

Server

Data Transmission

An Experiment of OpenFlow-enabled Network (Feb. 2009 - Sapporo Snow Festival Video Transmission)

A video clip of Sapporo snow festival is transmitted to TJB (Daejeon, KOREA) via ABC server (Osaka, JAPAN).

Page 34: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Highlights of Deployments• Stanford deployment

– McKeown group for a year: production and experiments – To scale later this year to entire building (~500 users)

• Nation-wide trials and deployments– 7 other universities and BBN deploying now– GEC9 in Nov, 2010 will showcase nation-wide OF– Internet 2 and NLR to deploy before GEC9

• Global trials– Over 60 organizations experimenting

2010 likely to be a big year for OpenFlow

Page 35: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Slide Credits

• Guido Appenzeller

• Nick McKeown

• Guru Parulkar

• Brandon Heller

• Lots of others– (this slide was also stolen)

Page 36: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Conclusion

• OpenFlow is an API for controlling packet forwarding

• OpenFlow+GENI allows more realistic evaluation of network experiments

• Glossed over many technical details– What does the API look like?

• Stay for the next session

Page 37: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

An Experimenter’s Guide to OpenFlow: Office Hours

GENI Engineering Workshop June 2010

Rob Sherwood(with help from many others)

Page 38: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Office Hours Overview

• Controllers

• Tools

• Slicing OpenFlow

• OpenFlow switches

• Demo survey

• Ask questions!

Page 39: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Controllers

Page 40: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Controller is King

• Principle job of experimenter: customize a controller for your OpenFlow experiment

• Many ways to do this:– Download, configure existing controller

• e.g., if you just need shortest path

– Read raw OpenFlow spec: write your own• handle ~20 OpenFlow messages

– Recommended: extend existing controller• Write a module for NOX – www.noxrepo.org

Page 41: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Starting with NOX

• Grab and build– `git clone git://noxrepo.org/nox`– `git checkout -b openflow-1.0 origin/openflow-1.0`– `sh boot.sh; ./configure; make`

• Build nox first: non-trivial dependencies

• API is documented inline– `cd doc/doxygen; make html`

– Still very UTSL

Page 42: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Writing a NOX Module

• Modules live in ./src/nox/{core,net,web}apps/*• Modules are event based

– Register listeners using APIs– C++ and Python bindings– Dynamic dependencies

• e.g., many modules (transitively) use discovery.py

• Currently have to update build manually– Automated with ./src/scripts/nox-new-c-app.py

• Most up to date docs are at noxrepo.org

Page 43: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Useful NOX Events

• Datapath_{join,leave}– New switch and switch leaving

• Packet_in/Flow_in– New Datagram, stream; respectively– Cue to insert a new rule/flow_mod

• Flow_removed– Expired rule (includes stats)

• Shutdown– Tear down module; clean up state

Page 44: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Tools• OpenFlow Wireshark plugin

• MiniNet

• oftrace

• many more…

Page 45: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow WireShark Plugin

Ships with OpenFlow reference controller

Page 46: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

MiniNet

• Machine-local virtual network– great dev/testing tool

• Uses linux virtual network features– Cheaper than VMs

• Arbitrary topologies, nodes

• Scriptable– Plans to move FV testing to MiniNet

• http://www.openflow.org/foswiki/bin/view/OpenFlow/Mininet

Page 47: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OFtrace

• API for analyzing OF Control traffic

• Calculate:– OF Message distribution– Flow Setup time– % of dropped LLDP messages– … extensible

• http://www.openflow.org/wk/index.php/Liboftrace

Page 48: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Slicing OpenFlow

• Vlan vs. FlowVisor slicing

• Use cases

Page 49: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Switch Based VirtualizationExists for NEC, HP switches but not flexible enough for GENI

Normal L2/L3 Processing

Flow Table

Production VLANs

Research VLAN 1

Controller

Research VLAN 2

Flow Table

Controller

Page 50: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow Switch

OpenFlowProtocolOpenFlowProtocol

OpenFlow FlowVisor & Policy Control

Craig’sController

Heidi’sControllerAaron’s

Controller

OpenFlowProtocolOpenFlowProtocol

FLOWVISOR BASED VIRTUALIZATION

OpenFlow Switch

OpenFlow Switch

Page 51: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

– The individual controllers and the FlowVisor are applications on commodity PCs (not shown) 

Stanford Infrastructure Uses Both

Flows

OpenFlow switches

WiMax

Packet processors

WiFi APs

Page 52: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Use Case: VLAN Based Partitioning

• Basic Idea: Partition Flows based on Ports and VLAN Tags

– Traffic entering system (e.g. from end hosts) is tagged– VLAN tags consistent throughout substrate

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

* * * * 1,2,3 * * * * *

* * * * 7,8,9 * * * * *

* * * * 4,5,6 * * * * *

Page 53: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlowProtocol

OpenFlowFlowVisor & Policy Control

BroadcastMulticast

OpenFlowProtocol

httpLoad-balancer

FLOWVISOR BASED VIRTUALIZATIONSeparation not only by VLANs, but any L1-L4 pattern

OpenFlow Switch

OpenFlow Switch

OpenFlow Switch

Page 54: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Use Case: New CDN - Turbo Coral ++

• Basic Idea: Build a CDN where you control the entire network

– All traffic to or from Coral IP space controlled by Experimenter

– All other traffic controlled by default routing

– Topology is entire network

– End hosts are automatically added (no opt-in)

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

* * * * * 84.65.* * * * *

* * * * * * 84.65.* * * *

* * * * * * * * * *

Page 55: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Use Case: Aaron’s IP– A new layer 3 protocol

– Replaces IP

– Defined by a new Ether Type

SwitchPort

MACsrc

MACdst

Ethtype

VLANID

IPSrc

IPDst

IPProt

TCPsport

TCPdport

* * * AaIP * * * * * *

* * * !AaIP * * * * * *

Page 56: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Switches

Page 57: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

• Linux based Software Switch

• Release concurrently with specification

• Kernel and User Space implementations

• Note: no v1.0 kernel-space implementation

• Limited by host PC, typically 4x 1Gb/s

• Not targeted for real-world deployments

• Useful for development, testing

• Starting point for other implementations

• Available under the OpenFlow License (BSD Style) at http://www.openflowswitch.org

Stanford Reference Implementation

Page 58: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Wireless Access Points

• Two Flavors:– OpenWRT based (Busybox

Linux)• v0.8.9 only

– Vanilla Software (Full Linux)• Only runs on PC Engines

Hardware

• Debian disk image

• Available from Stanford

• Both implementations are software only.

Page 59: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

NetFPGA

• NetFPGA-based implementation – Requires PC and NetFPGA card– Hardware accelerated– 4 x 1 Gb/s throughput

• Maintained by Stanford University• $500 for academics• $1000 for industry• Available at http://www.netfpga.org

Page 60: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

• Linux-based Software Switch

• Released after specification (v1.0 support 1 week old!)

• Not just an OpenFlow switch; also supports VLAN trunks, GRE tunnels, etc

• Kernel and User Space implementations

• Limited by host PC, typically 4x 1Gb/s

• Available under the Apache License (BSD Style) at http://www.openvswitch.org

Open vSwitch

Page 61: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow Vendor Hardware

more to follow...

NEC IP8800

HP ProCurve 5400 and others

Juniper MX-series(prototype)Cisco Catalyst 6k

(prototype)Core Router

EnterpriseCampusData Center

CircuitSwitch

Wireless

Pronto

Prototype Product

Ciena CoreDirector

WiMAX (NEC)

Cisco Catalyst 3750 (prototype)

Arista 7100 series (Q4 2010)

67

Page 62: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

HP ProCurve 5400 Series (+ others)

Praveen Yalagandula

Jean Tourrilhes

SujataBanerjee

Rick McGeer

CharlesClark

• Chassis switch with up to 288 ports of 1G or 48x10G (+ other interfaces available)

• Line-rate support for OpenFlow

• Deployed in 23 wiring closets at Stanford

• Limited availability for Campus Trials

• Contact HP for support details

Page 63: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

NEC IP8800• 24x/48x 1GE + 2x 10 GE

• Line-rate support for OpenFlow

• Deployed at Stanford

• Available for Campus Trials

• Supported as a product

• Contact NEC for details:

• Don Clark ([email protected])

• Atsushi Iwata ([email protected])

HideyukiShimonishi

JunSuzuki

MasanoriTakashima

NobuyukiEnomoto

PhilavongMinaxay

ShuichiSaito

TatsuyaYabe

YoshihikoKanaumi

(NEC/NICT)

AtsushiIwata

(NEC/NICT)

Page 64: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Pronto Switch

• Broadcom based 48x1Gb/s + 4x10Gb/s

• Bare switch – you add the software

• Supports Stanford Indigo and Toroki releases

• See openflowswitch.org blog post for more details

Page 65: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Stanford Indigo Firmware for Pronto

• Source available under OpenFlow License to parties that have NDA with BRCM in place

• Targeted for research use and as a baseline for vendor implementations (but not direct deployment)

• No standard Ethernet switching – OpenFlow only!

• Hardware accelerated

• Supports v1.0

• Contact Dan Talayco ([email protected])

Page 66: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Toroki Firmware for Pronto

• Fastpath-based OpenFlow Implementation

• Full L2/L3 management capabilities on switch

• Hardware accelerated

• Availability TBD

Page 67: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Ciena CoreDirector

• Circuit switch with experimental OpenFlow support

• Prototype only

• Demonstrated at Super Computing 2009

Page 68: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Umesh Krishnaswamy

MichaelaMezo

ParagBajaria

JamesKelly

BobbyVandalore

Juniper MX Series

• Up to 24-ports 10GE or 240-ports 1GE

• OpenFlow added via Junos SDK

• Hardware forwarding

• Deployed in Internet2 in NY and at Stanford

• Prototype

• Availability TBD

Page 69: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

FlavioBonomi

SaileshKumar

PereMonclus

• Various configurations available

• Software forwarding only

• Limited deployment as part of demos

• Availability TBD

Work on other Cisco models in progress

Cisco 6500 Series

Page 70: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

• Comes with reference distribution

• Monolithic C code – not designed for extensibility

• Ethernet flow switch or hub

Stanford Reference Controller

Page 71: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

• Available at http://NOXrepo.org

• Open Source (GPL)

• Modular design, programmable in C++ or Python

• High-performance (usually switches are the limit)

• Deployed as main controller in Stanford

NOX Controller

MartinCasado

ScottShenker

TeemuKoponen

NatashaGude

JustinPettit

Page 72: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

• Available at http://NOXrepo.org

• Policy + Nice GUI

• Branched from NOX long ago

• Available as a binary

• Part of Stanford deployment

Simple Network Access Control (SNAC)

Page 73: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Demo Previews

• FlowVisor

• Plug-n-Serve

• Aggregation

• OpenPipes

• OpenFlow Wireless

• MobileVMs

• ElasticTree

Page 74: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

– The individual controllers and the FlowVisor are applications on commodity PCs (not shown) 

Demo Infrastructure with Slicing

Flows

OpenFlow switches

WiMax

Packet processors

WiFi APs

Be sure to check out the demos during the break!!

Page 75: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

OpenFlow Demonstration Overview

Network Virtualization FlowVisor

Hardware Prototyping OpenPipes

Load Balancing PlugNServe

Energy Savings ElasticTree

Mobility MobileVMs

Traffic Engineering Aggregation

Wireless Video OpenRoads

TopicTopic DemoDemo

Page 76: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

FlowVisor Creates Virtual Networks

OpenFlow Switch

OpenFlow Switch

OpenFlow Switch

OpenFlowProtocol

FlowVisor

OpenPipesDemo

OpenRoadsDemo

OpenFlowProtocol

PlugNServeLoad-balancer

OpenPipesPolicy

OpenPipesPolicy

FlowVisor slices OpenFlow networks, creating multiple isolated and programmable

logical networks on the same physical topology.

FlowVisor slices OpenFlow networks, creating multiple isolated and programmable

logical networks on the same physical topology.

Each demo presented here runs in an isolated slice of Stanford’s production network.

Each demo presented here runs in an isolated slice of Stanford’s production network.

Page 77: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

•Plumbing with OpenFlow to build hardware systemsOpenPipes

Partition hardware designs

TestMix

resources

Page 78: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Goal: Load-balancing requests in unstructured networks

Plug-n-Serve: Load-Balancing Web Traffic using OpenFlow

OpenFlow means…

Complete control over traffic within the networkVisibility into network conditionsAbility to use existing commodity hardware

What we are showing

OpenFlow-based distributed load-balancerSmart load-balancing based on network and server loadAllows incremental deployment of additional resources

This demo runs on top of the FlowVisor, sharing the same physical network with other experiments and production traffic.

Page 79: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Dynamic Flow Aggregation on an OpenFlow Network

Scope•Different Networks want different flow granularity (ISP, Backbone,…)• Switch resources are limited (flow entries, memory)• Network management is hard• Current Solutions : MPLS, IP aggregationHow OpenFlow Helps?•Dynamically define flow granularity by wildcarding arbitrary header fields•Granularity is on the switch flow entries, no packet rewrite or encapsulation•Create meaningful bundles and manage them using your own software (reroute, monitor) Higher Flexibility, Better Control, Easier Management, Experimentation

Page 80: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)
Page 81: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

Intercontinental VM Migration

Moved a VM from Stanford to Japan without changing its IP.

VM hosted a video game server with active network connections.

Moved a VM from Stanford to Japan without changing its IP.

VM hosted a video game server with active network connections.

Page 82: An Experimenter’s Guide to OpenFlow GENI Engineering Workshop June 2010 Rob Sherwood (with help from many others)

ElasticTree: Reducing Energy in Data Center Networks

• The demo:• Hardware-based 16-

node Fat Tree• Your choice of traffic

pattern, bandwidth, optimization strategy

• Graph shows live power and latency variation

• Shuts off links and switches to reduce data center power• Choice of optimizers to balance power, fault tolerance, and BW• OpenFlow provides network routes and port statistics

demo credits: Brandon Heller, Srini Seetharaman, Yiannis Yiakoumis, David Underhill