sharing networking research results with openflow and mininet in a few easy steps

33
Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps Felicián Németh Balázs Sonkoly, András Gulyás [email protected]

Upload: lula

Post on 25-Feb-2016

38 views

Category:

Documents


0 download

DESCRIPTION

Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps. Felicián Németh Balázs Sonkoly, András Gulyás Nemeth [email protected]. Reproducible science. Mathematics: theorem-proof Biology: methodology refinement / rebuttal papers - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps

Felicián NémethBalázs Sonkoly, András Gulyás

[email protected]

Page 2: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Reproducible science• Mathematics: theorem-proof• Biology: methodology refinement / rebuttal papers

• Nature Editorial If you want reproducible science, the software needs to be open source

Page 3: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Research paper witheasily reproducible results

Pros• Better quality

higher acceptance probability• Reproducibility

follow-up works, citations

Cons• Fear of being surpassed

– You have at least couples of months advantage

Page 4: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Part One: Primer to OpenFlow

Slide Credits• Rob Sherwood

– “GENI Engineering Workshop June 2010”

• Guido Appenzeller• Nick McKeown• Guru Parulkar• Brandon Heller• Lots of others

– (this slide was also stolen)(with the previous note)

Page 5: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Why?• “Google is using OpenFlow on custom-designed hardware for all the

internal networks it runs connecting its global data centers, said Urs Holzle, senior vice president of technology infrastructure at Google”

• “How Google is using OpenFlow to lower its network costs? Google is checking out a new form of networking protocol known as OpenFlow, in the communications networks that run between its data centers. The search giant is testing the use of software defined networks in order to lower the cost of delivering a bit of information.” (gigaom.com)

• “Virtualization and cloud infrastructure provider VMware (NYSE: VMW), announced this week that it will pay $1.05 billion in cash plus approximately $210 million in assumed unvested equity awards to acquire Nicira, a software-defined networking (SDN) specialist and provider of network virtualization for open source initiatives.“ (RCR Wireless News – Americas)

Page 6: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

App

App

App

6

Current Internet Closed to Innovations in the Infrastructure

Closed

Page 7: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

App

App

App

Specialized Packet Forwarding Hardware

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

OperatingSystem

App

App

App

Network Operating System

App App App

“Software Defined Networking” approachto open it

Page 8: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

App

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

Simple Packet Forwarding Hardware

App App

Simple Packet Forwarding Hardware Simple Packet

Forwarding Hardware

Network Operating System

1. Open interface to hardware (e.g., OpenFlow)

The “Software-defined Network”

Page 9: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

What is OpenFlow?

• OpenFlow is an open interface to hardware • Control how packets are forwarded• Implementable on COTS hardware• Make deployed networks programmable

– not just configurable• Vendors don’t need to expose implementation• Makes innovation easier• Goal (experimenter’s perspective):

– No more special purpose testbeds– Validate your experiments on deployed hardware

with real traffic at full line speedSimulation is not enough

Page 10: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Ethernet Switch

Page 11: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Data Path (Hardware)

Control PathControl Path (Software)

Page 12: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Data Path (Hardware)

Control Path OpenFlow

OpenFlow Controller

OpenFlow Protocol (SSL/TCP)

Page 13: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

OpenFlowSwitch.org

Controller

OpenFlow Switch

PC

OpenFlow Usage

OpenFlow Switch

OpenFlow Switch

OpenFlowProtocol

Rule Action

Rule Action Rule Action

Page 14: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

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

Possible actions1. Forward packet to port(s)2. Encapsulate and forward

to controller3. Drop packet4. Send to normal

processing pipeline5. Modify Fields

Page 15: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

OF Controller is King

• Write your own controller– handle ~20 OpenFlow messages

• Download, configure existing controller• Extend existing controller

– many frameworks to choose from(NOX, POX, Beacon, Maestro, Helios, …)

– event-driven– module-based extensibility

Controller

PC

Page 16: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

• Stanford Reference Implementation v1.0

• Ericsson implementation v1.1 & v1.2

• Linux-based Software Switch running in User Space

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

• Useful for development & testing

• Starting point for other implementations

• Open vSwitch

• Linux-based Software Switch running in Kernel Space

• Not just an OF switch, widely used by virtual machines (VirtualBox, XEN)

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

• Firmware of some devices based on Open vSwitch

OF switches: Software → Hardware• NetFPGA-based implementation

– Requires PC and NetFPGA card– Hardware accelerated– 4 x 1 Gb/s OR– 4 x 10 Gb/s throughput

• 1G: $500 for academics• 10G: $1,675 for academics

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 CoreDirectorWiMAX (NEC)

Cisco Catalyst 3750 (prototype) Arista 7100 series

(Q4 2010)

Page 17: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

MiniNet:“Network in a Laptop”

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

• Uses linux virtual network features– lightweight virtualization: cheaper than VMs– one switch is one small linux process

• Arbitrary topologies, nodes• Rapid prototyping, scalable, shareable,

path to hardware

Page 18: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Part Two: Adding a new forwarding mechanism to OpenFlow

Implementations highlightsto show how easy it is

Page 19: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Multicast with MPLS

Page 20: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Network Coding

Page 21: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

• XOR-based NC in the butterfly topology

• Packet format

XOR =XOR =XOR =

Network Coding

MPLS label:Flow id

MPLS label: Seq. no 1

MPLS label:Seq. no 2. data Impossible in OpenFlow

1.Create seq. numbers at s5 & s62. Encode at s73. Decode at s9 and s10

Page 22: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Network Coding in OpenFlow:Implementation Steps

• Extending the OpenFlow protocol– by defining new experimenter actions

to encode and decode packets• Writing a controller application

– that proactively fills up the flow tables• Extending the software switch's forwarding mechanism

– to handle the newly defined actions• Extending Mininet by

– creating the topology, and – adding new CLI commands for the demo

• Sharing the virtual machine

Page 23: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Extending the OpenFlow protocol• Protocol is designed for extendibility • New message types can be added

as experimenter messages

1. Get an Experimenter ID– create from an IEEE OUI

(if you have one)– request one from ONF

2. Define the wire format

https://www.opennetworking.org/wiki/display/PUBLIC/ONF+Registry

type = experimenter

length

Experimenter ID

vendor specific data

experimenter action:

Page 24: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Network Coding in OpenFlow:Implementation Steps

• Extending the OpenFlow protocol– by defining new experimenter actions

to encode and decode packets• Writing a controller application

– that proactively fills up the flow tables• Extending the software switch's forwarding mechanism

– to handle the newly defined actions• Extending Mininet by

– creating the topology, and – adding new CLI commands for the demo

• Sharing the virtual machine

Page 25: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Flow tables at s5• MPLS Paths • Network Coding

MPLS label:Flow id

MPLS label: Seq. no 1

MPLS label:Seq. no 2. data

MPLS label:Flow id data

Page 26: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Experimenter Action:Set MPLS label from a counter

• reuse existing actions

• action parameters• packet being processed

in the pipeline

Page 27: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Flow table at Node s9

• Decoded packet is re-processed: Flexibility– New actions support other scenarios too

Match: flow id actions

red decode, output

blue decode, output

red blue decode, drop

red’ output

blue’ output

Packet

next action, e.g., output re-process packet

decode action

Duplicate Decode

Re-label decodedpacket to red’ or blue’

Page 28: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Network Coding in OpenFlow:Implementation Steps

• Extending the OpenFlow protocol– by defining new experimenter actions

to encode and decode packets• Writing a controller application

– that proactively fills up the flow tables• Extending the software switch's forwarding mechanism

– to handle the newly defined actions• Extending Mininet by

– creating the topology, and – adding new CLI commands for the demo

• Sharing the virtual machine

Page 29: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Extending Mininet 1.• mn --custom=topo.py

custom topology and node parameters from a python file

Page 30: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Extending Mininet 2.• Mininet isn’t designed for general extendibility• Source can be enhanced

– open-source, object-oriented– small modifications spread everywhereleads to maintenance problems

alter Mininet’s behavior by monkey patchesmodify a class by overriding its method form another file– can lead to upgrade problems as well

Page 31: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Network Coding in OpenFlow:Implementation Steps

• Extending the OpenFlow protocol– by defining new experimenter actions

to encode and decode packets• Writing a controller application

– that proactively fills up the flow tables• Extending the software switch's forwarding mechanism

– to handle the newly defined actions• Extending Mininet by

– creating the topology, and – adding new CLI commands for the demo

• Sharing the virtual machine

Page 32: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

Sharing the VM

• Just upload the disk image somewhere

• Put the sources up, e.g., to github

Page 33: Sharing Networking Research Results with  OpenFlow  and Mininet in a few Easy Steps

SummarySoftware Defined Networking• is about to change the equipment market

– by the commoditization of routers and switches,• reshapes the active research areas

– from distributed computing towards centralization

Reproducible research results• Articles have no room for experiments’ details• Sharing a proof-of-concept, prototype implementation is enough• usually a Mininet script will do

– “runnable papers”