How SDNs will tame networks Nick McKeown Stanford University.

Slides:



Advertisements
Similar presentations
OpenFlow and Software Defined Networks. Outline o The history of OpenFlow o What is OpenFlow? o Slicing OpenFlow networks o Software Defined Networks.
Advertisements

Software Defined Networking
Programming Protocol-Independent Packet Processors
A SOFT Way for OpenFlow Interoperability Testing Marco Canini TU Berlin / T-Labs [CoNEXT’12]
A SOFT Way for OpenFlow Interoperability Testing Maciej Kuźniar, Peter Perešini, Marco Canini†, Daniele Venzano, Dejan Kostić‡ EPFL †TU Berlin/T-Labs ‡IMDEA.
An Overview of Software-Defined Network Presenter: Xitao Wen.
OpenFlow Costin Raiciu Using slides from Brandon Heller and Nick McKeown.
Leveraging SDN Layering to Systematically Troubleshoot Networks Brandon Heller ★ Colin Scott  Nick McKeown ⌘ Scott Shenker  Andreas Wundsam § Hongyi.
Header Space Analysis: Static Checking For Networks Peyman Kazemian, Nick McKeown (Stanford University) and George Varghese (UCSD and Yahoo Labs). Presented.
VeriCon: Towards Verifying Controller Programs in SDNs (PLDI 2014) Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly.
I Know What Your Packet Did Last Hop: Using Packet Histories to Troubleshoot Networks Nikhil Handigol With Brandon Heller, Vimal Jeyakumar, David Mazières,
Programming Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
Troubleshooting SDNs Peyman Kazemian. Why SDN Troubleshooting SDN decouples software (control plane) from hardware (data plane). Opens doors for innovation.
SDN and Openflow.
Professor Yashar Ganjali Department of Computer Science University of Toronto
NATIONAL & KAPODISTRIAN UNIVERSITY OF ATHENS INTERDEPARTMENTAL GRADUATE PROGRAM IN MANAGEMENT AND ECONOMICS OF TELECOMMUNICATION NETWORKS Master Thesis.
An Overview of Software-Defined Network
Data Plane Verification. Background: What are network policies Alice can talk to Bob Skype traffic must go through a VoIP transcoder All traffic must.
Software Defined Networking By: Widhi Yahya. Introduction.
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
An Overview of Software-Defined Network Presenter: Xitao Wen.
Software Defined Networking
Software-defined Networks October 2009 With Martin Casado and Scott Shenker And contributions from many others.
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.
Software Defined Network (SDN) and Network Virtualization
Formal checkings in networks James Hongyi Zeng with Peyman Kazemian, George Varghese, Nick McKeown.
How SDN will shape networking
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.
Frenetic: A Programming Language for Software Defined Networks Jennifer Rexford Princeton University Joint work with Nate.
Software-Defined Networks Jennifer Rexford Princeton University.
Specialized Packet Forwarding Hardware Feature Specialized Packet Forwarding Hardware Operating System Operating System Operating System Operating System.
Software Defined Networks and OpenFlow SDN CIO Summit 2010 Nick McKeown & Guru Parulkar Stanford University In collaboration with Martin Casado and Scott.
Aaron Gember Aditya Akella University of Wisconsin-Madison
Where is the Debugger for my Software-Defined Network? [ndb]
VeriFlow: Verifying Network-Wide Invariants in Real Time
Aditya Akella (Based on slides from Aaron Gember and Nick McKeown)
CS : Software Defined Networks 3rd Lecture 28/3/2013
Network Verification Star Wars amd The Empire Strikes Back.
Software Defined Networking Mike Freedman COS 461: Computer Networks
SDN AND OPENFLOW SPECIFICATION SPEAKER: HSUAN-LING WENG DATE: 2014/11/18.
SDN and Openflow. Motivation Since the invention of the Internet, we find many innovative ways to use the Internet – Google, Facebook, Cloud computing,
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
Header Space Analysis: Static Checking for Networks Broadband Network Technology Integrated M.S. and Ph.D. Eun-Do Kim Network Standards Research Section.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Preliminaries: EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST.
Verifying & Testing SDN Data & Control Planes: Header Space Analysis.
Data Center Networks and Software-defined Networking
InterVLAN Routing 1. InterVLAN Routing 2. Multilayer Switching.
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Road to SDN Review the main features of SDN
SDN challenges Deployment challenges
The DPIaaS Controller Prototype
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
6.888 Lecture 16: Header Space Analysis
6.829 Lecture 13: Software Defined Networking
Software-Defined Networking
Real Time Network Policy Checking using Header Space Analysis
Software Defined Networking (SDN)
Stanford University Software Defined Networks and OpenFlow SDN CIO Summit 2010 Nick McKeown & Guru Parulkar In collaboration with Martin Casado and Scott.
Software Defined Networking
Indigo Doyoung Lee Dept. of CSE, POSTECH
The Stanford Clean Slate Program
Software Defined Networking (SDN)
Handout # 18: Software-Defined Networking
Enabling Innovation Inside the Network
Lecture 10, Computer Networks (198:552)
Software Defined Networking
Presentation transcript:

How SDNs will tame networks Nick McKeown Stanford University

As I was saying… How big to make a backbone router buffer? C B

Buffer Size Throughput 25, % 2,500,00010Gb/s WAN Number of packets On-chip buffers Smaller design Lower power t Window Size Buffer

Buffer Size Throughput log(W) 25,000~50 ~ 90% 100% 2,500,00010Gb/s WAN Number of packets 20 pkts Integrated all-optical buffer [UCSB 2008] On-chip buffers Smaller design Lower power

Software Defined Networks Martin Casado Scott Shenker Teemu Koponen Guru Parulkar + many (brave) students

Vertically integrated Closed, proprietary Slow innovation Small industry Specialized Operating System Specialized Operating System Specialized Hardware Specialized Hardware App Specialized Applications Specialized Applications Horizontal Open interfaces Rapid innovation Huge industry Microprocessor Open Interface Linux Mac OS Mac OS Windows (OS) Windows (OS) or Open Interface

Vertically integrated Closed, proprietary Slow innovation App Horizontal Open interfaces Rapid innovation Control Plane Control Plane Control Plane Control Plane Control Plane Control Plane or Open Interface Specialized Control Plane Specialized Control Plane Specialized Hardware Specialized Hardware Specialized Features Specialized Features Merchant Switching Chips Merchant Switching Chips Open Interface

Where SDN will be deployed 1.Multi-tenant “virtualized” data centers – Public and private clouds 2.WANs – Google WAN – Eventually, public WANs 3.Enterprise networks – Greater control, fewer middleboxes

Where SDN will be deployed (2) 4. Home networks – Outsourced management 5. Cellular Networks – Separation of service from physical infrastructure 6. Research and Education Networks – National backbones – College campus networks

Getting Started OpenFlow Tutorial – search: “OpenFlow Tutorial” Mininet – Network emulator – Designed for emulating SDN networks – Easy to use – High performance (100 nodes on a laptop) – search: “Mininet”

Tool & Deployment Support Open Networking Lab (ON.Lab) – Independent non-profit lab – Open source tools – Help with deployments – Based in Palo Alto – Hiring…

OpenFlow Switches? Software switch – Open vSwitch (openvswitch.org) – Now part of Linux distribution Hardware switches – Announcements from several vendors – HP, Brocade, NEC, … – (You could ask Google for one of theirs ) Switch ASICs – Current ASICs work, but not optimized for OpenFlow – Expect some OpenFlow-optimized ASICs in 1-2 years

An example: What’s possible in silicon Stanford/TI Labs collaboration 64 x 10Gb/s Multiple table support (>12 flexible stages) 64k TCAM entries (wide) for wildcards 128k hash table entries (wide) for exact matches >1k queues per port All OpenFlow counters On-chip ARM CPU Generic ALU-based action engine With permission from Texas Instruments

If you are in any doubt about whether OpenFlow/SDN will be deployed in the WAN: Urs Hoelzle (Google) at Open Networking Summit 2012

Making Networks Work An intellectual framework for verifying, troubleshooting and debugging SDNs New Research Area

With SDN we can: 1.Formally verify that our networks are behaving correctly. 2.Identify bugs, then systematically track down their root cause.

Ensuring correctness [Frenetic][HFT][Netcore] Nate Foster, Andrew Ferguson, Mike Freedman, Jen Rexford, Rob Harrison, Dave Walker, ++ Software Fault Localization [W3] Scott Shenker, Colin Scott, Kyriakos Zarifis, Andreas Wundsam. Checking behavior [NICE] Marco Canini, Daniele Venzano, Peter Peresini, Dejan Kostic, Jen Rexford. Checking Invariants [VeriFlow] Ahmed Khurshid, Wenxuan Zhou, Matthew Caesar, P. Brighten Godfrey Consistent updates Mark Reitblatt, Rick McGeer, ++ Troubleshooting [OFRewind] Andreas Wundsam, Dan Levin, Srini Seetharaman, Anja Feldman …

Scott Shenker at 1 st ONS in 2011 “The Future of Networking and the Past of Protocols”

Software Defined Network (SDN) Global Network View Network Virtualization Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Network OS Abstract Network View Control Programs Control Programs

Software Defined Network (SDN) Global Network View Network Virtualization Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Abstract Network View Control Programs Control Programs firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … Packet Forwarding Packet Forwarding Network OS … 7.… … 7.… … 7.… … 7.… … 7.… … 7.… … 7.… … 7.… … 7.… … 7.…

How do other industries do it?

Making ASICs Work Specification Functional Description (RTL) Testbench & Vectors Functional Verification Logical Synthesis Static Timing Place & Route Design Rule Checking (DRC) Layout vs Schematic (LVS) Layout Parasitic Extraction (LPE) Manufacture & Validate

Making Software Work Static Code Analysis Invariant Checker Interactive Debugger Model Checking Run-time Checker Specification Testbench Functional Description (Code)

Making Networks Work (Today) traceroute, ping, tcpdump, SNMP, Netflow …. er, that’s about it.

Why debugging networks is hard Complex interaction – Between multiple protocols on a switch/router. – Between state on different switches/routers. Multiple uncoordinated writers of state. Operators can’t… – Observe all state. – Control all state.

Networks are kept working by “Masters of Complexity” A handful of books Almost no papers No classes A handful of books Almost no papers No classes

Philosophy of Making Networks Work YoYo “You’re On Your Own” Yo-Yo Ma “You’re On Your Own, Mate”

With SDN we can: 1.Formally verify that our networks are behaving correctly. 2.Identify bugs, then systematically track down their root cause.

Software Defined Network (SDN) Global Network View Network Virtualization Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Abstract Network View Control Programs Control Programs firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … Packet Forwarding Packet Forwarding Network OS … 7. … … 7. …

Three of our projects 1.Static Checking [HSA] “Independently checking correctness” 2.Automatic Testing [ATPG] “Is the datapath behaving correctly?” 3.Interactive Debugging [ndb] “Finding bugs, and their root cause, in an operational network”

1. Static checking Independently checking correctness Peyman Kazemian Hongyi ‘James’ Zeng George Varghese (UCSD)

Motivations In today’s networks, simple questions are hard to answer: – Can host A talk to host B? – What are all the packet headers from A that can reach B? – Are there any loops in the network? – Is Group X provably isolated from Group Y? – What happens if I remove a line in the config file? 32

Software Defined Network (SDN) Global Network View Network Virtualization Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Abstract Network View Control Programs Control Programs Packet Forwarding Packet Forwarding Network OS … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … Static Checker … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … “A can talk to B” “Guests can’t reach PatientRecords” “A can talk to B” “Guests can’t reach PatientRecords” Policy

How it works Header Space Analysis

Header Space Analysis Port ID

Header Space Analysis Port ID

Can A talk to B? Port ID

All packets from A that can reach B

Header Space Analysis [Kazemian NSDI ‘12] Consequences – Abstract forwarding model; protocol independent – Finds all packets from A that can reach B – Find loops, regardless of protocol or layer – Can prove that two groups are isolated Can verify if network adheres to policy

HSA as a “foundation” HAS enables many tools and methods – Independent static checking – In-line in-controller invariance checking – Dynamic testing: Automatic test packet generation – Dynamic testing: Automatic performance monitoring Analogy to Boolean algebra for logic design

Software Hassel tool – Reads Cisco IOS Configuration – Checks reachability, loops and isolation – C: 60ms for Stanford Backbone – Python: 10 mins for Stanford Backbone Code –

Three of our projects 1.Static Checking [HSA] “Independently checking correctness” 2.Automatic Testing [ATPG] “Is the datapath behaving correctly?” 3.Interactive Debugging [ndb] “Finding bugs, and their root cause, in an operational network”

3. Interactive Debugging Finding bugs, and their root cause, in an operational network Nikhil Handigol Brandon Heller Vimal Jeyakumar David Mazières

Backtrace: Software Programming Function A (): u = B(v) Function A (): u = B(v) Function B (): w = C(x) Function B (): w = C(x) Function C (): y = error Function C (): y = error Breakpoint “ u == error ” Backtrace File “A”, line 10, Function A () File “B”, line 43, Function B () File “C”, line 21, Function C () Breakpoint “ u == error ” Backtrace File “A”, line 10, Function A () File “B”, line 43, Function B () File “C”, line 21, Function C ()

Interactive Debugging with ndb Problem When an operational network misbehaves, it is very hard to find the root cause. Goal – Allow users to define a Network Breakpoint. – Capture and reconstruct the sequence of events leading to the breakpoint.

Network Debugger Collector

Network Debugger … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … … 7. … Collector

Flow Table State Recorder Collector

Who benefits Network developers – Programmers debugging control programs Network operators – Find policy error – Send error report to switch vendor – Send error report to control program vendor

Status First working prototype of ndb – Works without change to OpenFlow Performance on Stanford backbone – Collector could be just one server Collector

firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); …

Software Defined Network (SDN) Global Network View Network Virtualization Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Abstract Network View Control Programs Control Programs firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … firewall.c … if( pkt->tcp->dport == 22) dropPacket(pkt); … Packet Forwarding Packet Forwarding Network OS … 7. … … 7. …

With SDN we will: 1.Formally verify that our networks are behaving correctly. 2.Identify bugs, then systematically track down their root cause.

Software Defined Networks Allows a stronger intellectual foundation to networking Allows us to define the right abstractions Will allow us to transfer technology much faster, in both directions Is already closing the gap with industry

The End