The document discusses software-defined networking (SDN) and OpenFlow, including:
1) OpenFlow allows the control logic to be separated from the forwarding hardware by defining an open interface between the two. This enables more flexible and programmable networks.
2) OpenFlow works by defining flows that match packets and actions that are applied to the matched packets. The flows are populated and managed by an external controller through the OpenFlow protocol.
3) OpenFlow is being deployed in over 100 organizations and is enabling network innovation through its programmable and customizable nature.
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
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
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
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
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.* * * * * * * * * * * * * *
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
#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...)