OpenFlow/Software-defined Networking Nov, 2011 Srini Seetharaman Tech Lead, SDN Deutsche Telekom Innovation Center
The Ossified Network 6000+ RFCs Barrier to entry Bloated Power Hungry Many complex functions baked into the infrastructure OSPF, BGP, multicast, differentiated services, Traffic Engineering, NAT, firewalls, MPLS, redundant layers, … An industry with a “mainframe-mentality”, reluctant to change Million of lines of source code Billions of gates Specialized Packet Forwarding Hardware Operating System Feature Feature Routing, management, mobility management,  access control, VPNs, …
Open Systems gap in the tool space none  have all the desired attributes! Performance Fidelity Scale Real User Traffic? Complexity Open Simulation medium medium no medium yes Emulation medium low no medium yes Software Switches poor low yes medium yes NetFPGA high low yes high yes Network Processors high medium yes high yes Vendor Switches high high yes low no
Current Internet  Closed to Innovations in the Infrastructure Closed 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 Operating System Operating System Operating System Operating System Operating System App App App
“ Software Defined Networking” approach to open it 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 Operating System Operating System Operating System Operating System Operating System App App App Network Operating  System App App App
The “Software-defined Network” 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 3. Well-defined open API 2. At least one good operating system Extensible, possibly open-source
How does OpenFlow work?
Ethernet Switch
Data Path (Hardware) Control Path Control Path (Software)
Data Path (Hardware) Control Path OpenFlow OpenFlow Controller OpenFlow Protocol (SSL/TCP)
OpenFlow usage Controller OpenFlow Switch OpenFlow Switch OpenFlow Switch Alice’s code Decision? OpenFlow Protocol OpenFlow offloads control intelligence to a remote software PC Alice’s Rule Alice’s Rule Alice’s Rule
Controller PC Hardware Layer Software Layer Flow Table OpenFlow Client port 4 port 3 port 2 port 1 1.2.3.4 5.6.7.8 OpenFlow Example MAC src MAC dst IP Src IP Dst TCP sport TCP dport Action * * 5.6.7.8 * * * port 1
OpenFlow Basics  Flow Table Entries Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot L4 sport L4 dport Rule Action Stats Forward packet to zero or more ports Encapsulate and forward to controller Send to normal processing pipeline Modify Fields Any extensions you add! + mask what fields to match Packet + byte counters VLAN pcp IP ToS
OpenFlow: a pragmatic compromise + Speed, scale, fidelity of vendor hardware + Flexibility and control of software and simulation Vendors don’t need to expose implementation Leverages hardware inside most switches today (ACL tables)
Examples Switching * * 00:1f:.. * * * * * * * port6 Flow Switching port3 00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6 Firewall * * * * * * * * * 22 drop Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action
Examples Routing * * * * * * 5.6.7.8 * * * port6 VLAN Switching * * * vlan1 * * * * * port6,  port7, port9 00:1f.. Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action
Centralized vs Distributed Control Both models are possible with OpenFlow Centralized Control Controller Distributed Control Controller Controller Controller OpenFlow  Switch OpenFlow  Switch OpenFlow  Switch OpenFlow  Switch OpenFlow  Switch OpenFlow  Switch
Flow Routing vs. Aggregation Both 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
Reactive vs. Proactive (pre-populated) 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
Usage examples Alice’s code: Simple learning switch  Per Flow switching Network access control/firewall Static “VLANs” Her own new routing protocol:  unicast, multicast, multipath Home network manager Packet processor (in controller) IPvAlice Stanford demonstrated VM migration Server Load balancing Mobility manager Power management Network monitoring and visualization Network debugging Network slicing …  and much more you can create!
Quiz Time How do I provide control connectivity? Is it really clean slate? Why aren’t users complaining about time to setup flows over OpenFlow? (Hint: What is the predominant traffic today?) Considering switch CPU is the major limit, how can one take down an OpenFlow network?  How to perform topology discovery over OpenFlow-enabled switches? What happens when you have a non-OpenFlow switch inbetween? What if there are two islands connected to same controller? How scalable is OpenFlow? How does one scale deployments?
What can you not do with OpenFlow ver1.0 Non-flow-based (per-packet) networking e.g., Handling pkt 1 differently from pkt 2 of same flow yes, this is a fundamental limitation BUT OpenFlow provides the plumbing to connect devices New forwarding primitives BUT provides a nice way to integrate them through extensions New packet formats/field definitions  BUT a generalized OpenFlow (2.0) is on the horizon Optical Circuits BUT efforts underway to apply OpenFlow model to circuits Low-setup-time individual flows BUT can push down flows proactively to avoid delays
Where it’s going OF v1.1: Extensions for WAN, spring 2011 multiple tables: leverage additional tables tags and tunnels multipath forwarding OF v2+ generalized matching and actions: an “instruction set” for networking
OpenFlow Implementations (Switch and Controller)
OpenFlow building blocks Controller NOX Slicing Software FlowVisor FlowVisor Console Applications LAVI ENVI (GUI) Expedient n-Casting NetFPGA Software  Ref. Switch Broadcom  Ref. Switch OpenWRT PCEngine  WiFi AP Commercial Switches Stanford Provided OpenFlow Switches SNAC Stanford Provided Monitoring/ debugging tools oflops oftrace openseer OpenVSwitch HP, NEC, Pronto, Juniper.. and many more  Beacon Helios Maestro
Current SDN hardware Ciena Coredirector NEC IP8800 More coming soon... Juniper MX-series HP Procurve 5400 Pronto 3240/3290 WiMax (NEC) PC Engines Netgear 7324
Commercial Switch Vendors Notes Virtualize Model No legacy protocols (like VLAN and STP) Most actions processed in hardware MAC header rewriting in h/w OpenFlow takes precedence Most actions processed in hardware MAC header rewriting in h/w LACP, VLAN and STP processing before OpenFlow Wildcard rules or non-IP pkts processed in s/w Header rewriting in s/w CPU protects mgmt during loop 1 OF instance per switch Pronto 3240 or 3290 with Pica8 or Indigo firmware 1 OF instance per VLAN NEC IP8800 1 OF instance per VLAN HP Procurve 5400zl or 6600
Controller Vendors Closed-source Datacenter networks Nicira’s ONIX Open-source GPL Code based on NOX0.4 Enterprise network C++, Python and Javascript Currently used by campuses SNAC Notes Vendor Open-source GPL C++ and Python Researcher friendly Nicira’s NOX Open-source Researcher friendly Java-based Stanford’s Beacon Open-source Based on Java Maestro (from Rice Univ) Notes Vendor Open-source Written in C Closed source Based on Beacon Enterprise network NEC’s Helios BigSwitch controller
Growing Community Vendors and start-ups  Providers and business-unit More... More... Note: Level of interest varies
Virtualizing OpenFlow
Trend Computer Industry Network Industry Windows (OS) Windows (OS) Linux Mac OS x86 (Computer) Windows (OS) App App Linux Linux Mac OS Mac OS Virtualization layer App Controller 1 App App Controller 2 Virtualization or “Slicing” App OpenFlow Controller 1 NOX (Network OS) Controller 2 Network OS
Simple Packet  Forwarding Hardware Network Operating  System 1 Open interface to hardware Virtualization or “Slicing” Layer Network Operating  System 2 Network Operating  System 3 Network Operating  System 4 App App App App App App App App Many operating systems, or Many versions Open interface to hardware Isolated “slices” Simple Packet  Forwarding Hardware Simple Packet  Forwarding Hardware Simple Packet  Forwarding Hardware Simple Packet  Forwarding Hardware
Switch Based Virtualization Exists for NEC, HP switches but not flexible enough Normal L2/L3 Processing Production VLANs Research VLAN 1 Research VLAN 2 Flow Table Controller Flow Table Controller
FlowVisor-based Virtualization OpenFlow Protocol Craig’s Controller Heidi’s Controller Aaron’s Controller OpenFlow Protocol Topology discovery is per slice OpenFlow  Switch OpenFlow FlowVisor  & Policy Control OpenFlow  Switch OpenFlow  Switch
OpenFlow Protocol Broadcast Multicast http Load-balancer FlowVisor-based Virtualization   Separation not only by VLANs, but any L1-L4 pattern dl_dst=FFFFFFFFFFFF tp_src=80, or tp_dst=80 OpenFlow FlowVisor & Policy Control OpenFlow Protocol OpenFlow  Switch OpenFlow  Switch OpenFlow  Switch
FlowSpace: Maps Packets to Slices
FlowVisor Message Handling Packet Exception Policy Check: Is this rule allowed? Policy Check: Who controls this packet? Full Line Rate Forwarding Rule Packet OpenFlow Firmware Data Path Alice Controller Bob Controller Cathy Controller FlowVisor OpenFlow OpenFlow
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) Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport * * * * * 84.65.* * * * * * * * * * * 84.65.* * * * * * * * * * * * * *
Summary
Summary Software-defined networking is still evolving OpenFlow is being deployed in over 100 organizations world-wide GEC9 in Nov, 2010 showcased nation-wide OF Internet 2 and NLR starting to serve as the GENI Backbone Are you innovating in your networks??
Credits Thanks to following for contributing content to the tutorial: Nick McKeown Guru Parulkar Brandon Heller Yiannis Yiakoumis  Guido Appenzeller Rob Sherwood Masa Kobayashi

OpenFlow tutorial

  • 1.
    OpenFlow/Software-defined Networking Nov,2011 Srini Seetharaman Tech Lead, SDN Deutsche Telekom Innovation Center
  • 2.
    The Ossified Network6000+ RFCs Barrier to entry Bloated Power Hungry Many complex functions baked into the infrastructure OSPF, BGP, multicast, differentiated services, Traffic Engineering, NAT, firewalls, MPLS, redundant layers, … An industry with a “mainframe-mentality”, reluctant to change Million of lines of source code Billions of gates Specialized Packet Forwarding Hardware Operating System Feature Feature Routing, management, mobility management, access control, VPNs, …
  • 3.
    Open Systems gapin the tool space none have all the desired attributes! Performance Fidelity Scale Real User Traffic? Complexity Open Simulation medium medium no medium yes Emulation medium low no medium yes Software Switches poor low yes medium yes NetFPGA high low yes high yes Network Processors high medium yes high yes Vendor Switches high high yes low no
  • 4.
    Current Internet Closed to Innovations in the Infrastructure Closed 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 Operating System Operating System Operating System Operating System Operating System App App App
  • 5.
    “ Software DefinedNetworking” approach to open it 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 Operating System Operating System Operating System Operating System Operating System App App App Network Operating System App App App
  • 6.
    The “Software-defined Network”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 3. Well-defined open API 2. At least one good operating system Extensible, possibly open-source
  • 7.
  • 8.
  • 9.
    Data Path (Hardware)Control Path Control Path (Software)
  • 10.
    Data Path (Hardware)Control Path OpenFlow OpenFlow Controller OpenFlow Protocol (SSL/TCP)
  • 11.
    OpenFlow usage ControllerOpenFlow Switch OpenFlow Switch OpenFlow Switch Alice’s code Decision? OpenFlow Protocol OpenFlow offloads control intelligence to a remote software PC Alice’s Rule Alice’s Rule Alice’s Rule
  • 12.
    Controller PC HardwareLayer Software Layer Flow Table OpenFlow Client port 4 port 3 port 2 port 1 1.2.3.4 5.6.7.8 OpenFlow Example MAC src MAC dst IP Src IP Dst TCP sport TCP dport Action * * 5.6.7.8 * * * port 1
  • 13.
    OpenFlow Basics Flow Table Entries Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot L4 sport L4 dport Rule Action Stats Forward packet to zero or more ports Encapsulate and forward to controller Send to normal processing pipeline Modify Fields Any extensions you add! + mask what fields to match Packet + byte counters VLAN pcp IP ToS
  • 14.
    OpenFlow: a pragmaticcompromise + Speed, scale, fidelity of vendor hardware + Flexibility and control of software and simulation Vendors don’t need to expose implementation Leverages hardware inside most switches today (ACL tables)
  • 15.
    Examples Switching ** 00:1f:.. * * * * * * * port6 Flow Switching port3 00:20.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6 Firewall * * * * * * * * * 22 drop Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action
  • 16.
    Examples Routing ** * * * * 5.6.7.8 * * * port6 VLAN Switching * * * vlan1 * * * * * port6, port7, port9 00:1f.. Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport Action
  • 17.
    Centralized vs DistributedControl Both models are possible with OpenFlow Centralized Control Controller Distributed Control Controller Controller Controller OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 18.
    Flow Routing vs.Aggregation Both 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
  • 19.
    Reactive vs. Proactive(pre-populated) 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
  • 20.
    Usage examples Alice’scode: Simple learning switch Per Flow switching Network access control/firewall Static “VLANs” Her own new routing protocol: unicast, multicast, multipath Home network manager Packet processor (in controller) IPvAlice Stanford demonstrated VM migration Server Load balancing Mobility manager Power management Network monitoring and visualization Network debugging Network slicing … and much more you can create!
  • 21.
    Quiz Time Howdo I provide control connectivity? Is it really clean slate? Why aren’t users complaining about time to setup flows over OpenFlow? (Hint: What is the predominant traffic today?) Considering switch CPU is the major limit, how can one take down an OpenFlow network? How to perform topology discovery over OpenFlow-enabled switches? What happens when you have a non-OpenFlow switch inbetween? What if there are two islands connected to same controller? How scalable is OpenFlow? How does one scale deployments?
  • 22.
    What can younot do with OpenFlow ver1.0 Non-flow-based (per-packet) networking e.g., Handling pkt 1 differently from pkt 2 of same flow yes, this is a fundamental limitation BUT OpenFlow provides the plumbing to connect devices New forwarding primitives BUT provides a nice way to integrate them through extensions New packet formats/field definitions BUT a generalized OpenFlow (2.0) is on the horizon Optical Circuits BUT efforts underway to apply OpenFlow model to circuits Low-setup-time individual flows BUT can push down flows proactively to avoid delays
  • 23.
    Where it’s goingOF v1.1: Extensions for WAN, spring 2011 multiple tables: leverage additional tables tags and tunnels multipath forwarding OF v2+ generalized matching and actions: an “instruction set” for networking
  • 24.
  • 25.
    OpenFlow building blocksController NOX Slicing Software FlowVisor FlowVisor Console Applications LAVI ENVI (GUI) Expedient n-Casting NetFPGA Software Ref. Switch Broadcom Ref. Switch OpenWRT PCEngine WiFi AP Commercial Switches Stanford Provided OpenFlow Switches SNAC Stanford Provided Monitoring/ debugging tools oflops oftrace openseer OpenVSwitch HP, NEC, Pronto, Juniper.. and many more Beacon Helios Maestro
  • 26.
    Current SDN hardwareCiena Coredirector NEC IP8800 More coming soon... Juniper MX-series HP Procurve 5400 Pronto 3240/3290 WiMax (NEC) PC Engines Netgear 7324
  • 27.
    Commercial Switch VendorsNotes Virtualize Model No legacy protocols (like VLAN and STP) Most actions processed in hardware MAC header rewriting in h/w OpenFlow takes precedence Most actions processed in hardware MAC header rewriting in h/w LACP, VLAN and STP processing before OpenFlow Wildcard rules or non-IP pkts processed in s/w Header rewriting in s/w CPU protects mgmt during loop 1 OF instance per switch Pronto 3240 or 3290 with Pica8 or Indigo firmware 1 OF instance per VLAN NEC IP8800 1 OF instance per VLAN HP Procurve 5400zl or 6600
  • 28.
    Controller Vendors Closed-sourceDatacenter networks Nicira’s ONIX Open-source GPL Code based on NOX0.4 Enterprise network C++, Python and Javascript Currently used by campuses SNAC Notes Vendor Open-source GPL C++ and Python Researcher friendly Nicira’s NOX Open-source Researcher friendly Java-based Stanford’s Beacon Open-source Based on Java Maestro (from Rice Univ) Notes Vendor Open-source Written in C Closed source Based on Beacon Enterprise network NEC’s Helios BigSwitch controller
  • 29.
    Growing Community Vendorsand start-ups Providers and business-unit More... More... Note: Level of interest varies
  • 30.
  • 31.
    Trend Computer IndustryNetwork Industry Windows (OS) Windows (OS) Linux Mac OS x86 (Computer) Windows (OS) App App Linux Linux Mac OS Mac OS Virtualization layer App Controller 1 App App Controller 2 Virtualization or “Slicing” App OpenFlow Controller 1 NOX (Network OS) Controller 2 Network OS
  • 32.
    Simple Packet Forwarding Hardware Network Operating System 1 Open interface to hardware Virtualization or “Slicing” Layer Network Operating System 2 Network Operating System 3 Network Operating System 4 App App App App App App App App Many operating systems, or Many versions Open interface to hardware Isolated “slices” Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware Simple Packet Forwarding Hardware
  • 33.
    Switch Based VirtualizationExists for NEC, HP switches but not flexible enough Normal L2/L3 Processing Production VLANs Research VLAN 1 Research VLAN 2 Flow Table Controller Flow Table Controller
  • 34.
    FlowVisor-based Virtualization OpenFlowProtocol Craig’s Controller Heidi’s Controller Aaron’s Controller OpenFlow Protocol Topology discovery is per slice OpenFlow Switch OpenFlow FlowVisor & Policy Control OpenFlow Switch OpenFlow Switch
  • 35.
    OpenFlow Protocol BroadcastMulticast http Load-balancer FlowVisor-based Virtualization Separation not only by VLANs, but any L1-L4 pattern dl_dst=FFFFFFFFFFFF tp_src=80, or tp_dst=80 OpenFlow FlowVisor & Policy Control OpenFlow Protocol OpenFlow Switch OpenFlow Switch OpenFlow Switch
  • 36.
  • 37.
    FlowVisor Message HandlingPacket Exception Policy Check: Is this rule allowed? Policy Check: Who controls this packet? Full Line Rate Forwarding Rule Packet OpenFlow Firmware Data Path Alice Controller Bob Controller Cathy Controller FlowVisor OpenFlow OpenFlow
  • 38.
    Use Case: NewCDN - 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) Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport * * * * * 84.65.* * * * * * * * * * * 84.65.* * * * * * * * * * * * * *
  • 39.
  • 40.
    Summary Software-defined networkingis still evolving OpenFlow is being deployed in over 100 organizations world-wide GEC9 in Nov, 2010 showcased nation-wide OF Internet 2 and NLR starting to serve as the GENI Backbone Are you innovating in your networks??
  • 41.
    Credits Thanks tofollowing for contributing content to the tutorial: Nick McKeown Guru Parulkar Brandon Heller Yiannis Yiakoumis Guido Appenzeller Rob Sherwood Masa Kobayashi

Editor's Notes

  • #5 The next 3 slides are a set of animation to show how we enable innovation: - Infrastructure is closed to innovation and only driven by vendors. Consumers have little say - Business model makes it hard for new features to be added
  • #6 How do we redefine the architecture to open up networking infrastructure and the industry! By bring to the networking industry what we did to the computing world
  • #7 Switches, routers and other middleboxes are dumbed down The key is to have a standardized control interface that speaks directly to hardware
  • #12 How the actual protocol works
  • #14 Now I’ll describe the API that tries to meet these goals.
  • #21 What is possible in the controller? Anything that needs intelligent routing of a flow At Stanford, we have even shown how OpenFlow may be used for: VM migration Power management Load balancing Network monitoring and debugging Easier network visualization
  • #26 There are components at different levels that work together in making it work The commercial switch details will follow in next slide There are a plethora of applications possible. I only list those available at Stanford
  • #28 All support ver 1.0 All have approx 1500 flow table entry limit
  • #32 Hidden slide (just for backup reasons) Shows how far along we can go in opening up the network
  • #34 Experiments running on PRODUCTION infrastructure Key to get scale, key to get traffic on the network (e.g. can’t just do a reset...)