Computer Networking: A Top-Down Approach (2021) Chapter 5 PDF
Document Details
![AudibleParody3141](https://quizgecko.com/images/avatars/avatar-6.webp)
Uploaded by AudibleParody3141
2021
Jim Kurose, Keith Ross
Tags
Summary
This document is chapter 5 from the 8th edition of Computer Networking: A Top-Down Approach, published by Pearson in 2020. It outlines network layer control plane concepts and introduces traditional routing algorithms, SDN controllers, and network management aspects.
Full Transcript
Chapter 5 Network Layer: Control Plane A note on the use of these PowerPoint slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to...
Chapter 5 Network Layer: Control Plane A note on the use of these PowerPoint slides: We’re making these slides freely available to all (faculty, students, readers). They’re in PowerPoint form so you see the animations; and can add, modify, and delete slides (including this one) and slide content to suit your needs. They obviously represent a lot of work on our part. In return for use, we only ask the following: § If you use these slides (e.g., in a class) that you mention their source (after all, we’d like people to use our book!) § If you post any slides on a www site, that you note that they are adapted from (or perhaps identical to) our slides, and note our copyright of this material. Computer Networking: A For a revision history, see the slide note for this page. Top-Down Approach Thanks and enjoy! JFK/KWR 8th edition All material copyright 1996-2020 Jim Kurose, Keith Ross J.F Kurose and K.W. Ross, All Rights Reserved Pearson, 2020 Network Layer: 5-1 Network layer control plane: our goals §understand principles § instantiation, implementation behind network control in the Internet: plane: OSPF, BGP traditional routing algorithms OpenFlow, ODL and ONOS SDN controllers controllers network management, SNMP, YANG/NETCONF configuration Network Layer: 5-2 Network layer: “control plane” roadmap § introduction § routing protocols § link state § distance vector § intra-ISP routing: OSPF § routing among ISPs: BGP § network management, § SDN control plane configuration § Internet Control Message SNMP Protocol (ICMP) NETCONF/YANG (NOT COVERED) Network Layer: 5-3 Network-layer functions § forwarding: move packets from router’s input to appropriate router output data plane § routing: determine route taken by packets from source to destination control plane Two approaches to structuring network control plane: § per-router control (traditional) § logically centralized control (software defined networking) Network Layer: 5-4 Introduction vRecalling the next figures for forwarding table and the flow table were the principal elements that linked the network layer’s data plane and control plane. Figure: Per-router control: Individual routing algorithm components interact in the control plane Network Layer: 5-5 Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 378) Introduction vRecalling the next figures for forwarding table and the flow table were the principal elements that linked the network layer’s data plane and control plane. v These tables specify the local data-plane forwarding behavior of a router. v The case of generalized forwarding is not only forwarding a packet to a router’s output port, but also dropping a packet and replicating a packet. Figure: In this chapter 5, Per-router control: we’ll study how those Individual routing forwarding and flow tables algorithm are computed, maintained components interact in the and installed. control plane Network Layer: 5-6 Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 378) Introduction (a) Per-router control: Two Approaches The OSPF and BGP protocols Section 5.3 Figure: Per-router control: Individual routing algorithm components interact in the control plane OSPF (Open Shortest Part First) BGP (Border Gateway Protocol): Network Layer: 5-7 Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 378) Introduction Two Approaches (b) Logically centralized control (SDN) generalized match-plus-action abstraction allows the router to perform traditional IP forwarding. The SDN Section 5.5 Figure: Logically centralized control: A distinct, typically remote, CAs communicate controller interacts with the controller with local Control Agents (CAs) Network Layer: 5-8 Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 379) Network layer: “control plane” roadmap § introduction § routing protocols § link state § distance vector § intra-ISP routing: OSPF § routing among ISPs: BGP § network management, § SDN control plane configuration § Internet Control Message SNMP NETCONF/YANG (NOT Protocol (ICMP) COVERED) Network Layer: 5-9 Routing protocols mobile network national or global ISP Routing protocol goal: determine “good” paths (equivalently, routes), from sending hosts to receiving host, application transport through network of routers network link physical § path: sequence of routers packets network link physical network link traverse from given initial source host physical to final destination host network link physical network link § “good”: least “cost”, “fastest”, “least physical network link datacenter physical network congested” § routing: a “top-10” networking application transport network challenge! enterprise network link physical Network Layer: 5-10 Graph abstraction: link costs 5 ca,b: cost of direct link connecting a and b v 3 w e.g., cw,z = 5, cu,z = ∞ 2 5 u 2 1 z 3 cost defined by network operator: 1 x y 2 could always be 1, or inversely related 1 to bandwidth, or inversely related to congestion graph: G = (N,E) N: set of routers = { u, v, w, x, y, z } E: set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) } Network Layer: 5-11 Routing algorithm classification global: all routers have complete topology, link cost info “link state” algorithms How fast dynamic: routes change do routes static: routes change more quickly change? slowly over time periodic updates or in response to link cost changes decentralized: iterative process of computation, exchange of info with neighbors routers initially only know link costs to attached neighbors “distance vector” algorithms global or decentralized information? Network Layer: 5-12 Network layer: “control plane” roadmap § introduction § routing protocols § link state § distance vector § intra-ISP routing: OSPF § routing among ISPs: BGP § network management, § SDN control plane configuration § Internet Control Message SNMP Protocol (ICMP) NETCONF/YANG Network Layer: 5-13 Dijkstra’s link-state routing algorithm § centralized: network topology, link notation costs known to all nodes accomplished via “link state § cx,y: direct link cost from node x to y; = ∞ if not direct broadcast” neighbors all nodes have same info § D(v): current estimate of cost § computes least cost paths from one of least-cost-path from source node (“source”) to all other nodes to destination v gives forwarding table for that node § p(v): predecessor node along path from source to v § iterative: after k iterations, know § N': set of nodes whose least- least cost path to k destinations cost-path definitively known Network Layer: 5-14 Dijkstra’s link-state routing algorithm 1 Initialization: 2 N' = {u} 3 for all nodes v 4 if v adjacent to u 5 then D(v) = cu,v 6 else D(v) = ∞ 7 8 Loop 9 find w not in N' such that D(w) is a minimum 10 add w to N' 11 update D(v) for all v adjacent to w and not in N' : 12 D(v) = min ( D(v), D(w) + cw,v ) 13 15 until all nodes in N' Network Layer: 5-15 Dijkstra’s algorithm: an example v w x y z Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z) 0 u 2,u 5,u 1,u ∞ ∞ 1 ux 2,u 4,x 2,x ∞ 2 uxy 2,u 3,y 4,y 3 uxyv 3,y 4,y 4 uxyvw 4,y 5 uxyvwz Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a 5 3 find a not in N' such that D(a) is a minimum v w add a to N' 2 5 u 2 1 z update D(b) for all b adjacent to a and not in N' : 3 D(b) = min ( D(b), D(a) + ca,b ) 1 2 x 1 y Network Layer: 5-16 Dijkstra’s algorithm: an example 5 v 3 w 2 5 u 2 1 z 3 1 2 x 1 y resulting least-cost-path tree from u: resulting forwarding table in u: destination outgoing link v w v (u,v) route from u to v directly u z x (u,x) y (u,x) route from u to all x y w (u,x) other destinations x (u,x) via x Network Layer: 5-17 Dijkstra’s algorithm: another example v w x y z D(v), D(w), D(x), D(y), D(z), x 9 Step N' p(v) p(w) p(x) p(y) p(z) 0 u 7,u 3,u 5,u ∞ ∞ 5 7 4 1 uw 6,w 5,u 11,w ∞ 8 2 uwx 6,w 11,w 14,x 3 w y z u 2 3 uwxv 10,v 14,x 3 4 uwxvy 12,y 7 4 5 uwxvyz v notes: § construct least-cost-path tree by tracing predecessor nodes § ties can exist (can be broken arbitrarily) Network Layer: 5-18 Exercise 5.0 Dijkstra’s Algorithm Routers in nodes u, v, w, x, y and z have been assigned with link cost value as stated in the diagram. (a) Construct table least cost paths from node z to node u construct shortest path tree by tracing predecessor nodes (b) Computes least cost paths from node z to node u (c) Produce forwarding table for node z Network Layer: 5-21 Exercise 5.1 Routers in nodes A, B, C, D, E and F have been assigned with link cost value as stated in the diagram. (a) Construct table least cost paths from node A to node F using Dijkstra’s algorithm (b) Draw least cost paths from node A to node F (c) Produce forwarding table for node A Network Layer: 5-22 http://www4.ncsu.edu/~chou/course/Diagrams/distance-vector.gif Exercise 5.2 Routers in nodes A, B, C, D, E, and F have been assigned with link cost value as stated in the diagram. (a) Construct table least cost paths from node D to node H using Dijkstra’s algorithm (b) Draw least cost paths from node D to node H (c) Produce forwarding table for node D Network Layer: 5-23 https://i.stack.imgur.com/bcz2a.jpg Exercise 5.3 Routers in nodes A, B, C, D, E, F, G and H have been assigned with link cost value as stated in the diagram. (a) Construct table least cost paths from node D to node H using Dijkstra’s algorithm (b) Draw least cost paths from node D to node H (c) Produce forwarding table for node D Network Layer: 5-24 http://s3.amazonaws.com/answer-board-image/6bfef7b5-05b9-4210-afb5-712510e57a37.jpeg Network layer: “control plane” roadmap § introduction § routing protocols § link state § distance vector § intra-ISP routing: OSPF § routing among ISPs: BGP § network management, § SDN control plane configuration § Internet Control Message SNMP NETCONF/YANG (NOT Protocol (ICMP) COVERED) Network Layer: 5-25 Distance vector algorithm Based on Bellman-Ford (BF) equation (dynamic programming): Bellman-Ford equation Let Dx(y): cost of least-cost path from x to y. Then: Dx(y) = minv { cx,v + Dv(y) } v’s estimated least-cost-path cost to y min taken over all neighbors v of x direct cost of link from x to v Network Layer: 5-26 Distance vector algorithm key idea: § from time-to-time, each node sends its own distance vector estimate to neighbors § when x receives new DV estimate from any neighbor, it updates its own DV using B-F equation: Dx(y) ← minv{cx,v + Dv(y)} for each node y ∊ N § under minor, natural conditions, the estimate Dx(y) converge to the actual least cost dx(y) Network Layer: 5-27 5-28 The Distance Vector (DV) dx(y) Bellman-Ford x v y Bellman-Ford equation (dynamic programming) c(x,v) dv(y) let à cost of least-cost path from x to y then d x (y) = min v {c(x, v) + dv (y)} v under minor, natural conditions, the estimate d x (y) converge to the actual least cost d x (y) Network Layer: 5-28 5-29 The Distance Vector (DV) Example: Bellman-Ford Neighbor to u are v, x, and w; u c(u,v) dv(z) v c(u,x) dx(z) u x z c(u,w) dw(z) w Network Layer: 5-29 5-30 The Distance Vector (DV) Bellman-Ford Clearly, dv (z) = 5, d x (z) = 3, dw (z) = 3 v w x c(u,v) dv(z) v c(u,x) dx(z) u x z c(u,w) dw(z) w Network Layer: 5-30 Bellman-Ford Example Suppose that u’s neighboring nodes, x,v,w, know that for destination z: Dv(z) = 5 Dw(z) = 3 Bellman-Ford equation says: 5 Du(z) = min { cu,v + Dv(z), 3 w v 5 cu,x + Dx(z), 2 u 2 1 z cu,w + Dw(z) } 3 1 2 = min {2 + 5, x 1 y 1 + 3, 5 + 3} = 4 Dx(z) = 3 node achieving minimum (x) is next hop on estimated least- cost path to destination (z) Network Layer: 5-31 Exercise 5.4 Calculate the cost from z to u by using the Bellman-Ford algorithm. Network Layer: 5-32 Exercise 5.6 Using the Bellman-Ford algorithm to calculate the cost from: (a) A to F (b) B to E (c) F to B Network Layer: 5-33 http://www4.ncsu.edu/~chou/course/Diagrams/distance-vector.gif Exercise 5.7 Using the Bellman-Ford algorithm to calculate the cost from: (a) A to F (b) B to C (c) F to B Network Layer: 5-34 https://i.stack.imgur.com/bcz2a.jpg Exercise 5.8 Using the Bellman-Ford algorithm to calculate the cost from: (a) D to E (b) D to H (c) H to B (d) F to D (e) A to E Network Layer: 5-35 http://s3.amazonaws.com/answer-board-image/6bfef7b5-05b9-4210-afb5-712510e57a37.jpeg Distance vector algorithm: each node: iterative, asynchronous: each local iteration caused by: wait for (change in local link § local link cost change cost or msg from neighbor) § DV update message from neighbor recompute DV estimates using distributed, self-stopping: each node notifies neighbors only when DV received from neighbor its DV changes § neighbors then notify their if DV to any destination has neighbors – only if necessary changed, notify neighbors § no notification received, no actions taken! Network Layer: 5-36 5-37 The Distance Vector (DV) Figure: DV algorithm at each node, x Network Layer: 5-37 Distance vector: another example cost to cost to Dx() x y z x y z x 0 2 7 x 0 2 3 from from y ∞∞ ∞ y 2 0 1 Dx(z) = min{cx,y+ Dy(z), cx,z+ Dz(z)} z ∞∞ ∞ z 7 1 0 = min{2+1 , 7+0} = 3 cost to y Dy() x y z 2 1 Dx(y) = min{cx,y + Dy(y), cx,z+ Dz(y)} x ∞ ∞ ∞ = min{2+0 , 7+1} = 2 x z 7 from y 2 0 1 z ∞∞ ∞ cost to Dz() x y z x ∞∞ ∞ from y ∞∞ ∞ z 7 1 0 time Network Layer: 5-38 Distance vector: another example cost to cost to Dx() x y z x y z cost to x y z x 0 2 7 x 0 2 3 x 0 2 3 from from y ∞∞ ∞ y 2 0 1 y 2 0 1 from z ∞∞ ∞ z 7 1 0 z 3 1 0 cost to cost to y Dy() x y z x y z cost to x y z 2 1 x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z 7 from y 2 0 1 y 2 0 1 from from y 2 0 1 z ∞∞ ∞ z 7 1 0 z 3 1 0 cost to cost to cost to Dz() x y z x y z x y z x ∞∞ ∞ x 0 2 7 x 0 2 3 from from y 2 0 1 y 2 0 1 from y ∞∞ ∞ z 7 1 0 z 3 1 0 z 3 1 0 time Network Layer: 5-39 The Distance Vector (DV) Cost from x to y: Dx (y) = min{c(x, y) + Dy (y), c(x, z) + Dz (y)} = min{2 + 0, 7 +1} = min{2,8} = 2 Cost from z to x: Cost from y to z: Dz (x) = min{c(z, x) + Dx (x), Dy (z) = min{c(y, z) + Dz (z), c(z, y) + Dy (x)} c(y, x) + Dx (z)} Self-Test = min{7 + 0,1+ 2} = min{1+ 0, 2 + 7} = min{7, 3} = 3 = min{1, 9} = 1 Network Layer: 5-40 Distance vector: link cost changes link cost changes: 1 y 4 1 § node detects local link cost change x z § updates routing info, recalculates local DV 50 § if DV changes, notify neighbors t0 : y detects link-cost change, updates its DV, informs its neighbors. “good news t1 : z receives update from y, updates its table, computes new least travels fast” cost to x , sends its neighbors its DV. t2 : y receives z’s update, updates its distance table. y’s least costs do not change, so y does not send a message to z. Network Layer: 5-41 Distance vector: link cost changes link cost changes: 60 § node detects local link cost change 4 y 1 § “bad news travels slow” – count-to-infinity problem: x z 50 y sees direct link to x has new cost 60, but z has said it has a path at cost of 5. So y computes “my new cost to x will be 6, via z); notifies z of new cost of 6 to x. z learns that path to x via y has new cost 6, so z computes “my new cost to x will be 7 via y), notifies y of new cost of 7 to x. y learns that path to x via z has new cost 7, so y computes “my new cost to x will be 8 via y), notifies z of new cost of 8 to x. z learns that path to x via y has new cost 8, so z computes “my new cost to x will be 9 via y), notifies y of new cost of 9 to x. … § see text for solutions. Distributed algorithms are tricky! Network Layer: 5-42 Comparison of LS and DV algorithms message complexity robustness: what happens if router LS: n routers, O(n2) messages sent malfunctions, or is compromised? DV: exchange between neighbors; LS: convergence time varies router can advertise incorrect link cost each router computes only its own speed of convergence table LS: O(n2) algorithm, O(n2) messages DV: may have oscillations DV router can advertise incorrect path DV: convergence time varies cost (“I have a really low cost path to may have routing loops everywhere”): black-holing count-to-infinity problem each router’s table used by others: error propagate thru network Network Layer: 5-43 Exercise 5.9 Answer the questions based on the figure and the table with some values that constructed by Bellman-Ford algorithm. (a) Calculate the cost at w, x and y. (b) Proof the cost in the blue shaded cells. cost to (c) Calculate the cost at z. A B C D E F G Justify your answer. A w B x C y from D 13 E 9 F 11 G z Network Layer: 5-44 http://homepages.herts.ac.uk/~comqrgd/docs/network-notes/network-notes-img31.png Network layer: “control plane” roadmap § introduction § routing protocols § intra-ISP routing: OSPF § routing among ISPs: BGP § SDN control plane § Internet Control Message § network management, Protocol (ICMP) configuration SNMP NETCONF/YANG (NOT COVERED) Network Layer: 5-45 Making routing scalable our routing study thus far - idealized § all routers identical § network “flat” … not true in practice scale: billions of destinations: administrative autonomy: § can’t store all destinations in § Internet: a network of networks routing tables! § each network admin may want to § routing table exchange would control routing in its own network swamp links! Network Layer: 5-46 Internet approach to scalable routing aggregate routers into regions known as “autonomous systems” (AS) (a.k.a. “domains”) intra-AS (aka “intra-domain”): inter-AS (aka “inter-domain”): routing among within same AS routing among AS’es (“network”) § gateways perform inter-domain § all routers in AS must run same intra- routing (as well as intra-domain domain protocol routing) § routers in different AS can run different intra-domain routing protocols § gateway router: at “edge” of its own AS, has link(s) to router(s) in other AS’es Network Layer: 5-47 Interconnected ASes forwarding table configured by intra- and inter-AS routing algorithms Intra-AS Inter-AS Routing Routing § intra-AS routing determine entries for forwarding destinations within AS table § inter-AS & intra-AS determine entries for external destinations intra-AS 3c routing3a inter-AS routing intra-AS 2c 3b 2a routing 2b 1c AS3 intra-AS 1a routing 1b AS2 1d AS1 Network Layer: 5-48 Inter-AS routing: a role in intradomain forwarding § suppose router in AS1 receives AS1 inter-domain routing must: datagram destined outside of AS1: 1. learn which destinations reachable router should forward packet to through AS2, which through AS3 gateway router in AS1, but which 2. propagate this reachability info to all one? routers in AS1 3c 3a 2c other 3b 2a networks 2b 1c AS3 other 1a 1b AS2 networks 1d AS1 Network Layer: 5-49 Intra-AS routing: routing within an AS also known as interior gateway protocols (IGP) most common intra-AS routing protocols: § RIP: Routing Information Protocol [RFC 1723] classic DV: DVs exchanged every 30 secs no longer widely used § IGRP/EIGRP: Enhanced Interior Gateway Routing Protocol DV based formerly Cisco-proprietary for decades (became open in 2013 [RFC 7868]) § OSPF: Open Shortest Path First [RFC 2328] link-state routing IS-IS protocol (ISO standard, not RFC standard) essentially same as OSPF Network Layer: 5-50 OSPF (Open Shortest Path First) routing § “open”: publicly available § classic link-state each router floods OSPF link-state advertisements (directly over IP rather than using TCP/UDP) to all other routers in entire AS multiple link costs metrics possible: bandwidth, delay each router has full topology, uses Dijkstra’s algorithm to compute forwarding table § security: all OSPF messages authenticated (to prevent malicious intrusion) Network Layer: 5-51 Hierarchical OSPF § two-level hierarchy: local area, backbone. link-state advertisements flooded only in area, or backbone each node has detailed area topology; only knows direction to reach other destinations area border routers: boundary router: “summarize” distances to connects to other ASes backbone destinations in own area, backbone router: advertise in backbone runs OSPF limited to backbone local routers: flood LS in area only area 3 compute routing within area forward packets to outside internal area 1 routers via area border router area 2 Network Layer: 5-52 Network layer: “control plane” roadmap § introduction § routing protocols § intra-ISP routing: OSPF § routing among ISPs: BGP § SDN control plane § Internet Control Message § network management, Protocol (ICMP) configuration SNMP NETCONF/YANG (NOT COVERED) Network Layer: 5-53 Internet inter-AS routing: BGP § BGP (Border Gateway Protocol): the de facto inter-domain routing protocol “glue that holds the Internet together” § allows subnet to advertise its existence, and the destinations it can reach, to rest of Internet: “I am here, here is who I can reach, and how” § BGP provides each AS a means to: eBGP: obtain subnet reachability information from neighboring ASes iBGP: propagate reachability information to all AS-internal routers. determine “good” routes to other networks based on reachability information and policy Network Layer: 5-54 eBGP, iBGP connections 2b 2a 2c ∂ 1b 3b 2d 1a 1c ∂ 3a 3c AS 2 1d 3d AS 1 eBGP connectivity AS 3 logical iBGP connectivity 1c gateway routers run both eBGP and iBGP protocols Network Layer: 5-55 Why different Intra-, Inter-AS routing ? policy: § inter-AS: admin wants control over how its traffic routed, who routes through its network § intra-AS: single admin, so policy less of an issue scale: § hierarchical routing saves table size, reduced update traffic performance: § intra-AS: can focus on performance § inter-AS: policy dominates over performance Network Layer: 5-56 Network layer: “control plane” roadmap § introduction § routing protocols § intra-ISP routing: OSPF § routing among ISPs: BGP § SDN control plane § Internet Control Message § network management, Protocol (ICMP) configuration SNMP NETCONF/YANG (NOT COVERED) Network Layer: 5-57 Software defined networking (SDN) § Internet network layer: historically implemented via distributed, per-router control approach: monolithic router contains switching hardware, runs proprietary implementation of Internet standard protocols (IP, RIP, IS-IS, OSPF, BGP) in proprietary router OS (e.g., Cisco IOS) different “middleboxes” for different network layer functions: firewalls, load balancers, NAT boxes,.. § ~2005: renewed interest in rethinking network control plane Network Layer: 5-58 Per-router control plane Individual routing algorithm components in each and every router interact in the control plane to computer forwarding tables 4.1 OVERVIEW OF NETWORK LAYER 309 Routing Algorithm Routing algorithm control Control plane plane Data plane Local forwarding data table header output plane 0100 3 0110 2 0111 2 1001 1 Values in arriving values in arriving packet’s header 1 packet header 1101 2 3 0111 1 2 3 Figure 4.2 ♦ Routing algorithms determine values in forward tables Network Layer: 4-59 tables. In this example, a routing algorithm runs in each and every router and both forwarding and routing functions are contained within a router. As we’ll see in Sec- tions 5.3 and 5.4, the routing algorithm function in one router communicates with the routing algorithm function in other routers to compute the values for its forward- ing table. How is this communication performed? By exchanging routing messages containing routing information according to a routing protocol! We’ll cover routing algorithms and protocols in Sections 5.2 through 5.4. The distinct and different purposes of the forwarding and routing functions can Software-Defined Networking (SDN) control plane Remote controller computes, installs forwarding tables in routers Remote Controller control plane data plane CA CA CA CA CA values in arriving packet header 0111 1 2 3 Network Layer: 4-60 Software defined networking (SDN) Why a logically centralized control plane? § easier network management: avoid router misconfigurations, greater flexibility of traffic flows § table-based forwarding (recall OpenFlow API) allows “programming” routers centralized “programming” easier: compute tables centrally and distribute distributed “programming” more difficult: compute tables as result of distributed algorithm (protocol) implemented in each-and-every router § open (non-proprietary) implementation of control plane foster innovation: let 1000 flowers bloom Network Layer: 5-61 Software defined networking (SDN) access … load 3. control plane functions 4. programmable routing control balance external to data-plane control switches applications Remote Controller control plane data plane CA 2. control, data CA CA CA CA plane separation 1: generalized “flow-based” forwarding (e.g., OpenFlow) Network Layer: 5-66 Software defined networking (SDN) network-control applications Data-plane switches: … routing § fast, simple, commodity switches load access implementing generalized data-plane control balance forwarding (Section 4.4) in hardware control plane § flow (forwarding) table computed, northbound API installed under controller supervision SDN Controller § API for table-based switch control (network operating system) (e.g., OpenFlow) southbound API defines what is controllable, what is not § protocol for communicating with data plane controller (e.g., OpenFlow) SDN-controlled switches Network Layer: 5-67 Software defined networking (SDN) network-control applications SDN controller (network OS): … routing § maintain network state access load information control balance § interacts with network control northbound API control plane applications “above” via northbound API SDN Controller (network operating system) § interacts with network switches “below” via southbound API southbound API § implemented as distributed system data for performance, scalability, fault- plane tolerance, robustness SDN-controlled switches Network Layer: 5-68 Software defined networking (SDN) network-control applications network-control apps: … routing § “brains” of control: access load implement control functions control balance using lower-level services, API control plane northbound API provided by SDN controller SDN Controller § unbundled: can be provided by (network operating system) 3rd party: distinct from routing vendor, or SDN controller southbound API data plane SDN-controlled switches Network Layer: 5-69 Components of SDN controller routing access load control balance interface layer to network Interface, abstractions for network control apps control apps: abstractions API network graph RESTful API … intent network-wide state statistics … flow tables SDN management : state of networks links, switches, Network-wide distributed, robust state management controller services: a distributed database Link-state info host info … switch info communication: communicate OpenFlow … SNMP between SDN controller and Communication to/from controlled devices controlled switches Network Layer: 5-70 OpenFlow protocol § operates between controller, switch OpenFlow Controller § TCP used to exchange messages optional encryption § three classes of OpenFlow messages: controller-to-switch asynchronous (switch to controller) symmetric (misc.) § distinct from OpenFlow API API used to specify generalized forwarding actions Network Layer: 5-71 OpenFlow: controller-to-switch messages Key controller-to-switch messages OpenFlow Controller § features: controller queries switch features, switch replies § configure: controller queries/sets switch configuration parameters § modify-state: add, delete, modify flow entries in the OpenFlow tables § packet-out: controller can send this packet out of specific switch port Network Layer: 5-72 OpenFlow: switch-to-controller messages Key switch-to-controller messages OpenFlow Controller § packet-in: transfer packet (and its control) to controller. See packet-out message from controller § flow-removed: flow table entry deleted at switch § port status: inform controller of a change on a port. Fortunately, network operators don’t “program” switches by creating/sending OpenFlow messages directly. Instead use higher-level abstraction at controller Network Layer: 5-73 SDN: selected challenges § hardening the control plane: dependable, reliable, performance- scalable, secure distributed system robustness to failures: leverage strong theory of reliable distributed system for control plane dependability, security: “baked in” from day one? § networks, protocols meeting mission-specific requirements e.g., real-time, ultra-reliable, ultra-secure § Internet-scaling: beyond a single AS § SDN critical in 5G cellular networks Network Layer: 5-76 SDN and the future of traditional network protocols § SDN-computed versus router-computer forwarding tables: just one example of logically-centralized-computed versus protocol computed § one could imagine SDN-computed congestion control: controller sets sender rates based on router-reported (to controller) congestion levels How will implementation of network functionality (SDN versus protocols) evolve? Network Layer: 5-77 Network layer: “control plane” roadmap § introduction § routing protocols § intra-ISP routing: OSPF § routing among ISPs: BGP § SDN control plane § Internet Control Message Protocol (ICMP) § network management, configuration SNMP NETCONF/YANG (NOT COVERED) Network Layer: 5-78 ICMP: internet control message protocol § used by hosts & routers to communicate network- Type Code description level information 0 0 echo reply (ping) 3 0 dest. network unreachable error reporting: unreachable host, network, port, 3 1 dest host unreachable protocol 3 2 dest protocol unreachable echo request/reply (used by 3 3 dest port unreachable ping) 3 6 dest network unknown 3 7 dest host unknown § network-layer “above” IP: 4 0 source quench (congestion ICMP msgs carried in IP control - not used) datagrams 8 0 echo request (ping) § ICMP message: type, code 9 0 route advertisement 10 0 router discovery plus first 8 bytes of IP datagram causing error 11 0 TTL expired 12 0 bad IP header Network Layer: Control Plane 5-79 Traceroute and ICMP § source sends series of UDP § when ICMP message segments to destination arrives, source records first set has TTL =1 RTTs second set has TTL=2, etc. unlikely port number stopping criteria: § UDP segment eventually § when datagram in nth set arrives at destination host arrives to nth router: § destination returns ICMP router discards datagram and sends source ICMP message “port unreachable” (type 11, code 0) message (type 3, code 3) ICMP message include name § source stops of router & IP address 3 probes 3 probes 3 probes Network Layer: Control Plane 5-80 Network layer: “control plane” roadmap § introduction § routing protocols § intra-ISP routing: OSPF § routing among ISPs: BGP § SDN control plane § Internet Control Message Protocol (ICMP) § network management, configuration SNMP NETCONF/YANG (NOT COVERED) Network Layer: 5-81 What is network management? § autonomous systems (aka “network”): 1000s of interacting hardware/software components § other complex systems requiring monitoring, configuration, control: jet airplane, nuclear power plant, others? "Network management includes the deployment, integration and coordination of the hardware, software, and human elements to monitor, test, poll, configure, analyze, evaluate, and control the network and element resources to meet the real-time, operational performance, and Quality of Service requirements at a reasonable cost." Network Layer: 5-82 Components of network management Managed device: - equipment with manageable, configurable Managing agent data hardware, software entity/server: managing components application, typically entity/server/controller - managed devices contain with network data managed device managed objects whose data managers (humans) in is gathered into a the loop agent data Management Information Network agent data Base (MIB) management managed device protocol: used by managed device Data: device “state” managing server to query, configuration data, agent data configure, manage device; operational data, used by devices to inform agent data managing server of data, device statistics managed device events. managed device Network Layer: 5-83 Network operator approaches to management CLI (Command Line Interface) operator issues (types, scripts) direct to agent data individual devices (e.g., vis ssh) managing entity/server/controller SNMP/MIB data managed device operator queries/sets devices data (MIB) using Simple Network agent data Management Protocol (SNMP) agent data managed device NETCONF/YANG managed device more abstract, network-wide, holistic emphasis on multi-device configuration agent data management. agent data YANG: data modeling language managed device NETCONF: communicate YANG-compatible managed device actions/data to/from/among remote devices Network Layer: 5-85 SNMP protocol Two ways to convey MIB info, commands: managing data managing data entity/server/co entity/server/co ntroller ntroller request response trap message agent data agent data managed device managed device request/response mode trap mode Network Layer: 5-86 SNMP Protocol (Message Types) Table: SNMPv3 PDU types Message Sender-Receiver Function 1 GetRequest “Get me data” 2 GetNextRequest Manager-to-Agent (data instance, next data 3 GetBulkRequest in list, block of data) 4 InformRequest Manager-to-Manager Hereʼs MIB value 5 SetRequest Manager-to-Agent Set MIB value Agent-to-Manager Value, response to 6 Response Manager-to-Manager Request. 7 SNMPv2-Trap Agent-to-Manager Inform manager of exceptional event Protocol Data Unit (PDU) Network Layer: 5-87 Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 429) SNMP Protocol (Message Formats) message types 0-3 message type 4 Figure: SNMP PDU format Protocol Data Unit (PDU) Network Layer: 5-88 Kurose, J.F. and Ross, K.W. (2021). Computer Networking: A Top-Down Approach (8th Edition). Pearson Education Limited, England. (pp. 430) SNMP: Management Information Base (MIB) § managed device’s operational (and some configuration) data agent data § gathered into device MIB module 400 MIB modules defined in RFC’s; many more vendor-specific MIBs § Structure of Management Information (SMI): data definition language § example MIB variables for UDP protocol: Object ID Name Type Comments 1.3.6.1.2.1.7.1 UDPInDatagrams 32-bit counter total # datagrams delivered 1.3.6.1.2.1.7.2 UDPNoPorts 32-bit counter # undeliverable datagrams (no application at port) 1.3.6.1.2.1.7.3 UDInErrors 32-bit counter # undeliverable datagrams (all other reasons) 1.3.6.1.2.1.7.4 UDPOutDatagrams 32-bit counter total # datagrams sent 1.3.6.1.2.1.7.5 udpTable SEQUENCE one entry for each port currently in use Network Layer: 5-89