Presentation is loading. Please wait.

Presentation is loading. Please wait.

Felicián Németh Balázs Sonkoly, András Gulyás

Similar presentations


Presentation on theme: "Felicián Németh Balázs Sonkoly, András Gulyás"— Presentation transcript:

1 Felicián Németh Balázs Sonkoly, András Gulyás NemethF@tmit.bme.hu
Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps Felicián Németh Balázs Sonkoly, András Gulyás The OpenFlow protocol is becoming an important enabler of network innovation by decoupling the control and data planes. Researchers can experiment with new network capabilities and management functions on high performance OpenFlow switches in real operating conditions. OpenFlow, however, is also useful not just to those researchers that work in the field of Software Defined Networking but to anybody doing research on computer networks or telecommunication. On the one hand, this new paradigm brings us rapid prototyping. On the other hand, using Mininet for OpenFlow development results in ready-to-share implementations. The presentation first gives a primer to OpenFlow basics, then as an example it walks through the implementation details of extending an OpenFlow software switch with a simple Network Coding forwarding mechanism. The work consists of three main parts: extending the OpenFlow protocol, extending the switch's forwarding mechanism, and extending Mininet. In the end we will see how these simple steps leads to a downloadable virtual machine disk image that fellow researchers an experiment with.

2 Reproducible science Mathematics: theorem-proof
Biology: methodology refinement / rebuttal papers Nature Editorial If you want reproducible science, the software needs to be open source

3 Research paper with easily 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

4 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)

5 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)

6 Current Internet Closed to Innovations in the Infrastructure Closed 6
App Operating System App Specialized Packet Forwarding Hardware Operating System App Specialized Packet Forwarding Hardware Operating System App Specialized Packet Forwarding Hardware Operating System Specialized Packet Forwarding Hardware App Operating System Specialized Packet Forwarding Hardware 6

7 “Software Defined Networking” approach to open it
Network Operating System App Operating System App Specialized Packet Forwarding Hardware Operating System App Specialized Packet Forwarding Hardware Operating System App Specialized Packet Forwarding Hardware Operating System Specialized Packet Forwarding Hardware App Operating System Specialized Packet Forwarding Hardware

8 The “Software-defined Network”
App App App Network Operating System 1. Open interface to hardware (e.g., OpenFlow) Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware

9 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 speed Simulation is not enough

10 Ethernet Switch

11 Control Path (Software)
Data Path (Hardware)

12 OpenFlow Controller Control Path OpenFlow Data Path (Hardware)
OpenFlow Protocol (SSL/TCP) Control Path OpenFlow Data Path (Hardware)

13 OpenFlow Usage Controller OpenFlow Switch OpenFlow Switch OpenFlow
PC OpenFlow Switch Rule Action OpenFlow Protocol OpenFlow Switch OpenFlow Switch Rule Action Rule Action OpenFlowSwitch.org 13 13

14 OpenFlow Firmware Controller PC OpenFlow Flow Table Abstraction
Software Layer Flow Table MAC src dst IP Src Dst TCP sport dport Action Possible actions Forward packet to port(s) Encapsulate and forward to controller Drop packet Send to normal processing pipeline Modify Fields Hardware Layer * port 1 port 1 port 2 port 3 port 4

15 OF Controller is King Write your own controller
PC 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

16 Cisco Catalyst 3750 (prototype)
OF switches: Software → Hardware 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) Firmware of some devices based on Open vSwitch 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 Prototype Product Core Router Cisco Catalyst 6k (prototype) Juniper MX-series (prototype) HP ProCurve 5400 and others Pronto Enterprise Campus Data Center Cisco Catalyst (prototype) Arista 7100 series (Q4 2010) NEC IP8800 Circuit Switch Ciena CoreDirector WiMAX (NEC) more to follow... Wireless

17 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

18 Part Two: Adding a new forwarding mechanism to OpenFlow
Implementations highlights to show how easy it is

19 Multicast with MPLS sudo -E mn --custom ~/nox11oflib/src/nox/coreapps/butterfly_app/butterfly.py controller mpls; vlc start; bottleneck 0.26; controller nc;

20 Network Coding

21 Network Coding = XOR-based NC in the butterfly topology Packet format
MPLS label: Flow id MPLS label: Seq. no 1 Seq. no 2. data Impossible in OpenFlow Create seq. numbers at s5 & s6 Encode at s7 Decode at s9 and s10

22 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

23 Extending the OpenFlow protocol
/display/PUBLIC/ONF+Registry Protocol is designed for extendibility New message types can be added as experimenter messages Get an Experimenter ID create from an IEEE OUI (if you have one) request one from ONF Define the wire format experimenter action: type = experimenter length Experimenter ID vendor specific data

24 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

25 Flow tables at s5 MPLS Paths Network Coding data data MPLS label:
Flow id data MPLS label: Flow id MPLS label: Seq. no 1 Seq. no 2. data

26 Experimenter Action: Set MPLS label from a counter
action parameters packet being processed in the pipeline reuse existing actions

27 Flow table at Node s9 decode action next action, e.g., output
Match: flow id actions red decode, output blue red  blue decode, drop red’ output blue’ Packet next action, e.g., output re-process packet decode action Duplicate Decode Re-label decoded packet to red’ or blue’ Decoded packet is re-processed: Flexibility New actions support other scenarios too

28 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

29 Extending Mininet 1. mn --custom=topo.py
custom topology and node parameters from a python file

30 Extending Mininet 2. Mininet isn’t designed for general extendibility
Source can be enhanced open-source, object-oriented small modifications spread everywhere leads to maintenance problems  alter Mininet’s behavior by monkey patches modify a class by overriding its method form another file can lead to upgrade problems as well

31 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

32 Sharing the VM Just upload the disk image somewhere
Put the sources up, e.g., to github

33 Summary Software 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”


Download ppt "Felicián Németh Balázs Sonkoly, András Gulyás"

Similar presentations


Ads by Google