Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps
description
Transcript of Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps
![Page 1: Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/1.jpg)
Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps
Felicián NémethBalázs Sonkoly, András Gulyás
![Page 2: Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/2.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/3.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/4.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/5.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/6.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/7.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/8.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/9.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/10.jpg)
Ethernet Switch
![Page 11: Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/11.jpg)
Data Path (Hardware)
Control PathControl Path (Software)
![Page 12: Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/12.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/13.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/14.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/15.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/16.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/17.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/18.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/19.jpg)
Multicast with MPLS
![Page 20: Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/20.jpg)
Network Coding
![Page 21: Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/21.jpg)
• 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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/22.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/23.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/24.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/25.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/26.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/27.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/28.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/29.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/30.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/31.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/32.jpg)
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](https://reader031.fdocuments.net/reader031/viewer/2022032207/568168ad550346895ddf5da9/html5/thumbnails/33.jpg)
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”