Lecture 9 – Chapter 5 Network Control Plane CIS 5617, Fall 2022 Anduo
43 Slides2.29 MB
Lecture 9 – Chapter 5 Network Control Plane CIS 5617, Fall 2022 Anduo Wang Based on Slides created by JFK/KWR 7th edition Jim Kurose, Keith Ross Pearson/Addison Wesley April 2016 1-1
Chapter 5: outline 5.5 The 5.1 introduction SDN control plane 5.2 routing protocols link state distance vector 5.3 intra-AS routing in the Internet: OSPF 5.4 routing among the ISPs: BGP Network Layer: Control 5-2 Plane
Making routing scalable our routing study thus far idealized all routers identical network “flat” not true in practice scale: with billions administrative of destinations: autonomy can’t store all destinations in routing tables! routing table exchange would swamp links! internet network of networks each network admin may want to control routing in its own network Network Layer: Control 5-3 Plane
Internet approach to scalable routing aggregate routers into regions known as “autonomous systems” (AS) (a.k.a. “domains”) intra-AS routing inter-AS routing routing among hosts, routers in same AS (“network”) all routers in AS must run same intra-domain protocol routers in different AS can run different intradomain routing protocol gateway router: at “edge” of its own AS, routing among AS’es gateways perform inter-domain routing (as well as intradomain routing) Network Layer: Control 5-4 Plane
Interconnected ASes 3c 3a 3b AS3 2a 1c 1a 1d 2c AS2 1b AS1 Intra-AS Routing algorithm Inter-AS Routing algorithm Forwarding table 2b forwarding table configured by both intra- and inter-AS routing algorithm intra-AS routing determine entries for destinations within AS inter-AS & intra-AS determine entries for external Network Layer: Control 5-5 Plane
Inter-AS tasks suppose router in AS1 receives datagram destined outside of AS1: router should forward packet to gateway router, but which one? AS1 must: 1. learn which dests are reachable through AS2, which through AS3 2. propagate this reachability info to all routers in AS1 job of inter-AS routing! 3c 3b other networks 3a AS3 1c 1a AS1 1d 2a 1b 2c 2b other networks AS2 Network Layer: Control 5-6 Plane
Intra-AS Routing also known as interior gateway protocols (IGP) most common intra-AS routing protocols: RIP: Routing Information Protocol OSPF: Open Shortest Path First (IS-IS protocol essentially same as OSPF) IGRP: Interior Gateway Routing Protocol (Cisco proprietary for decades, until 2016) Network Layer: Control 5-7 Plane
OSPF (Open Shortest Path First) “open”: publicly available uses link-state algorithm link state packet dissemination topology map at each node route computation using Dijkstra’s algorithm router floods OSPF link-state advertisements to all other routers in entire AS carried in OSPF messages directly over IP (rather than TCP or UDP link state: for each attached link IS-IS routing protocol: nearly identical to OSPF Network Layer: Control 5-8 Plane
OSPF “advanced” features security: all OSPF messages authenticated (to prevent malicious intrusion) multiple same-cost paths allowed (only one path in RIP) for each link, multiple cost metrics for different TOS (e.g., satellite link cost set low for best effort ToS; high for real-time ToS) integrated uni- and multi-cast support: Multicast OSPF (MOSPF) uses same topology data base as OSPF hierarchical OSPF in large domains. Network Layer: Control 5-9 Plane
Hierarchical OSPF boundary router backbone router backbone area border routers area 3 internal routers area 1 area 2 Network Layer: Control 5-10 Plane
Hierarchical OSPF two-level hierarchy: local area, backbone. link-state advertisements only in area each nodes has detailed area topology; only know direction (shortest path) to nets in other areas. area border routers: “summarize” distances to nets in own area, advertise to other Area Border routers. backbone routers: run OSPF routing limited to backbone. boundary routers: connect to other AS’es. Network Layer: Control 5-11 Plane
Chapter 5: outline 5.5 The 5.1 introduction SDN control plane 5.2 routing protocols link state distance vector 5.3 intra-AS routing in the Internet: OSPF 5.4 routing among the ISPs: BGP Network Layer: Control 5-12 Plane
Chapter 5: outline 5.5 The 5.1 introduction SDN control plane 5.2 routing protocols link state distance vector 5.3 intra-AS routing in the Internet: OSPF 5.4 routing among the ISPs: BGP Network Layer: Control 5-13 Plane
Internet inter-AS routing: BGP BGP (Border Gateway Protocol): the de facto inter-domain routing protocol “glue that holds the Internet together” 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 allows subnet to advertise its existence to rest of Internet: “I am here” Network Layer: Control 5-14 Plane
eBGP, iBGP connections 2b 2a 1b 1a 1c 2d AS 2 1d AS 1 1c 2c eBGP connectivity iBGP connectivity 3b 3a 3c 3d AS 3 gateway routers run both eBGP and iBGP protools Network Layer: Control 5-15 Plane
BGP basics BGP session: two BGP routers (“peers”) exchange BGP messages over semi-permanent TCP connection: advertising paths to different destination network prefixes (BGP is arouter “path3a vector” protocol) when AS3 gateway advertises path AS3,X to AS2 gateway router 2c: AS3 promises to AS2 it will forward datagrams towards X AS 1 AS 3 1b 1a 3a 1c 1d 3b AS 2 2b 2a 3d 2c 2d 3c X BGP advertisement: AS3, X Network Layer: Control 5-16 Plane
Path attributes and BGP routes advertised prefix includes BGP attributes prefix attributes “route” two important attributes: AS-PATH: list of ASes through which prefix advertisement has passed NEXT-HOP: indicates specific internal-AS router to next-hop AS Policy-based routing: gateway receiving route advertisement uses import policy to accept/decline path (e.g., never route through AS Y). AS policy also determines whether to advertise path to other other neighboring ASes Network Layer: Control 5-17 Plane
BGP path advertisement AS1 AS3 1b 1a 3a 1c AS2 1d AS2,AS3,X 3b 2b 2a AS3,X 3c 3d X 2c 2d AS2 router 2c receives path advertisement AS3,X (via eBGP) from AS3 router 3a Based on AS2 policy, AS2 router 2c accepts path AS3,X, propagates (via iBGP) to all AS2 routers Based on AS2 policy, AS2 router 2a advertises (via eBGP) path AS2, AS3, X to AS1 router 1c Network Layer: Control 5-18 Plane
BGP path advertisement AS1 1b 1a AS3,X 3b 3a 1c AS2 1d AS2,AS3,X AS3 2b 2a AS3,X 3c 3d X 2c 2d gateway router may learn about multiple paths to destination: AS1 gateway router 1c learns path AS2,AS3,X from 2a AS1 gateway router 1c learns path AS3,X from 3a Based on policy, AS1 gateway router 1c chooses path AS3,X, and advertises path within AS1 via iBGP Network Layer: Control 5-19 Plane
BGP messages BGP messages exchanged between peers over TCP connection BGP messages: OPEN: opens TCP connection to remote BGP peer and authenticates sending BGP peer UPDATE: advertises new path (or withdraws old) KEEPALIVE: keeps connection alive in absence of UPDATES; also ACKs OPEN request NOTIFICATION: reports errors in previous msg; also used to close connection Network Layer: Control 5-20 Plane
BGP, OSPF, forwarding table entries Q: how does router set forwarding table entry to distant prefix? AS1 1b 1 1a 2 AS3,X AS3,X 3b 3a 1c local link interfaces 2 1d 1 at 1a, 1d AS2,AS3,X AS3 AS2 2b 2a AS3,X 3c 3d X 2c physical link 2d dest interface X 1 recall: 1a, 1b, 1c learn about dest X via iBGP from 1c: “path to X goes through 1d: OSPF1c” intra-domain routing: to get to 1c, forward over outgoing local interface 1 Network Layer: Control 5-21 Plane
BGP, OSPF, forwarding table entries Q: how does router set forwarding table entry to distant prefix? AS1 AS3 1b 1 1a 3a 1c 2 3b AS2 1d 2b 2a 3c 3d X 2c 2d dest interface X 2 recall: 1a, 1b, 1c learn about dest X via iBGP from 1c: “path to X goes through 1d: OSPF1c” intra-domain routing: to get to 1c, forward over outgoing local 1 interface 1a: OSPF intra-domain routing: to get to 1c, forward over outgoing local interface 2 Network Layer: Control 5-22 Plane
BGP route selection router may learn about more than one route to destination AS, selects route based on: 1. local preference value attribute: policy decision 2. shortest AS-PATH 3. closest NEXT-HOP router: hot potato routing 4. additional criteria Network Layer: Control 5-23 Plane
Hot Potato Routing AS1 AS3 1b 1a 3a 1c AS2 1d AS1,AS3,X 3b 2a 2b 152 201 2d 263 112 3c 3d X AS3,X 2c OSPF link weights 2d learns (via iBGP) it can route to X via 2a or 2c hot potato routing: choose local gateway that has least intra-domain cost (e.g., 2d chooses 2a, even though more AS hops to X): don’t worry about inter-domain cost! Network Layer: Control 5-24 Plane
BGP: achieving policy via advertisements legend: B W provider network X A customer network: C Y Suppose an ISP only wants to route traffic to/from its customer networks (does not want to carry transit traffic between other ISPs) A advertises path Aw to B and to C B chooses not to advertise BAw to C: B gets no “revenue” for routing CBAw, since none of C, A, w are B’s customers C does not learn about CBAw path C will route CAw (not using B) to get to w Network Layer: Control 5-25 Plane
BGP: achieving policy via advertisements legend: B W provider network X A customer network: C Y Suppose an ISP only wants to route traffic to/from its customer networks (does not want to carry transit traffic between other ISPs) A,B,C are provider networks X,W,Y are customer (of provider networks) X is dual-homed: attached to two networks policy to enforce: X does not want to route from B to C via X . so X will not advertise to B a route to C Network Layer: Control Plane 5-26
Why different Intra-, Inter-AS routing ? policy: inter-AS: admin wants control over how its traffic routed, who routes through its net. intra-AS: single admin, so no policy decisions needed scale: hierarchical routing saves table size, reduced update traffic performance: intra-AS: can focus on performance inter-AS: policy may dominate over performance Network Layer: Control 5-27 Plane
Chapter 5: outline 5.5 The 5.1 introduction SDN control plane 5.2 routing protocols link state distance vector 5.3 intra-AS routing in the Internet: OSPF 5.4 routing among the ISPs: BGP Network Layer: Control 5-28 Plane
Software defined networking (SDN) Internet network layer: historically has been implemented via distributed, perrouter 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: Control 5-29 Plane
Recall: per-router control plane Individual routing algorithm components in each and every router interact with each other in control plane to compute forwarding tables Routing Algorithm control plane data plane Network Layer: Control 5-30 Plane
Recall: logically centralized control plane A distinct (typically remote) controller interacts with local control agents (CAs) in routers to compute forwarding tables Remote Controller control plane data plane CA CA CA CA CA Network Layer: Control 5-31 Plane
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 Network Layer: Control 5-32 Plane
Analogy: mainframe to PC evolution Specialized Application s Specialized Operating System Specialized Hardware Vertically integrated Closed, proprietary Slow innovation Small industry * Slide courtesy: N. McKeown * Ap Ap Ap Ap Ap Ap Ap Ap Ap Ap p p p p p p p p p p Ap Ap Ap Ap Ap Ap Ap Ap Ap Ap App Open Interface Windows (OS) or Linux or Mac OS Open Interface Microprocessor Horizontal Open interfaces Rapid innovation Huge industry Network Layer: Control 5-33
Traffic engineering: difficult traditional routing 5 2 v u 3 2 1 x w 3 1 5 1 y z 2 Q: what if network operator wants u-to-z traffic to flow along uvwz, x-to-z traffic to flow xwyz? A: need to define link weights so traffic routing algorithm computes routes accordingly (or need a new routing algorithm)! Link weights are only control “knobs”: wrong! Network Layer: Control 5-34
Traffic engineering: difficult 5 2 v u 3 2 1 x w 3 1 5 1 y z 2 Q: what if network operator wants to split u-to-z traffic along uvwz and uxyz (load balancing)? A: can’t do it (or need a new routing algorithm) Network Layer: Control 5-35 Plane
Traffic engineering: difficult Networking 401 5 2 3 v v 2 u 1 xx w w zz 1 3 1 5 yy 2 Q: what if w wants to route blue and red traffic differently? A: can’t do it (with destination based forwarding, and LS, DV routing) Network Layer: Control 5-36 Plane
Software defined networking (SDN) 4. programmable control applications routing access control 3. control plane functions external to dataplane switches load balance Remote Controller control plane data plane CA CA CA CA CA 2. control, data plane separation 1: generalized“ flowbased” forwarding (e.g., OpenFlow) Network Layer: Control 5-37 Plane
SDN perspective: data plane switches Data plane switches fast, simple, commodity switches implementing generalized data-plane forwarding (Section 4.4) in hardware switch flow table computed, installed by controller API for table-based switch control (e.g., OpenFlow) defines what is controllable and what is not protocol for communicating with controller (e.g., Network Layer: Control 5-38 OpenFlow) Plane network-control applications routing access control load balance northbound API control plane SDN Controller (network operating system) southbound API data plane SDN-controlled switches
SDN perspective: SDN controller SDN controller (network OS): maintain network state information interacts with network control applications “above” via northbound API interacts with network switches “below” via southbound API implemented as distributed system for performance, scalability, fault-tolerance, robustness Network Layer: Control 5-39 Plane network-control applications routing access control load balance northbound API control plane SDN Controller (network operating system) southbound API data plane SDN-controlled switches
SDN perspective: control applications network-control apps: “brains” of control: implement control functions using lowerlevel services, API provided by SND controller unbundled: can be provided by 3rd party: distinct from routing vendor, or SDN controller network-control applications routing access control load balance northbound API control plane SDN Controller (network operating system) southbound API data plane Network Layer: Control 5-40 Plane SDN-controlled switches
Components of SDN controller access control routing Interface layer to network control apps: abstractions API Network-wide state management layer: state of networks links, switches, services: a communication distributed layer: database communicate between SDN controller and controlled switches load balance Interface, abstractions for network control apps network graph RESTful API statistics intent flow tables Network-wide distributed, robust state management Link-state info host info OpenFlow switch info SDN controller SNMP Communication to/from controlled devices Network Layer: Control 5-41 Plane
OpenFlow protocol OpenFlow Controller operates between controller, switch TCP used to exchange messages optional encryption three classes of OpenFlow messages: controller-toswitch asynchronous (switch to Network Layer: Control 5-42 controller) Plane
Chapter 5: outline 5.5 The 5.1 introduction SDN control plane 5.2 routing protocols link state distance vector 5.3 intra-AS routing in the Internet: OSPF 5.4 routing among the ISPs: BGP Network Layer: Control 5-43 Plane