1 / 33

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émeth Balázs Sonkoly, András Gulyás Nemeth F@tmit.bme.hu. Reproducible science. Mathematics: theorem-proof Biology: methodology refinement / rebuttal papers

kcoyne
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Sharing Networking Research Results with OpenFlow and Mininet in a few Easy Steps Felicián Németh Balázs Sonkoly, András Gulyás NemethF@tmit.bme.hu

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

  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 UrsHolzle, 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 App App App Closed App App App Operating System Specialized Packet Forwarding Hardware Operating System App App App App App App Specialized Packet Forwarding Hardware Operating System Specialized Packet Forwarding Hardware Operating System Specialized Packet Forwarding Hardware App App App Operating System Specialized Packet Forwarding Hardware 6

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

  8. The “Software-defined Network” App App App 1. Open interface to hardware (e.g., OpenFlow) Network Operating System 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 Control Path (Software) Data Path (Hardware)

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

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

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

  15. OF Controller is King 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. 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) • Limited by host PC, typically 4x 1Gb/s • 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 Product Prototype Juniper MX-series (prototype) Cisco Catalyst 6k (prototype) Core Router HP ProCurve 5400 and others Pronto Enterprise Campus Data Center Cisco Catalyst 3750 (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 highlightsto show how easy it is

  19. Multicast with MPLS

  20. Network Coding

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

  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 • https://www.opennetworking.org/wiki • /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 MPLS label: Flow id MPLS label: Flow id data MPLS label: Seq. no 2. data MPLS label: Seq. no 1

  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 • Decoded packet is re-processed: Flexibility • New actions support other scenarios too Packet decode action Duplicate Decode Re-label decodedpacket to red’ or blue’ re-process packet next action, e.g., output

  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”

More Related