Handout # 18: Software-Defined Networking

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

Towards Software Defined Cellular Networks
OpenFlow overview Joint Techs Baton Rouge. Classic Ethernet Originally a true broadcast medium Each end-system network interface card (NIC) received every.
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.
Mobile Communication and Internet Technologies
Software-Defined Networking, OpenFlow, and how SPARC applies it to the telecommunications domain Pontus Sköldström - Wolfgang John – Elisa Bellagamba November.
OpenFlow : Enabling Innovation in Campus Networks SIGCOMM 2008 Nick McKeown, Tom Anderson, et el. Stanford University California, USA Presented.
SDN and Openflow.
Virtualization and OpenFlow Nick McKeown Nick McKeown VISA Workshop, Sigcomm 2009 Supported by NSF, Stanford Clean.
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
OpenFlow on top of NetFPGA Part I: Introduction to OpenFlow NetFPGA Spring School 2010 Some slides with permission from Prof. Nick McKeown. OpenFlow was.
An Overview of Software-Defined Network
An Overview of Software-Defined Network Presenter: Xitao Wen.
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.
Data Center Network Redesign using SDN
Formal checkings in networks James Hongyi Zeng with Peyman Kazemian, George Varghese, Nick McKeown.
Learning Objectives What is SDN? How key SDN technologies work? SDN applications How to program SDN networks?
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.
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.
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.
Brent Salisbury CCIE#11972 Network Architect University of Kentucky 9/22/ OpenStack & OpenFlow Demo.
Aaron Gember Aditya Akella University of Wisconsin-Madison
Software Defined-Networking. Network Policies Access control: reachability – Alice can not send packets to Bob Application classification – Place video.
OpenFlow: Enabling Innovation in Campus Networks
Aditya Akella (Based on slides from Aaron Gember and Nick McKeown)
CS : Software Defined Networks 3rd Lecture 28/3/2013
Sponsored by the National Science Foundation Tutorial: An Introduction to OpenFlow using POX GENI Engineering Conference 20 June 2014.
Software Defined Networking Mike Freedman COS 461: Computer Networks
A Simple Unified Control Plane for Packet and Circuit Networks Saurav Das, Guru Parulkar, Nick McKeown Stanford University.
ECE 526 – Network Processing Systems Design Networking: protocols and packet format Chapter 3: D. E. Comer Fall 2008.
Unifying Packet & Circuit Networks with OpenFlow Saurav Das, Guru Parulkar, & Nick McKeown Stanford University BIPN, Nov 30 th 2009
Information-Centric Networks Section # 13.2: Alternatives Instructor: George Xylomenos Department: Informatics.
3.6 Software-Defined Networks and OpenFlow
Software Defined Networking and OpenFlow Geddings Barrineau Ryan Izard.
SDN and Beyond Ghufran Baig Mubashir Adnan Qureshi.
Network Processing Systems Design
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.
Data Center Networks and Software-defined Networking
Chapter 4 Network Layer: The Data Plane
Week 6 Software Defined Networking (SDN): Concepts
SDN Overview for UCAR IT meeting 19-March-2014
SDN basics and OpenFlow
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
Chapter 5 Network Layer: The Control Plane
The Stanford Clean Slate Program
CS 31006: Computer Networks – The Routers
Software Defined Networking (SDN)
Software Defined Networking
15-744: Computer Networking
An Introduction to Software Defined Networking and OpenFlow
Chapter 4 Network Layer Computer Networking: A Top Down Approach 5th edition. Jim Kurose, Keith Ross Addison-Wesley, April Network Layer.
Network Layer: Control/data plane, addressing, routers
Software Defined Networking
SDN 刘 驰.
Software Defined Network
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:

Handout # 18: Software-Defined Networking CSC 458/2209 – Computer Networks Handout # 18: Software-Defined Networking Professor Yashar Ganjali Department of Computer Science University of Toronto yganjali@cs.toronto.edu http://www.cs.toronto.edu/~yganjali

University of Toronto – Fall 2016 Announcements Programming assignment 2 Due: Fri. Dec. 2th at 5pm Don’t leave it to the last minute … Grading for PA2 (18% of your final mark) 6% testing simple router (PA1) 12% for the NAT Problem Set 2 Due: Nov. 18th at 5pm This week’s tutorial: Friday, and Tuesday: Programming assignment 2 CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 The Story So Far Layering Link layer Media, framing, error detection/correction, switches, hubs, … Network layer Addressing (CIDR, subnet), routing and forwarding, DNS, BGP, … Transport layer TCP, UDP, flow control, congestion control, queue management, … Misc: Queueing Mechanisms, Middleboxes Next: Software-defined networks CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Innovation – Computers vs. Networks How difficult is it to create/modify a computer application? How difficult is it to create/modify a network feature? What is the difference? What are the tools available for each? CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Innovation in Applications Computer Application OS Application Computer OS abstracts hardware substrate  Innovation in applications CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Innovation in OS and Applications Linux Mac OS x86 (Computer) Windows (OS) or Application Windows (OS) x86 (Computer) Simple, common, stable, hardware substrate below + Programmability + Competition  Innovation in OS and applications CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Innovation in Infrastructure Windows (OS) Linux Mac OS x86 (Computer) App Virtualization Application Application Windows (OS) Linux Mac OS or or x86 (Computer) Simple, common, stable, hardware substrate below + Programmability + Strong isolation model + Competition above  Innovation in infrastructure CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Vertically integrated Closed, proprietary Slow innovation App Specialized Applications Linux Mac OS Windows (OS) or Open Interface Specialized Operating System Microprocessor Open Interface Specialized Hardware The mainframe industry in the 1980s was vertical and closed: it consisted of specialized hardware, operating system and applications --- all from the same company. A revolution happened when open interfaces started to appear. The industry became horizontal. Innovation exploded. Vertically integrated Closed, proprietary Slow innovation Small industry Horizontal Open interfaces Rapid innovation Huge industry CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 We Have Lost Our Way Routing, management, mobility management, access control, VPNs, … Million of lines of source code Feature Feature 6,000 RFCs OS Custom Hardware Billions of gates Bloated Power Hungry Vertically integrated, complex, closed, proprietary Networking industry with “mainframe” mind-set CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Reality is Even Worse Lack of competition means glacial innovation App App App App App App Operating System Operating System Specialized Packet Forwarding Hardware Specialized Packet Forwarding Hardware Lack of competition means glacial innovation Closed architecture means blurry, closed interfaces CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Vertically integrated Closed, proprietary Slow innovation Horizontal App Specialized Features Control Plane or Open Interface Specialized Control Plane Merchant Switching Chips Open Interface Specialized Hardware Vertically integrated Closed, proprietary Slow innovation Horizontal Open interfaces Rapid innovation CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 What we need … CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

1) Separate Intelligence from Datapath Operators, users, 3rd party developers, researchers, … New function! CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 2) Cache Decisions In minimal flow-based datapath “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 CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 How Can We Do This? Feature Network OS Feature OS Feature Custom Hardware OS Feature Custom Hardware OS Feature Custom Hardware OS Custom Hardware Feature OS CSC 458/CSC 2209 – Computer Networks Custom Hardware University of Toronto – Fall 2016

Software Defined Network (SDN) 3. Consistent, up-to-date global network view 2. At least one Network OS probably many. Open- and closed-source Feature Feature Network OS 1. Open interface to packet forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Consequences More innovation in network services Owners, operators, 3rd party developers, researchers can improve the network E.g. energy management, data center management, policy routing, access control, denial of service, mobility Lower barrier to entry for competition Healthier market place, new players Lower cost Infrastructure Management CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Example: Routing OSPF RFC 2328: 245 pages Distributed System Builds consistent, up-to-date map of the network: 101 pages Dijkstra’s Algorithm Operates on map: 4 pages CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Example: Routing OSPF = Dijkstra IS-IS Network OS Packet Forwarding Distributed System OSPF IS-IS Distributed System Distributed System OS Custom Hardware CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Back to the story … CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Software Defined Network (SDN) Control Program A Control Program B Network OS Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Network OS Network OS: distributed system that creates a consistent, up-to-date network view Runs on servers (controllers) in the network NOX, ONIX, HyperFlow, Kandoo, Floodlight, Trema, Beacon, Maestro, BeeHive, OpenDayLight, … + more Uses forwarding abstraction to: Get state information from forwarding elements Give control directives to forwarding elements CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Software Defined Network (SDN) Control Program A Control Program B Network OS Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 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 CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Software Defined Network (SDN) Control Program A Control Program B Network OS Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding Packet Forwarding CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

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 CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Forwarding Substrate Flow-based Small number of actions for each flow Plumbing: Forward to port(s) Control: Forward to controller Routing between flow-spaces: Rewrite header Bandwidth isolation: Min/max rate External open API to flow-table CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 What is a flow? Application flow All http Jim’s traffic All packets to Canada … Types of action Allow/deny flow Route & re-route flow Isolate flow Make flow private Remove flow CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Substrate: “Flowspace” Ethernet DA, SA, etc IP DA, SA, etc TCP DP, SP, etc Payload Collection of bits to plumb flows (of different granularities) between end points Payload Header User-defined flowspace CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 OpenFlow Open standard to run experimental protocols in production networks API between the forwarding elements and the network OS Based in Stanford, supported by various companies (Cisco, Juniper, HP, NEC, …) Used by universities to deploy innovative networking technology CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Traditional Switch Ethernet Switch CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Traditional Switch Control Path (Software) Control Path Data Path (Hardware) CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 OpenFlow Switch Control Program A Control Program B Network OS OpenFlow Protocol (SSL) Ethernet Switch Control Path OpenFlow Data Path (Hardware) CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 OpenFlow Rules Control Program A Control Program B Network OS “If header = p, send to port 4” “If header = q, overwrite header with r, add header s, and send to ports 5,6” Packet Forwarding “If header = ?, send to me” Flow Table(s) Packet Forwarding Packet Forwarding CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Plumbing Primitives <Match, Action> Match arbitrary bits in headers: Match on any header, or new header Allows any flow granularity Action Forward to port(s), drop, send to controller Overwrite header with mask, push or pop Forward at specific bit-rate Match: 1000x01xx0101001x Header Data CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

OpenFlow Rules – Cont’d Exploit the flow table in switches, routers, and chipsets Rule (exact & wildcard) Action Statistics Default Action Rule (exact & wildcard) Action Statistics Flow 1. Flow 2. Flow 3. Flow N. CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016 36

University of Toronto – Fall 2016 Flow Table Entry OpenFlow Protocol Version 1.0 Rule Action Stats Packet + byte counters Forward packet to port(s) Encapsulate and forward to controller Drop packet Send to normal processing pipeline Switch Port MAC src MAC dst Eth type VLAN ID IP Src IP Dst IP Prot TCP sport TCP dport + mask what fields to match CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Examples Switching Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot TCP sport dport Action * * 00:1f:.. * * * * * * * port6 Flow Switching Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot TCP sport dport Action port3 00:2e.. 00:1f.. 0800 vlan1 1.2.3.4 5.6.7.8 4 17264 80 port6 Firewall Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot TCP sport dport Forward * * * * * * * * * 22 drop CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Examples Routing Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot TCP sport dport Action * * * * * * 5.6.7.8 * * * port6 VLAN Switch Port MAC src dst Eth type VLAN ID IP Src Dst Prot TCP sport dport Action port6, port7,port9 * * * * vlan1 * * * * * CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 OpenFlow Hardware Juniper MX-series NEC IP8800 WiMax (NEC) HP Procurve 5400 Cisco Catalyst 6k PC Engines More coming soon... Quanta LB4G CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

OpenFlow Usage Example Dedicated OpenFlow Network Controller Peter’s code PC OpenFlow Switch OpenFlow Protocol Rule Action Statistics OpenFlow Switch OpenFlow Switch Rule Action Statistics Rule Action Statistics Peter CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016 OpenFlowSwitch.org 41

University of Toronto – Fall 2016 Usage examples Peter’s code: Static “VLANs” His own new routing protocol: unicast, multicast, multipath, load-balancing Network access control Home network manager Mobility manager Energy manager Packet processor (in controller) IPvPeter Network measurement and visualization … CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016 42

Research/Production VLANS Controller Research VLANs Flow Table Production VLANs Normal L2/L3 Processing CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Virtualize OpenFlow Switch Flow Table Controller A Flow Table Researcher A VLANs Controller B Researcher B VLANs Flow Table Controller C Researcher C VLANs Production VLANs Normal L2/L3 Processing CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Virtualizing OpenFlow B’s Controller A’s Controller C’s Controller OpenFlow Protocol OpenFlow FlowVisor & Policy Control OpenFlow Switch OpenFlow Protocol OpenFlow Switch OpenFlow Switch CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

Virtualizing OpenFlow http Load-balancer Multicast Broadcast OpenFlow Protocol OpenFlow FlowVisor & Policy Control OpenFlow Switch OpenFlow Protocol OpenFlow Switch OpenFlow Switch CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016

University of Toronto – Fall 2016 Food for Thought What are the challenges in switching from traditional networks to OpenFlow networks? What are the opportunities? CSC 458/CSC 2209 – Computer Networks University of Toronto – Fall 2016