OpenFlow & NOX (& how the SDN era started) CCR 2008 Whitepapers Nick McKeown & Natasha Gude et al. Presented by: M. Asim Jamshed Some slides have been.

Slides:



Advertisements
Similar presentations
Towards Software Defined Cellular Networks
Advertisements

Frenetic: A High-Level Language for OpenFlow Networks Nate Foster, Rob Harrison, Matthew L. Meola, Michael J. Freedman, Jennifer Rexford, David Walker.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Today1 Software Defined Networks  A quick overview  Based primarily on the presentations of Prof. Scott Shenker of UC Berkeley “The Future of Networking,
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Can the Production Network Be the Testbed? Rob Sherwood Deutsche Telekom Inc. R&D Lab Glen Gibb, KK Yap, Guido Appenzeller, Martin Cassado, Nick McKeown,
Mobile Communication and Internet Technologies
Baraki H. Abay Nov 04,2011. Outline 1. Legacy Networks 2. Software defined networks  Motivation,Architecture, Principles, 3. OpenFlow  Principles, Architecture.
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
Why can’t I innovate in my wiring closet? Nick McKeown MIT, April 17, 2008 The Stanford Clean Slate Program
OpenFlow : Enabling Innovation in Campus Networks SIGCOMM 2008 Nick McKeown, Tom Anderson, et el. Stanford University California, USA Presented.
SDN and Openflow.
Scalable Network Virtualization in Software-Defined Networks
Flowspace revisited 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.
Professor Yashar Ganjali Department of Computer Science University of Toronto
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) SriramGopinath( )
The Stanford Clean Slate Program A couple of platforms (Or: “Why can’t I innovate in my wiring closet?”) Nick McKeown
Can the Production Network Be the Testbed? Rob Sherwood Deutsche Telekom Inc. R&D Lab Glen Gibb, KK Yap, Guido Appenzeller, Martin Cassado, Nick McKeown,
An Overview of Software-Defined Network
An Overview of Software-Defined Network Presenter: Xitao Wen.
Professor Yashar Ganjali Department of Computer Science University of Toronto
Application-Aware Aggregation & Traffic Engineering in a Converged Packet-Circuit Network Saurav Das, Yiannis Yiakoumis, Guru Parulkar Nick McKeown Stanford.
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
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.
OpenFlow: Enabling Technology Transfer to Networking Industry Nikhil Handigol Nikhil Handigol Cisco Nerd.
Introduction to SDN & OpenFlow Based on Tutorials from: Srini Seetharaman, Deutsche Telekom Innovation Center FloodLight Open Flow Controller, floodlight.openflowhub.org.
Software-Defined Networks Jennifer Rexford Princeton University.
Software Defined Networks and OpenFlow SDN CIO Summit 2010 Nick McKeown & Guru Parulkar Stanford University In collaboration with Martin Casado and Scott.
Brent Salisbury CCIE#11972 Network Architect University of Kentucky 9/22/ OpenStack & OpenFlow Demo.
The Stanford Clean Slate Program POMI2020 Mobility Nick McKeown
Aaron Gember Aditya Akella University of Wisconsin-Madison
OpenFlow: Enabling Innovation in Campus Networks
Aditya Akella (Based on slides from Aaron Gember and Nick McKeown)
Jon Turner, John DeHart, Fred Kuhns Computer Science & Engineering Washington University Wide Area OpenFlow Demonstration.
CS : Software Defined Networks 3rd Lecture 28/3/2013
Traffic Management - OpenFlow Switch on the NetFPGA platform Chun-Jen Chung( ) Sriram Gopinath( )
A Simple Unified Control Plane for Packet and Circuit Networks Saurav Das, Guru Parulkar, Nick McKeown Stanford University.
June, 2006 Stanford 2006 Ethane. June, 2006 Stanford 2006 Security and You  What does security mean to you?  Data on personal PC?  Data on family PC?
OpenFlow:Enabling Innovation in Campus Network
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
Sponsored by the National Science Foundation 1 GEC16, March 21, 2013 Are you ready for the tutorial? 1.Did you do the pre-work? A.Are you able to login.
Natasha Gude, Teemu Koponen, Justin Pettit, Ben Pfaff, Martín Casado, Nick McKeown, Scott Shenker SIGCOMM CCR, 2008 Presented by Ye Tian for Course CS05112.
Information-Centric Networks Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics.
Introduction to Mininet, Open vSwitch, and POX
3.6 Software-Defined Networks and OpenFlow
OpenFlow: Enabling Innovation in Campus Networks Yongli Chen.
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Programming Assignment 2 Zilong Ye. Traditional router Control plane and data plane embed in a blackbox designed by the vendor high-seed switching fabric.
SDN basics and OpenFlow. Review some related concepts SDN overview OpenFlow.
Constructing Multiple Steiner Trees for Software-Defined Networking Multicast Presented by Professor Jehn-Ruey Jiang Advanced Computing and Networking.
Intrusion Detection Systems
Software defined networking: Experimental research on QoS
NOX: Towards an Operating System for Networks
Week 6 Software Defined Networking (SDN): Concepts
SDN Overview for UCAR IT meeting 19-March-2014
SDN basics and OpenFlow
Stanford University Software Defined Networks and OpenFlow SDN CIO Summit 2010 Nick McKeown & Guru Parulkar In collaboration with Martin Casado and Scott.
Chapter 5 Network Layer: The Control Plane
The Stanford Clean Slate Program
Software Defined Networking (SDN)
Software Defined Networking
Handout # 18: Software-Defined Networking
15-744: Computer Networking
Implementing an OpenFlow Switch on the NetFPGA platform
An Introduction to Software Defined Networking and OpenFlow
Chapter 5 Network Layer: The Control Plane
An Introduction to Software Defined Networking and OpenFlow
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

OpenFlow & NOX (& how the SDN era started) CCR 2008 Whitepapers Nick McKeown & Natasha Gude et al. Presented by: M. Asim Jamshed Some slides have been derived from Nick McKeown’s talk in the Stanford Clean Slate Program & Scott Shenker’s talk in the Open Networking Summit, 2011

Intro: Need for a Programmable Switch Alice wants to test a new network protocol – Asks administrator to create network paths b/w set of machines spanning the entire campus network 2

Intro: Need for a Programmable Switch Control plane elements difficult to configure – E.g. Network paths are fixed in L2/L3 boxes – Flow tables in switches/routers vendor-specific – Each L2/L3 path needs to be updated manually on each switch 3

Approach I: Updating switch internally Standard Network Processing Standard Network Processing hw sw Experimenter writes experimental code on switch/router User- defined Processing User- defined Processing *Figure taken from Nick McKoewn’s talk: “OpenFlow (Or: “Why can’t I innovate in my wiring closet?”)” (2008) 4 VENDOR’S NIGHTMARE

Approach II: Open-S/W Platforms 5 Experimenter uses Click (or its equivalent) FANOUT COMPACT SOLUTION

OpenFlow Goals Allow admins to program the control (forwarding) plane without exposing the IP rights of the vendors’ switches/routers An open protocol that dynamically programs the flow tables in switches/routers 6

OpenFlow Switching Approach 7 Controller OpenFlow Switch Flow Table Flow Table Secure Channel Secure Channel PC OpenFlow Protocol (SSL) hw sw OpenFlow Switch specification *Figure taken from Nick McKoewn’s talk: “OpenFlow (Or: “Why can’t I innovate in my wiring closet?”)” (2008) Commands/Packets

Controller Fine-grained management of the control plane – Flows processed according to admin’s policies Controller commands – Forward packets to ports/controller – Drop packets – Rewrite headers – Flexible header manipulation Arbitrary matching of first few bytes of payload Arbitrary rewriting of first few bytes of payload Support load balancing b/w multiple controllers 8

Secure Channel SSL Connection, site-specific key Controller discovery protocol Encapsulate packets for controller Send link/port state to controller 9

10 Flow Table Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport RuleActionStats 1.Forward packet to port(s) 2.Encapsulate and forward to controller 3.Drop packet 4.Send to normal processing pipeline + mask Packet + Byte counters *Figure taken from Nick McKoewn’s talk: “OpenFlow (Or: “Why can’t I innovate in my wiring closet?”)” (2008) Flow Table Entry

End Targets Amenable to – High performance – Low-cost implementations Isolation of experimental from normal traffic Vendor’s need for closed platforms retained 11

The Bigger Question Configuring each switch of the network for – Path updates – Access control – VLAN tagging – Traffic conditioning – Traffic mirroring Extremely cumbersome Manage control plane via programmable switches – from a centralized node 12

NOS Fundamentals Present apps a centralized programming model Manages the controller Programs written as if the entire network is on a single machine – High level abstractions IP and MAC address Hostnames and usernames – Manage bindings between abstractions & low-level bindings NOS network view  Entire network abstraction An example of NOS  NOX (open source) 13

SDN Hierarchy – The Big Picture 14 App (Routing) App (Routing) Simple Packet Forwarding (e.g. OpenFlow) H/W Switch App (CDN) App (CDN) App (AC) App (AC) Simple Packet Forwarding (e.g. OpenFlow) H/W Switch Network Operating System (NOX) 1. Open interface to hardware 3. Well-defined open API 2. At least one good operating system Extensible, possibly open-source *Figure taken from Nick McKoewn’s FCC talk: “Software-Defined Networks” (2009) Global Network View (DB)

NOX Network Operations Incoming new packet at switch – Does flow entry for the corresponding flow exist? – If yes: Perform the action – If no: Forward it to the NOX controller Process the packet in the controller based on the policy written by the control program (app) Send NOX command to the switch to add new flow entry (optional) 15

What more can NOX do? Finer Admission Control – “ Guests can comm. using HTTP only via a web proxy ” VLANs – “Create your own isolated network” A non-IP network – “Evaluate your own L3 protocol” Simplistic scan detection – How to detect scanning hosts – Count # of unique L2 & L3 conn. initiation queries Concise (only 11 SLOC) 16

Experiment at Packet Level 17 *Figure taken from “OpenFlow: Enabling Innovation in Campus Networks” (2008) Deep Packet Inspection using a middlebox

Experiment: Power Management 18

Discussion Forum Making the network more manageable But also, – Making the network more intelligent Concept of “keeping the control plane simple” lost?? 19

Discussion Points Data plane -> Control plane -> Data plane – Latency issues? Concept of security? (flow poisoning attacks) Downside of using centralized management – DDoS attack on the SDN controller 100K DNS/DHCP requests per sec?? – Scalability Difference between Ethane/NOX 20

Appendix 21

OpenFlow Switch Vendors Alcatel-Lucent Big Switch Networks Brocade Communications Arista Networks Pica8 Cisco Dell Force10 22 Extreme Networks IBM Juniper Networks Hewlett-Packard NEC MikroTik & many more…

OpenFlow Type Switches OpenFlow Switch Specification – Current version 1.4 (2013) 23

NOX Port Detection Example Code scans = defaultdict(dict) def check_for_scans(dp, inport, packet): dstid = nox.resolve_host_dest(packet) if dstid == None: scans[packet.l2.srcaddr][packet.l2.dstaddr] = 1 if packet.l3 != None: scans[packet.l2.srcaddr][packet.l3.dstaddr] = 1 if len(scans[packet.l2.srcaddr].keys()) > THRESHOLD: print nox.resolve_user_source_name(packet) print nox.resolve_host_source_name(packet) # To be called on all packet-in events nox.register_for_packet_in(check_for_scans) 24