Software-Defined Networking: OpenFlow and Frenetic

Slides:



Advertisements
Similar presentations
Shared-Memory Model and Threads Intel Software College Introduction to Parallel Programming – Part 2.
Advertisements

Computer Networks TCP/IP Protocol Suite.
Copyright © 2003 Pearson Education, Inc. Slide 1 Computer Systems Organization & Architecture Chapters 8-12 John D. Carpinelli.
Copyright © 2011, Elsevier Inc. All rights reserved. Chapter 6 Author: Julia Richards and R. Scott Hawley.
Author: Julia Richards and R. Scott Hawley
1 Copyright © 2013 Elsevier Inc. All rights reserved. Appendix 01.
1 Copyright © 2013 Elsevier Inc. All rights reserved. Chapter 3 CPUs.
Properties Use, share, or modify this drill on mathematic properties. There is too much material for a single class, so you’ll have to select for your.
OSPF 1.
1 OpenFlow + : Extension for OpenFlow and its Implementation Hongyu Hu, Jun Bi, Tao Feng, You Wang, Pingping Lin Tsinghua University
1 Building a Fast, Virtualized Data Plane with Programmable Hardware Bilal Anwer Nick Feamster.
1 Resonance: Dynamic Access Control in Enterprise Networks Ankur Nayak, Alex Reimers, Nick Feamster, Russ Clark School of Computer Science Georgia Institute.
UNITED NATIONS Shipment Details Report – January 2006.
1 Hyades Command Routing Message flow and data translation.
1 Introducing the Specifications of the Metro Ethernet Forum MEF 19 Abstract Test Suite for UNI Type 1 February 2008.
Communicating over the Network
1 Chapter One Introduction to Computer Networks and Data Communications.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Logically-Centralized Control COS 597E: Software Defined Networking.
2010 Labs & Tools for ITE 1 Gratitude Kudyachete, Manager - SSA CATC Lab Tools for IT E 4.1.
Chapter 1: Introduction to Scaling Networks
Local Area Networks - Internetworking
The Platform as a Service Model for Networking Eric Keller, Jennifer Rexford Princeton University INM/WREN 2010.
CS 6143 COMPUTER ARCHITECTURE II SPRING 2014 ACM Principles and Practice of Parallel Programming, PPoPP, 2006 Panel Presentations Parallel Processing is.
IP Multicast Information management 2 Groep T Leuven – Information department 2/14 Agenda •Why IP Multicast ? •Multicast fundamentals •Intradomain.
Operating Systems Operating Systems - Winter 2012 Dr. Melanie Rieback Design and Implementation.
Chapter 20 Network Layer: Internet Protocol
1 Network Address Translation (NAT) Relates to Lab 7. Module about private networks and NAT.
Towards Software Defined Cellular Networks
Basel-ICU-Journal Challenge18/20/ Basel-ICU-Journal Challenge8/20/2014.
1..
CONTROL VISION Set-up. Step 1 Step 2 Step 3 Step 5 Step 4.
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public 1 EN0129 PC AND NETWORK TECHNOLOGY I NETWORK LAYER AND IP Derived From CCNA Network Fundamentals.
1 © 2004, Cisco Systems, Inc. All rights reserved. CCNA 1 v3.1 Module 2 Networking Fundamentals.
1 IU Campus GENI/Openflow Experience Matt Davy Quilt Meeting, July 22nd 2010.
Chapter 9: Subnetting IP Networks
Analyzing Genes and Genomes
Essential Cell Biology
Connecting LANs, Backbone Networks, and Virtual LANs
PSSA Preparation.
Essential Cell Biology
Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker.
Murach’s OS/390 and z/OS JCLChapter 16, Slide 1 © 2002, Mike Murach & Associates, Inc.
Compiling Path Queries in Software-Defined Networks Srinivas Narayana Jennifer Rexford and David Walker Princeton University.
Programming Protocol-Independent Packet Processors
Frenetic: A High-Level Language for OpenFlow Networks Nate Foster, Rob Harrison, Matthew L. Meola, Michael J. Freedman, Jennifer Rexford, David Walker.
Composing Software-Defined Networks Princeton*Cornell^ Chris Monsanto*, Joshua Reich* Nate Foster^, Jen Rexford*, David Walker*
SDN and Openflow.
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Software Stack COS 597E: Software Defined Networking.
Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru Parulkar, Larry Peterson, Jennifer Rexford, Scott Shenker, Jonathan Turner, SIGCOM CCR, 2008 Presented.
Information-Centric Networks10b-1 Week 13 / Paper 1 OpenFlow: enabling innovation in campus networks –Nick McKeown, Tom Anderson, Hari Balakrishnan, Guru.
Frenetic: A Programming Language for Software Defined Networks Jennifer Rexford Princeton University Joint work with Nate.
Software-Defined Networks Jennifer Rexford Princeton University.
VeriFlow: Verifying Network-Wide Invariants in Real Time
OpenFlow: Enabling Innovation in Campus Networks
Languages for Software-Defined Networks Nate Foster, Michael J. Freedman, Arjun Guha, Rob Harrison, Naga Praveen Katta, Christopher Monsanto, Joshua Reich,
Software Defined Networking Kathryn Abbett. Definition □Origins from Berkley and Stanford, around 2008 □Software-Defined Networking (SDNs) allows applications.
OpenFlow:Enabling Innovation in Campus Network
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
Information-Centric Networks Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics.
SDN challenges Deployment challenges
Software-Defined Networking
The Stanford Clean Slate Program
Software Defined Networking (SDN)
Enabling Innovation Inside the Network
Languages for Software-Defined Networks
Programmable Networks
An Introduction to Software Defined Networking and OpenFlow
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Software-Defined Networking: OpenFlow and Frenetic Mohamed Ismail

Background

Problem: Programming Networks is Hard

Network Stack Pros Key to the success of the Internet Layers and layers of abstraction Independent innovation at each layer Communication media Ethernet standards Transport layer protocols Follows end-to-end argument (Source: Shenker, 2011)

Network Stack Cons Problem: Network infrastructure has “ossified” Network switches and routers built and optimized for internet traffic Network components and internet protocols set in stone Difficulty to switch from IPv4 to IPv6 Difficult to perform research on Internet Problem: Network infrastructure has “ossified” (Source: Shenker, 2011)

Functions of a switch/router Packet In Packet Out Switch/Router Receive a packet and send to appropriate destination Prevent a packet from reaching a certain destination

Programming a switch/router Packet In Packet Out Flow Table Switch/Router Use a limited API to program the switch/router flow table Must program each network device separately Programming dependent on topology Does not scale Problem: No generalized API for programming scalable networks

Data Plane vs. Control Plane Receive a packet Forward packet based on flow table Network stack abstractions are data plane abstractions Update flow table to specify where packets should go Update flow table to specify where packets should not go No abstractions for updating the control plane

Programming networks is hard because… Network stack is an abstraction for the data plane Network infrastructure has “ossified” due to the success of the internet Switch and router internals vary by manufacturer and there is no standard API for the control plane Without any abstractions for control plane, research and innovation in network programming is near impossible Must compute configuration of each device Can only work with given network-level protocol (i.e. IP)

OpenFlow

Authors Nick McKeown Tom Anderson Hari Balakrishnan Guru Parulkar ‘95 PhD UC Berkeley Co-founded Nicira Networks, ONF Faculty at Stanford Tom Anderson ‘91 PhD Univ. of Wash. UC Berkeley ‘91-’97 Faculty at Univ. of Wash. Hari Balakrishnan ‘98 PhD UC Berkeley Faculty at MIT Guru Parulkar ‘87 PhD Univ. of Deliware Many network-related startups Executive director of Clean Slate Internet Design Program Larry Peterson ‘85 PhD Purdue University GENI project chair Faculty at Princeton Jennifer Rexford ‘96 PhD Univ. of Mich. AT&T Labs ‘96-’05 Broader Gateway Protocol Scott Shenker ‘83 PhD Univ. of Chig. XEROX Parc Co-founder of Nicira Networks, ONF Faculty at Berkeley Jonathan Turner Faculty at Washington University in St. Louis

Goals Run experiments on campus networks Software-based approach Reluctance to using experimental equipment on college network Isolation: Control over network without disruptions to normal traffic What functionality is needed for experiments? Software-based approach Low performance Low port density Low cost Take advantage of existing infrastructure Closed platforms from vendors

Goals and Challenges Run experiments on campus networks Reluctance by admins to using experimental equipment on college network Isolation: Control over network without disruptions to normal traffic What functionality is needed for experiments? Software-based approach Software-based solutions have low performance Software-based solutions support low port density Low cost Take advantage of existing infrastructure Closed platforms from vendors

Take Aways OpenFlow allows network devices to decouple the data plane from the control plane Data plane processing done by network device Data plane abstraction is the network stack Control plane processing done by controller New control stack for OpenFlow devices provides standardized API and abstractions necessary to innovate in field of network management

Design Separate data plane from control plane Data plane Control plane High performance forwarding Control plane Flow table is programmable Accessed through controller using OpenFlow Protocol OpenFlow Packet In Packet Out Flow Table Switch/Router

OpenFlow API Forward packets to given port (or ports) Forward packets to controller Usage: Can analyze and process packets Drop the packet Usage: Protect against attacks by removing suspicious packets

Flow Table Entry Packet header to define flow Action to be performed Statistics (Source: ONF, 2012)

Isolation Two Options: Add another action to the OpenFlow API OR Forward packets through normal pipeline OR Define separate VLANs No overlap over production and experimental traffic

Discussion What is easy to accomplish with the OpenFlow solution? What is still hard to do with OpenFlow?

Controllers Must communicate using OpenFlow protocol Individual controllers for multiple switches or single controller for all switches Use with Network OS NOX Should provide some permissions to prevent mixing of traffic or unauthorized flow table changes Implementation details left unspecified

Control Stack OpenFlow is only a means to achieve the decoupling needed for Software-Defined Networking Network OS provides common control functionality that can be used by multiple applications (Sources: Casado, 2011; Shenker, 2011)

Discussion What functionality should the Network OS have? What layers or abstractions are missing from the control stack?

Google B4 Provides connectivity among Google datacenters Use SDN and OpenFlow Centralized traffic engineering application Resource contention Multipath forwarding/tunneling to leverage network capacity according to application priority Dynamically relocate bandwidth Many links run at near 100% utilization for extended periods of time (Source: Jain, 2013)

Open Network Foundation Promote adoption of Sotware-Defined Networking through open standards such as OpenFlow Partners:

Open Network Foundation Promote adoption of Sotware-Defined Networking through open standards such as OpenFlow Partners:

Open Network Foundation Promote adoption of Sotware-Defined Networking through open standards such as OpenFlow Partners:

Open Network Foundation Promote adoption of Sotware-Defined Networking through open standards such as OpenFlow Partners:

Open Network Foundation Promote adoption of Sotware-Defined Networking through open standards such as OpenFlow Partners:

Take Aways OpenFlow allows network devices to decouple the data plane from the control plane Data plane processing done by network device Data plane abstraction is the network stack Control plane processing done by controller New control stack for OpenFlow devices provides standardized API and abstractions necessary to innovate in field of network management

Frenetic

Authors Nate Foster Rob Harrison Matthew L. Meola Michael J. Freedman ‘09 PhD Upenn Faculty at Cornell Rob Harrison ‘11 Masters Princeton Westpoint Matthew L. Meola ? Michael J. Freedman PhD NYU CoralCDN Faculty at Princeton Jennifer Rexford ‘96 PhD Univ. of Mich. AT&T Labs ‘96-’05 Broader Gateway Protocol David Walker ‘01 PhD Cornell (Morrisett)

Problems OpenFlow is a “machine language” Directly reflects underlying hardware High level policy may require multiple low-level rules Network programs are not isolated from each other No equivalent of virtual memory space Composition of programs is a manual process and error prone Controller does not see all traffic, so some information may be hidden Delay in programming switches and routers Must take care of additional corner cases Hard to effectively program OpenFlow tables using NOX

Take Aways OpenFlow is the “machine language” of network programming Difficult to program correctly and efficiently Not enough layers of abstraction for programmers Frenetic addresses issues with composibility, low-level interaction, and providing a unified view through the Frenetic run-time system and Frenetic programming language

Approach Add a layer of abstraction Run-time system converts between high-level program to correct low-level network rules Frenetic programming language based on functional reactive programming (FRP) “See every packet” abstraction Composition Rich pattern algebra (Source: Foster, 2010)

Example w/o Frenetic def repeater_monitor(switch): def repeater(switch): p1 = {IN_PORT:1} p2 = {IN_PORT:2} a1 = [output(2)] a2 = [output(1)] install(switch, p1, a1, DEFAULT) install(switch, p2, a2, DEFAULT) def monitor(switch): p = {IN_PORT:2,TP_SRC:80} install(switch, p, [], DEFAULT) query_stats(switch, p) def repeater_monitor(switch): p1 = {IN_PORT:1} p2 = {IN_PORT:2} p2web = {IN_PORT:2,TP_SRC:80} a1 = [output(2)] a2 = [output(1)] install(switch, p1, a1, DEFAULT) install(switch, p2, a2, DEFAULT) install(switch, p2web, a2, HIGH) query_stats(switch, p2web)

Example w/ Frenetic def monitor_sf(): return(Filter(inport_p(2) & srcport_p(80)) |o| GroupByTime(30) |o| SumSizes()) rules = [Rule(inport_p(1), [output(2)]), Rule(inport_p(2), [output(1)])] def repeater_monitor(): register_static(rules) stats = Apply(Packets(), monitor_sf()) print_stream(stats)

Discussion Are there any issues with OpenFlow that Frenetic could not address? How does Frenetic reinforce the idea that innovation in this field will come through abstractions and layering? Does Frenetic or OpenFlow help address the issue of “ossification” of the internet?

Take Aways OpenFlow is the “machine language” of network programming Difficult to program correctly and efficiently Not enough layers of abstraction for programmers Frenetic addresses issues with composibility, low-level interaction, and providing a unified view through the Frenetic run-time system and Frenetic programming language

References OpenFlow: Enabling innovation in campus networks. Nick McKeown et al. (2008-04).  ACM Communications Review. Frenetic: A High-Level Langauge for OpenFlow Networks. Nate Foster, Rob Harrison, Matthew L. Meola, Michael J. Freedman, Jennifer Rexford, and David Walker.  In ACM Workshop on Programmable Routers for Extensible Services of Tomorrow (PRESTO), Philadelphia, PA, November 2010. Open Network Foundation. http://opennetworking.org Origins and Evolution of OpenFlow/SDN. Martin Casado. In Open Networking Summit, Stanford, CA, October 2011. The Future of Networking, and the Past of Protocols. Scott Shenker. In Open Networking Summit, Stanford, CA, October 2011. B4: Experience with a Globally-Deployed Software Defined WAN. Sushant Jain, Alok Kumar, Subhasree Mandal, Joon Ong, Leon Poutievski, Arjun Singh, Subbaiah Venkata, Jim Wanderer, Junlan Zhou, Min Zhu, Jonathan Zolla, Urs Hölzle, Stephen Stuart and Amin Vahdat. In SIGCOMM 2013.