Control-Data Plane Separation

Slides:



Advertisements
Similar presentations
Jennifer Rexford Princeton University MW 11:00am-12:20pm Logically-Centralized Control COS 597E: Software Defined Networking.
Advertisements

Incremental Update for a Compositional SDN Hypervisor Xin Jin Jennifer Rexford, David Walker.
Logically Centralized Control Class 2. Types of Networks ISP Networks – Entity only owns the switches – Throughput: 100GB-10TB – Heterogeneous devices:
SDN Applications Jennifer Rexford Princeton University.
Composing Software Defined Networks
1 o Two issues in practice – Scale – Administrative autonomy o Autonomous system (AS) or region o Intra autonomous system routing protocol o Gateway routers.
Composing Software-Defined Networks Princeton*Cornell^ Chris Monsanto*, Joshua Reich* Nate Foster^, Jen Rexford*, David Walker*
Nanxi Kang Princeton University
Jennifer Rexford Princeton University
OpenFlow-Based Server Load Balancing GoneWild
SDN and Openflow.
CCNA 2 v3.1 Module 6.
Routing and Routing Protocols
Software-Defined Networking
1 ECE453 – Introduction to Computer Networks Lecture 10 – Network Layer (Routing II)
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
Composing Software Defined Networks Jennifer Rexford Princeton University With Joshua Reich, Chris Monsanto, Nate Foster, and.
Enabling Innovation Inside the Network Jennifer Rexford Princeton University
1 Chapter 27 Internetwork Routing (Static and automatic routing; route propagation; BGP, RIP, OSPF; multicast routing)
1 Computer Communication & Networks Lecture 22 Network Layer: Delivery, Forwarding, Routing (contd.)
Software-Defined Networks Jennifer Rexford Princeton University.
Routing and Routing Protocols Routing Protocols Overview.
1 Introducing Routing 1. Dynamic routing - information is learned from other routers, and routing protocols adjust routes automatically. 2. Static routing.
M.Menelaou CCNA2 ROUTING. M.Menelaou ROUTING Routing is the process that a router uses to forward packets toward the destination network. A router makes.
1. 2 Anatomy of an IP Packet IP packets consist of the data from upper layers plus an IP header. The IP header consists of the following:
Copyright 2013 Open Networking User Group. All Rights Reserved Confidential Not For Distribution Programming Abstractions for Software-Defined Networks.
1 Network Layer Lecture 13 Imran Ahmed University of Management & Technology.
TCOM 509 – Internet Protocols (TCP/IP) Lecture 06_a Routing Protocols: RIP, OSPF, BGP Instructor: Dr. Li-Chuan Chen Date: 10/06/2003 Based in part upon.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
Routing and Routing Protocols
Routing protocols. 1.Introduction A routing protocol is the communication used between routers. A routing protocol allows routers to share information.
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
Coping with Link Failures in Centralized Control Plane Architecture Maulik Desai, Thyagarajan Nandagopal.
Fabric: A Retrospective on Evolving SDN Presented by: Tarek Elgamal.
Preliminaries: EE807 Software-defined Networked Computing KyoungSoo Park Department of Electrical Engineering KAIST.
Routing and Routing Protocols CCNA 2 v3 – Module 6.
1 Relates to Lab 4. This module covers link state routing and the Open Shortest Path First (OSPF) routing protocol. Dynamic Routing Protocols II OSPF.
1 Computer Networks Chapter 5. Network layer The network layer is concerned with getting packets from the source all the way to the destination. Getting.
SDN challenges Deployment challenges
Working at a Small-to-Medium Business or ISP – Chapter 6
Multi Node Label Routing – A layer 2.5 routing protocol
Networking CS 3470, Section 1 Sarah Diesburg
Routing Jennifer Rexford.
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
(How the routers’ tables are filled in)
6.829 Lecture 13: Software Defined Networking
CCNA 2 v3.1 Module 6 Routing and Routing Protocols
CS 457 – Lecture 12 Routing Spring 2012.
Chapter 5 The Network Layer.
Intra-Domain Routing Jacob Strauss September 14, 2006.
Routing.
Programming the Networks of the Future
Programmable Networks
Chapter 5 Network Layer: The Control Plane
CS 31006: Computer Networks – The Routers
Composing Software-Defined Networks
Software Defined Networking (SDN)
Software Defined Networking
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 4: Planning and Configuring Routing and Switching.
Programmable Networks
COS 561: Advanced Computer Networks
Working at a Small-to-Medium Business or ISP – Chapter 6
Administrivia Paper assignments for reviews 2 and 3 are out
Lecture 10, Computer Networks (198:552)
Computer Networks Protocols
Chapter 5 Network Layer: The Control Plane
Routing.
Optional Read Slides: Network Multicast
Control-Data Plane Separation
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Control-Data Plane Separation Part II Lecture 4, Computer Networks (198:552) Fall 2019

Quick review of last lecture What a protocol is (rules over messages and actions) Edge and Core How the Internet core is organized (Ases, intra-AS concerns, inter-AS concerns) Separation of decision making (control plane) and decision execution (data plane) for moving packets through the network The router data plane: Forwarding table, switching fabric Buffering, Scheduling Control plane protocols: OSPF for intra-domain routing

What differentiates the routing protocols What outcome it computes: spanning tree, shortest path, local policy, arbitrary end-to-end paths What algorithm it runs: Spanning-tree construction, distance vector, link-state routing, path-vector routing, source routing, end-to-end signaling How the protocol learns the location of endpoints: flooding, neighbor message exchange, injecting addresses into the protocol, dissemination using a different protocol, directory server

Different tradeoffs in routing protocols State required to represent the paths Ability to use all links Ability to support multiple paths Quality of computed paths Complexity of computing the paths Costs of propagating endpoint reachability information

Implications of traditional routing design Vendor dependence Dependent on router software and vendors to get the right hardware behavior Opaque network operations Unnecessarily hard for network admins to enforce their intent Ex: compute weights to imply a certain set of “shortest paths” Unnecessary protocol complexity a large fraction of OSPF specification is about maintaining consistent knowledge of the network across routers

OSPF: Shortest-path tree Shortest-path tree from u Forwarding table at u ? u v w x y z s t link v (u,v) w (u,w) x (u,w) y (u,v) z (u,v) Counter-intuitive: Operators may set the link metric to achieve certain shortest-path trees with the protocol s (u,w) t (u,w)

Software-Defined Networking

Control & Data Planes inside a router Traditionally: Individual routing algorithm components in each and every router interact in the control plane Control plane per route-change processing (~ a few seconds) Routing Algorithm data plane control Data plane per-packet processing (~ tens of nanoseconds) 0111 1 2 3 values in arriving packet header

Problems with traditional routers Management decisions tied to distributed protocols Ex: Set OSPF link weights to force traffic through desired path Ex: Non-deterministic network state after a link failure Data and control plane controlled by vendors: proprietary interfaces ? X

Traditional IP network Management plane Control plane Data plane Data plane Data plane Data plane

SDN (1/2): Centralized control plane SDN controller Control planes lifted from switches … into a logically centralized controller … running in a compute cluster Data plane Data plane Data plane Data plane

SDN (2/2): Open interface to data plane SDN controller Data plane Data plane Data plane Data plane

Some immediate consequences…

Small set of hardware instructions. (1) Simpler switches SDN controller Data plane Data plane Data plane Data plane Small set of hardware instructions.

Data plane primitive: Match-action rules Match arbitrary bits in the packet header Match on any header, or new header Allows any flow granularity Actions Forward to port(s), drop, send to controller, count, Overwrite header with mask, push or pop, … Forward at specific bit-rate Prioritized list of rules Data Header Match: 1000x01xx01001x Action: fwd(port 2) Priority: 65500

(2) Network programming abstractions Application Application Application Write modular apps and compose them SDN controller Data plane Data plane Data plane Data plane

(3) Unified network operating system Application Application Application Network Operating System Separate distributed system concerns from administrator intent Data plane Data plane Data plane Data plane Persist app state Graceful failover Replication for perf

Composition of Policies

Combining many networking tasks Monolithic application Route + Monitor + FW + LB SDN controller Hard to program, test, debug, reuse, port, …

Modular controller applications Each module partially specifies the handling of the traffic Monitor Route FW LB SDN controller

Network policy as a function 2 Located packet: headers + switch + port Policy: function of a located packet To a set of located packets: multicast, drop, forward Function can modify packets Headers and location 1 3 Match Action dstip == 1.2.3.4 & srcport == 80  port = 3, dstip = 10.0.0.1

Parallel composition (+) srcip == 5.6.7.8  count srcip == 5.6.7.9  count dstip == 1.2/16  fwd(1) dstip == 3.4.5/24  fwd(2) Monitor on source IP + Route on dst prefix SDN controller srcip == 5.6.7.8, dstip == 1.2/16  fwd(1), count srcip == 5.6.7.8, dstip == 3.4.5/24  fwd(2), count srcip == 5.6.7.9, dstip == 1.2/16  fwd(1), count srcip == 5.6.7.9, dstip == 3.4.5/24  fwd(2), count

Example: Server load balancer Spread client traffic over server replicas Public IP address for the service Split traffic based on client IP Rewrite the server IP address Then, route to the replica 10.0.0.1 10.0.0.2 1.2.3.4 clients load balancer 10.0.0.3 server replicas

Sequential composition (>>) srcip==0*, dstip==1.2.3.4  dstip=10.0.0.1 srcip==1*, dstip==1.2.3.4  dstip=10.0.0.2 dstip==10.0.0.1  fwd(1) dstip==10.0.0.2  fwd(2) Load Balancer >> Routing SDN controller Load balancer splits traffic sent to public IP address over multiple replicas, based on client IP address, and rewrites the IP address srcip==0*, dstip==1.2.3.4  dstip = 10.0.0.1, fwd(1) srcip==1*, dstip==1.2.3.4  dstip = 10.0.0.2, fwd(2)

Implications & Challenges of SDN

What does SDN make possible/easy? Expressing forwarding intent directly Example path: sw==S1fwd(4) + sw==S2fwd(1) + sw==S3fwd(7) Reading state: Measurement through counters Measure exactly the traffic you care about Can modify forwarding to make measurements more accurate! Deterministically and swiftly handle data plane failures Google’s B4: Failover to pre-computed outcomes S1 S2 S3 4 3 1 2 7

What does SDN make possible/easy? Network policy verification Correctness: Reachability, loop-freedom, SLO violations, etc. Performance Better router data plane design Decouple evolution of router instruction sets and network policy Apply the SDN philosophy to system design as a whole Stateful “network functions” that reside in the core of the network Operating systems End host NICs <insert your idea here!>

Technical challenges of SDN Scalability: controller responsible for many routers Response time: Delays between controller and routers Reliability: surviving failures of the controller & data plane Consistency: Ensuring multiple controllers behave consistently Ensuring controller policy is faithfully implemented Security: Entire network may be owned if the controller is vulnerable Interoperability: legacy routers and neighboring domains