OpenFlow Overview Daniel Turull danieltt@kth.se
Overview OpenFlow Software Defined Networks (SDN) Network Systems Lab activities Daniel Turull - Netnod spring meeting 2012 2
OpenFlow
Why and where was created? OpenFlow started as a way for researchers to do experiments in production networks. Created by Stanford University Provides flexibility and performance - researchers find it to be a very useful experimental platform for all kinds of networking research Daniel Turull - Netnod spring meeting 2012 4
OpenFlow controller OpenFlow Protocol (SSL/TCP) Control Path (Software) OpenFlow Data Path (Hardware) Daniel Turull - Netnod spring meeting 2012 5
How OpenFlow works? If header = x, send to port 4 If header = y, overwrite header with z, send to ports 5,6 If header =?, send to me
Flow Table Entry Rule Action Stats Packet + byte counters 1. Forward packet to port(s) 2. Encapsulate and forward to controller 3. Drop packet 4. Send to normal processing pipeline Switch Port MAC src MAC dst Eth type VLAN ID Src Dst Prot TCP sport TCP dport + mask Daniel Turull - Netnod spring meeting 2012 7
Examples Switching Switch Port MAC src MAC dst Eth type VLAN ID Src Dst Prot TCP sport TCP dport Action * * 00:1f:.. * * * * * * * Port 5 Flow Switching Switch Port MAC src MAC dst Eth type VLAN ID Src Dst Prot TCP sport TCP dport Action Firewall Port 3 00:20:.. 00:1f:.. 0800 1 1.2.3.4 5.6.7.8 4 12334 80 Port 5 Switch Port MAC src MAC dst Eth type VLAN ID Src Dst Prot TCP sport TCP dport Action Routing * * * * * * * * * 80 Drop Switch Port MAC src MAC dst Eth type VLAN ID Src Dst Prot TCP sport TCP dport Action * * * * * * 5.6.7.8 * * * Port 5 Daniel Turull - Netnod spring meeting 2012 8
Centralized vs Distributed Control Daniel Turull - Netnod spring meeting 2012 9
Flow Routing vs. Aggregation 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 Daniel Turull - Netnod spring meeting 2012 10
Reactive vs. Proactive (pre-populated) 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 Daniel Turull - Netnod spring meeting 2012 11
OpenFlow Usage Models 1. Experiments at the flow level User-defined routing protocols Admission control Network access control Network management Energy management VO mobility and handoff 2. Experiments at the packet level Slow: Controller handles packet processing Fast: Redirect flows through programmable hardware Modified routers, firewalls, NAT, congestion control 3. Alternatives to Daniel Turull - Netnod spring meeting 2012 12
Current Status OpenFlow is deployed in hundreds of networks/ campuses EU and US research testbeds are being deployed OpenFlow specification: - Current: OpenFlow 1.1 - Implemented: OpenFlow 1.0 - Forthcoming: OpenFlow 1.2 (just being standardized) - Standardization moved to ONF Daniel Turull - Netnod spring meeting 2012 13
What can you not do with OpenFlow ver1.1 Non-flow-based (per-packet) networking - ex. Per-packet next-hop selection (in wireless mesh) - yes, this is a fundamental limitation - BUT OpenFlow can provide the plumbing to connect these systems Use all tables on switch chips - yes, a major limitation (cross-product issue) - BUT an upcoming OF version will expose these New forwarding primitives - BUT provides a nice way to integrate them through extensions Daniel Turull - Netnod spring meeting 2012 14
What can you not do with OpenFlow ver1.1 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 Daniel Turull - Netnod spring meeting 2012 15
Software Defined Networks (SDN)
App App App App App App App App App App App Specialized Features Open Interface Specialized Control Plane Control Plane or Control Plane Open Interface or Control Plane Specialized Hardware Merchant Switching Chips Vertically integrated Closed, proprietary Slow innovation Horizontal Open interfaces Rapid innovation Source: Nick McKeown, "Software Defined Networks (SDN) ITC Keynote, San Francisco, September 2011 Daniel Turull - Netnod spring meeting 2012 17
Software Defined Network (SDN) 3. Consistent, up- to- date global network view Feature Feature 2. At least one Network OS probably many. Open- and closed-source Network OS 1. Open interface to packet forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Source: Nick McKeown, "Software Defined Networks (SDN) ITC Keynote, San Francisco, September 2011 Daniel Turull - Netnod spring meeting 2012 18
Network OS Network OS: distributed system that creates a consistent, up-to-date network view - Runs on servers (controllers) in the network - NOX, ONIX, Trema, Beacon, Maestro, + more Uses forwarding abstraction to: - Get state information from forwarding elements - Give control directives to forwarding elements Daniel Turull - Netnod spring meeting 2012 19
Control Program Control program operates on view of network - Input: global network view (graph/database) - Output: configuration of each network device Control program is not a distributed system - Abstraction hides details of distributed state Daniel Turull - Netnod spring meeting 2012 20
Forwarding Abstraction Purpose: Abstract away forwarding hardware Flexible - Behavior specified by control plane - Built from basic set of forwarding primitives Minimal - Streamlined for speed and low-power - Control program not vendor-specific OpenFlow is an example of such an abstraction Daniel Turull - Netnod spring meeting 2012 21
Network Systems Lab activities (former TSlab)
Network Systems Lab activities Flow classification in a combined router/server - Partitioning CPU resources and offloading packet forwarding - Voravit Tanyingyong OpenFlow as a tool for network virtualization - Daniel Turull - LibNetVirt - Creation of different VN on demand and programatically providing the required endpoints Daniel Turull - Netnod spring meeting 2012 23
References Nick McKeown, "How SDN will shape networking Open Networking Summit, Stanford, October 2011 Srini Seetharaman, Paul Weissmann: OpenFlow Tutorial OFELIA Summer School Nov 8, 2011 Daniel Turull - Netnod spring meeting 2012 24
Daniel Turull - Netnod spring meeting 2012 25
Backup Daniel Turull - Netnod spring meeting 2012 26