* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download CS244a: An Introduction to Computer Networks
Backpressure routing wikipedia , lookup
Deep packet inspection wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Distributed firewall wikipedia , lookup
Internet protocol suite wikipedia , lookup
Network tap wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Computer network wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
List of wireless community networks by region wikipedia , lookup
Airborne Networking wikipedia , lookup
Peer-to-peer wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Routing: Network Layer Part II • Routing Algorithms: – • Routing in the Internet – – – • Link state vs. Distance Vector Intra-AS vs. Inter-AS routing Intra-AS: RIP and OSPF Inter-AS: BGP and Policy Routing MPLS Readings: Textbook: Chapter 4: Sections 4.2-4.3, 4.5-4.6 Csci 232 – Computer Networks Routing and Network Layer Part II 1 Routing & Forwarding: Logical View of a Router 5 A 2 1 B 2 D 3 3 1 C 5 1 E F 2 Csci 232 – Computer Networks Routing and Network Layer Part II 2 IP Forwarding Process 1. Remove a packet from an input queue 2. Check for sanity, decrement TTL field 4. Place packet on correct output queue Forwarding Process 3. Match packet’s destination to a table entry If queues get full, just drop packets! If queues get full, just drop packets! IP Forwarding Table Router Csci 232 – Computer Networks 3 IP Forwarding Table Destination Net A Net B Net C, Host 3 Net C A destination is usually a network. May also be a host, or a “gateway of last resort” (default) Csci 232 – Computer Networks Next Hop Router 1 Direct Router 2 Router 1 The next hop is either a directly connected network or a router on a directly connected network Interface INT 7 INT 4 INT 3 INT 7 A physical interface 4 How Are Forwarding Tables Populated to Implement Routing? Dynamically Statically Administrator manually configures forwarding table entries + More control + Not restricted to destination-based forwarding - Doesn’t scale - Slow to adapt to network failures Routers exchange network reachability information using ROUTING PROTOCOLS. Routers use this to compute best routes + Can rapidly adapt to changes in network topology + Can be made to scale well - Complex distributed algorithms - Consume CPU, Bandwidth, Memory - Debugging can be difficult - Current protocols are destination-based In practice : a mix of these. Static routing mostly at the “edge” Csci 232 – Computer Networks 5 Dynamic Routing: Intra- vs. Inter-AS OSPF BGP AS 1 IGP = Interior Gateway Protocol Metric based: OSPF, IS-IS, RIP, EIGRP (cisco) EGP = Exterior Gateway Protocol EIGRP AS 2 Policy based: BGP The Routing Domain of BGP is the entire Internet Csci 232 – Computer Networks Routing and Network Layer Part II 6 Internet AS Hierarchy border (exterior gateway) routers interior routers Csci 232 – Computer Networks Routing and Network Layer Part II 7 Intra-AS vs. Inter-AS Routing C.b a Host h1 C A.a b Inter-AS routing between A and B A.c a d c b A Intra-AS routing within AS A Csci 232 – Computer Networks B.a a c B Host h2 b Intra-AS routing within AS B Routing and Network Layer Part II 8 Intra-AS and Inter-AS Routing C.b a C A.a b A.c d A a b “Gateways”: B.a a c B b c •perform interAS routing amongst themselves •perform intraAS routing with other routers in their AS network layer inter-AS, intra-AS routing in gateway A.c Csci 232 – Computer Networks link layer physical layer Routing and Network Layer Part II 9 Where Does Forwarding Table Come From? BGP RIP Process BGP Process RIP Routing tables BGP Routing tables OSPF Process OSPF Routing tables RIP Domain OSPF Domain Forwarding Table Manager Forwarding Table Csci 232 – Computer Networks 10 Routing • Goal: determine a “good” path through the network from source to destination – Good means usually the shortest path • Network modeled as a graph 5 – Routers nodes – Link edges • Edge cost: delay, congestion level,… 2 A B 2 1 D Csci 232 – Computer Networks Routing and Network Layer Part II 3 C 3 1 5 F 1 E 2 11 Basic Routing Problem • Assume – A network with N nodes, where each edge is associated a cost – A node knows only its neighbors and the cost to reach them • How does each node learn how to reach every other node along the shortest path? A 5 2 B 2 1 D Csci 232 – Computer Networks Routing and Network Layer Part II 3 C 3 1 5 F 1 2 E 12 Routing: Issues • How are routing tables determined? • Who determines table entries? • What info is used in determining table entries? • When do routing table entries change? • Where is routing info stored? • How to control routing table size? Answer these questions, we are done! Csci 232 – Computer Networks Routing and Network Layer Part II 13 Routing Paradigms • Hop-by-hop Routing – Each packet contains destination address – Each router chooses next-hop to destination • routing decision made at each (intermediate) hop! • packets to same destination may take different paths! – Example: IP’s default datagram routing • Source Routing – Sender selects the path to destination precisely – Routers forward packet to next-hop as specified • Problem: if specified path no longer valid due to link failure! – Example: • IP’s loose/strict source route option • virtual circuit setup phase in ATM (or MPLS) Csci 232 – Computer Networks Routing and Network Layer Part II 14 Routing Algorithms/Protocols Issues Need to Be Addressed: • Route selection may depend on different criteria – Performance: choose route with the smallest delay – Policy: choose a route that doesn’t cross .gov network • Adapt to changes in network topology or condition – Self-healing: little or no human intervention • Scalability – Must be able to support a large number of hosts, routers Csci 232 – Computer Networks Routing and Network Layer Part II 15 Centralized vs. Distributed Routing Algorithms Centralized: • A centralized route server collects routing information and network topology, makes route selection decisions, then distributes them to routers Distributed: • Routers cooperate using a distributed protocol – to create mutually consistent routing tables • Two standard distributed routing algorithms – Link State (LS) routing – Distance Vector (DV) routing Csci 232 – Computer Networks Routing and Network Layer Part II 16 Link State vs Distance Vector • Both assume that – The address of each neighbor is known – The cost of reaching each neighbor is known • Both find global information – By exchanging routing info among neighbors • Differ in the information exchanged and route computation – LS: tells every other node its distances to neighbors – DV: tells neighbors its distance to every other node Csci 232 – Computer Networks Routing and Network Layer Part II 17 Link State Algorithm • Basic idea: Distribute link state packet to all routers – Topology of the network • Cost of each link in the network • Each router independently computes optimal paths – From itself to every destination – Routes are guaranteed to be loop free if • Each router sees the same cost for each link • Uses the same algorithm to compute the best path Csci 232 – Computer Networks Routing and Network Layer Part II 18 Link State: Control Traffic • Each node floods its local information to every other node in the network • Each node ends up knowing the entire network topology use Dijkstra to compute the shortest path to every other node Host C Host D Host A N1 N2 N3 N5 Host B Host E N4 N6 Csci 232 – Computer Networks Routing and Network Layer Part II N7 19 Link State: Node State C C A Host C D A C A D D Host D Host A B B E B N2 N1 E E C A D N3 C A D B E N5 B Host B C A C E A D B N4 N6 Csci 232 – Computer Networks D B E Routing and Network Layer Part II Host EE N7 20 Topology Dissemination • Each router creates a set of link state packets (LSPs) – Describing its links to neighbors – LSP contains • Router id, neighbor’s id, and cost to its neighbor • Copies of LSPs are distributed to all routers – Using controlled flooding • Each router maintains a topology database – Database containing all LSPs Csci 232 – Computer Networks Routing and Network Layer Part II 21 Topology Database: Example 5 2 A B 3 2 1 D C F 1 3 1 5 E 2 link state database Csci 232 – Computer Networks Routing and Network Layer Part II 22 Constructing Routing Table: Dijkstra’s Algorithm • Given the network topology – How to compute the shortest path to each destination? • Some notation – X: source node – N: set of nodes to which shortest paths are known so far • N is initially empty – D(V): the cost of the known shortest path from source X to V – C(U,V): cost of link U to V • C(U,V) = if not neighbors Csci 232 – Computer Networks Routing and Network Layer Part II 23 Algorithm (at Node X) • Initialization – N = {X} – For all nodes V • If V adjacent to X, D(V) = C(X,V) else D(V) = • Loop – Find U not in N such that D(U) is the smallest – Add U into set N – Update D(V) for all V not in N • D(V) = min{D(V), D(U) + C(U,V)} – Until all nodes in N Csci 232 – Computer Networks Routing and Network Layer Part II 24 Example: Dijkstra’s Algorithm Step 0 1 2 3 4 5 start N A D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A 5 2 A B 2 1 D 3 C 3 1 Csci 232 – Computer Networks 5 F 1 E 2 1 Initialization: 2 N = {A}; 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v); 6 else D(v) = ; … Routing and Network Layer Part II 25 Example: Dijkstra’s Algorithm Step 0 1 2 3 4 5 D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A 4,D 2,D start N A AD 5 2 A B 2 1 D 3 C 3 1 5 F 1 E Csci 232 – Computer Networks 2 … 8 Loop 9 find w not in N s.t. 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) + c(w,v) ); 13 until all nodes in N; Routing and Network Layer Part II 26 Example: Dijkstra’s Algorithm Step 0 1 2 3 4 5 D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A 4,D 2,D 3,E 4,E start N A AD ADE 5 2 A B 2 1 D 3 C 3 1 5 F 1 E Csci 232 – Computer Networks 2 … 8 Loop 9 find w not in N s.t. 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) + c(w,v) ); 13 until all nodes in N; Routing and Network Layer Part II 27 Example: Dijkstra’s Algorithm Step 0 1 2 3 4 5 D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A 4,D 2,D 3,E 4,E start N A AD ADE ADEB 5 2 A B 2 1 D 3 C 3 1 5 F 1 E Csci 232 – Computer Networks 2 … 8 Loop 9 find w not in N s.t. 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) + c(w,v) ); 13 until all nodes in N; Routing and Network Layer Part II 28 Example: Dijkstra’s Algorithm Step 0 1 2 3 4 5 D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A 4,D 2,D 3,E 4,E start N A AD ADE ADEB ADEBC 5 2 A B 2 1 D 3 C 3 1 5 F 1 E Csci 232 – Computer Networks 2 … 8 Loop 9 find w not in N s.t. 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) + c(w,v) ); 13 until all nodes in N; Routing and Network Layer Part II 29 Example: Dijkstra’s Algorithm Step 0 1 2 3 4 5 D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A 4,D 2,D 3,E 4,E start N A AD ADE ADEB ADEBC ADEBCF 5 2 A B 2 1 D 3 C 3 1 5 F 1 E Csci 232 – Computer Networks 2 … 8 Loop 9 find w not in N s.t. 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) + c(w,v) ); 13 until all nodes in N; Routing and Network Layer Part II 30 Dijkstra’s Algorithm: In a Nutshell Step 0 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 2,A 1,A 5,A infinity infinity 2,A 4,D 2,D infinity 2,A 3,E 4,E 3,E 4,E 4,E 5 2 A 2 1 Csci 232 – Computer Networks B D 3 C 3 1 5 F 1 E 2 Routing and Network Layer Part II 31 Routing Table Computation 5 2 dest next B C D E F B D D D D A 3 B 2 1 Csci 232 – Computer Networks D C F 1 3 1 5 E Routing and Network Layer Part II 2 32 Distance Vector Routing • A router tells neighbors its distance to every router – Communication between neighbors only • Based on Bellman-Ford algorithm – Computes “shortest paths” • Each router maintains a distance table – A row for each possible destination – A column for each neighbor • DX(Y,Z) : distance from X to Y via Z • Exchanges distance vector (the table) with neighbors – Distance vector: current least cost to each destination Csci 232 – Computer Networks Routing and Network Layer Part II 33 Distance Vector: Control Traffic • When the routing table of a node changes, the node sends its table to its neighbors • A node updates its table with information received from its neighbors Host C Host D Host A N1 N2 N3 N5 Host B Host E N4 N6 Csci 232 – Computer Networks Routing and Network Layer Part II N7 34 Distance Table: Example cost to destination via E 6 A B 1 C E A B D A 1 14 11 B 7 8 5 C 8 9 4 D 10 11 2 2 8 1 D () 2 Csci 232 – Computer Networks D Routing and Network Layer Part II 35 Distance Table to Routing Table cost to destination via E D () A B A 1 14 5 B 7 8 5 C 6 9 4 D 4 11 D 2 Distance table Csci 232 – Computer Networks Outgoing link to use, cost A A,1 B D,5 C D,4 D D,2 Routing table Routing and Network Layer Part II 36 Distance Vector Routing Algorithm iterative: Distance Table data structure • continues until no nodes exchange info. • self-terminating: no “signal” to stop • • • asynchronous: • nodes need not exchange info/iterate in lock step! distributed: • each node talks only with directly-attached neighbors Csci 232 – Computer Networks • each node has its own row for each possible destination column for each directly-attached neighbor to node example: in node X, for dest. Y via neighbor Z: X D (Y,Z) distance from X to = Y, via Z as next hop Z = c(X,Z) + minw {D (Y,w)} Routing and Network Layer Part II 37 Distance Vector Routing: Overview Iterative, asynchronous: each iteration caused by: • local link cost change • message from neighbor: its least cost path change from neighbor Distributed: • each node notifies neighbors only when its least cost path to any destination changes – neighbors then notify their neighbors if necessary Csci 232 – Computer Networks Each node: wait for (change in local link cost or msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors Routing and Network Layer Part II 38 Distance Vector Algorithm: Example X 2 Y 7 1 Z Z X D (Y,Z) = c(X,Z) + minw {D (Y,w)} = 7+1 = 8 Y X D (Z,Y) = c(X,Y) + minw {D (Z,w)} = 2+1 = 3 Csci 232 – Computer Networks Routing and Network Layer Part II 39 Distance Vector Algorithm: Example X 2 Y 7 1 Z Csci 232 – Computer Networks Routing and Network Layer Part II 40 Convergence of DV Routing • router detects local link cost change • updates distance table • if cost change in least cost path, notify neighbors 1 X 4 Y 50 1 Z algorithm terminates “good news travels fast” Csci 232 – Computer Networks Routing and Network Layer Part II 41 Problems with DV Routing Link cost changes: • good news travels fast • bad news travels slow – “count to infinity” problem! 60 X 4 Y 50 1 Z algorithm continues on! Csci 232 – Computer Networks Routing and Network Layer Part II 42 Count-to-Infinity Problem 1 X 1 Y Z 2 Csci 232 – Computer Networks Routing and Network Layer Part II 43 “Fixes” to Count-to-Infinity Problem • Split horizon – A router never advertises the cost of a destination to a neighbor • If this neighbor is the next hop to that destination • Split horizon with poisonous reverse – If X routes traffic to Z via Y, then • X tells Y that its distance to Z is infinity – Instead of not telling anything at all – Accelerates convergence Csci 232 – Computer Networks Routing and Network Layer Part II 44 Split Horizon with Poisoned Reverse If Z routes through Y to get to X : • Z tells Y its (Z’s) distance to X is infinite (so Y won’t route to X via Z) 60 X 4 Y 50 1 Z algorithm terminates Csci 232 – Computer Networks Routing and Network Layer Part II 45 Count-to-Infinity Problem Revisited X Y Z W Csci 232 – Computer Networks Routing and Network Layer Part II 46 Link State vs Distance Vector • Tells everyone about neighbors • Controlled flooding to exchange link state • Dijkstra’s algorithm • Each router computes its own table • May have oscillations • Open Shortest Path First (OSPF) Csci 232 – Computer Networks • Tells neighbors about everyone • Exchanges distance vectors with neighbors • Bellman-Ford algorithm • Each router’s table is used by others • May have routing loops • Routing Information Protocol (RIP) Routing and Network Layer Part II 47 Link State vs. Distance Vector (cont’d) Message complexity • LS: O(n2*e) messages Robustness: what happens if router malfunctions? • LS: – n: number of nodes – e: number of edges • DV: O(d*n*k) messages – d: node’s degree – k: number of rounds Time complexity • LS: O(n*log n) • DV: O(n) Convergence time • LS: O(1) • DV: O(k) Csci 232 – Computer Networks – node can advertise incorrect link cost – each node computes only its own table • DV: – node can advertise incorrect path cost – each node’s table used by others; error propagate through network Routing and Network Layer Part II 48 Routing in the Real World Our routing study thus far - idealization • all routers identical • network “flat” How to do routing in the Internet • scalability and policy issues scale: with 200 million destinations: • can’t store all dest’s in routing tables! • routing table exchange would swamp links! Csci 232 – Computer Networks administrative autonomy • internet = network of networks • each network admin may want to control routing in its own network Routing and Network Layer Part II 49 Routing in the Internet • The Global Internet consists of Autonomous Systems (AS) interconnected with each other hierarchically: – Stub AS: small corporation: one connection to other AS’s – Multihomed AS: large corporation (no transit): multiple connections to other AS’s – Transit AS: provider, hooking many AS’s together • Two-level routing: – Intra-AS: administrator responsible for choice of routing algorithm within network – Inter-AS: unique standard for inter-AS routing: BGP Csci 232 – Computer Networks Routing and Network Layer Part II 50 Internet Architecture Internet: “networks of networks”! NAP Internic International lines regional network national network ISP company on-line services ISP university company access via modem LANs Csci 232 – Computer Networks Routing and Network Layer Part II 51 Internet AS Hierarchy Inter-AS border (exterior gateway) routers Intra-AS interior (gateway) routers Csci 232 – Computer Networks Routing and Network Layer Part II 52 Intra-AS vs. Inter-AS Routing C.b a Host h1 C A.a b Inter-AS routing between A and B A.c a d c b A Intra-AS routing within AS A Csci 232 – Computer Networks B.a a c B Host h2 b Intra-AS routing within AS B Routing and Network Layer Part II 53 Why Different Intra- and 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, update traffic Performance: • Intra-AS: can focus on performance • Inter-AS: policy may dominate over performance Csci 232 – Computer Networks Routing and Network Layer Part II 54 Intra-AS and Inter-AS Routing C.b a C A.a b A.c d A a b “Gateways”: B.a a c B b c •perform interAS routing amongst themselves •perform intraAS routers with other routers in their AS network layer inter-AS, intra-AS routing in gateway A.c Csci 232 – Computer Networks link layer physical layer Routing and Network Layer Part II 55 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: Intermediate System to Intermediate System (OSI Standard) – EIGRP: Extended Interior Gateway Routing Protocol (Cisco proprietary) Csci 232 – Computer Networks Routing and Network Layer Part II 56 RIP ( Routing Information Protocol) • Distance vector algorithm • Included in BSD-UNIX Distribution in 1982 • Distance metric: # of hops (max = 15 hops) Number of hops from source router A to various subnets: u v A z C Csci 232 – Computer Networks B D w x y destination hops u 1 v 2 w 2 x 3 y 3 z 2 Routing and Network Layer Part II 57 RIP advertisements • Distance vectors: exchanged among neighbors every 30 sec via Response Message (also called advertisement) • Each advertisement: list of up to 25 destination nets within AS Csci 232 – Computer Networks Routing and Network Layer Part II 58 RIP: Example z w A x D y B C Destination Network w y z x …. Next Router Num. of hops to dest. …. .... A B B -- 2 2 7 1 Routing table in D Csci 232 – Computer Networks Routing and Network Layer Part II 59 RIP: Example Dest w x z …. Next C … w hops 4 ... A Advertisement from A to D z x Destination Network w y z x …. Csci 232 – Computer Networks D y B C Next Router Num. of hops to dest. …. .... A B B A -- Routing and Network Layer Part II Routing table in D 2 2 7 5 1 60 RIP: Link Failure and Recovery If no advertisement heard after 180 sec --> neighbor/link declared dead – routes via neighbor invalidated – new advertisements sent to neighbors – neighbors in turn send out new advertisements (if tables changed) – link failure info quickly propagates to entire net – poison reverse used to prevent ping-pong loops (infinite distance = 16 hops) Csci 232 – Computer Networks Routing and Network Layer Part II 61 RIP Table processing • RIP routing tables managed by application-level process called route-d (daemon) • advertisements sent in UDP packets, periodically repeated routed routed Transprt (UDP) network (IP) Transprt (UDP) forwarding table forwarding table link link physical Csci 232 – Computer Networks network (IP) physical Routing and Network Layer Part II 62 OSPF (Open Shortest Path First) • “open”: publicly available • Uses Link State algorithm – LS packet dissemination – Topology map at each node – Route computation using Dijkstra’s algorithm • OSPF advertisement carries one entry per neighbor router • Advertisements disseminated to entire AS (via flooding) – Carried in OSPF messages directly over IP (rather than TCP or UDP Csci 232 – Computer Networks Routing and Network Layer Part II 63 OSPF “advanced” features (not in RIP) • 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; high for real time) • Integrated uni- and multicast support: – Multicast OSPF (MOSPF) uses same topology data base as OSPF • Hierarchical OSPF in large domains. Csci 232 – Computer Networks Routing and Network Layer Part II 64 Hierarchical OSPF Csci 232 – Computer Networks Routing and Network Layer Part II 65 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. – Communications between areas via backbone • 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’s. Csci 232 – Computer Networks Routing and Network Layer Part II 66 Inter-AS Routing in the Internet: BGP R4 R5 R3 BGP AS1 AS2 (RIP intra-AS routing) (OSPF intra-AS routing) BGP R1 R2 AS3 (OSPF intra-AS routing) Figure 4.5.2-new2: BGP use for inter-domain routing Csci 232 – Computer Networks Routing and Network Layer Part II 67 Internet inter-AS routing: BGP • BGP (Border Gateway Protocol): the de facto standard • BGP provides each AS a means to: 1. Obtain subnet reachability information from neighboring ASs. 2. Propagate the reachability information to all routers internal to the AS. 3. Determine “good” routes to subnets based on reachability information and policy. • Allows a subnet to advertise its existence to rest of the Internet: “I am here” Csci 232 – Computer Networks Routing and Network Layer Part II 68 BGP basics • Pairs of routers (BGP peers) exchange routing info over semipermanent TCP conctns: BGP sessions • Note that BGP sessions do not correspond to physical links. • When AS2 advertises a prefix to AS1, AS2 is promising it will forward any datagrams destined to that prefix towards the prefix. – AS2 can aggregate prefixes in its advertisement 3c 3a 3b AS3 1a AS1 2a 1c 1d 1b 2c AS2 2b eBGP session Csci 232 – Computer Networks Routing and Network Layer Part II iBGP session 69 Distributing reachability info • With eBGP session between 3a and 1c, AS3 sends prefix reachability info to AS1. • 1c can then use iBGP to distribute this new prefix reach info to all routers in AS1 • 1b can then re-advertise the new reach info to AS2 over the 1b-to-2a eBGP session • When router learns about a new prefix, it creates an entry for the prefix in its forwarding table. 3c 3a 3b AS3 1a AS1 2a 1c 1d 1b 2c AS2 2b eBGP session Csci 232 – Computer Networks Routing and Network Layer Part IIiBGP session 70 Path attributes & BGP routes • When advertising a prefix, advert includes BGP attributes. – prefix + attributes = “route” • Two important attributes: – AS-PATH: contains the ASs through which the advert for the prefix passed: AS 67 AS 17 – NEXT-HOP: Indicates the specific internal-AS router to nexthop AS. (There may be multiple links from current AS to nexthop-AS.) • When gateway router receives route advert, uses import policy to accept/decline. Csci 232 – Computer Networks Routing and Network Layer Part II 71 BGP route selection • • Router may learn about more than 1 route to some prefix. Router must select route. Elimination rules: 1. 2. 3. 4. Local preference value attribute: policy decision Shortest AS-PATH Closest NEXT-HOP router: hot potato routing Additional criteria Csci 232 – Computer Networks Routing and Network Layer Part II 72 BGP messages • BGP messages exchanged using TCP. • BGP messages: – OPEN: opens TCP connection to peer and authenticates sender – 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 Csci 232 – Computer Networks Routing and Network Layer Part II 73 BGP routing policy legend: B W provider network X A customer network: C Y Figure 4.5-BGPnew: a simple BGP scenario • A,B,C are provider networks • X,W,Y are customer (of provider networks) • X is dual-homed: attached to two networks – X does not want to route from B via X to C – .. so X will not advertise to B a route to C Csci 232 – Computer Networks Routing and Network Layer Part II 74 BGP routing policy (2) legend: B W provider network X A customer network: C Y • A advertises to B the path AW • B advertises to X the path BAW • Should B advertise to C the path BAW? Figure 4.5-BGPnew: a simple BGP scenario – No way! B gets no “revenue” for routing CBAW since neither W nor C are B’s customers – B wants to force C to route to w via A – B wants to route only to/from its customers! Csci 232 – Computer Networks Routing and Network Layer Part II 75 Why different Intra- and 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 Csci 232 – Computer Networks Routing and Network Layer Part II 76 Multi-Protocol Label Switching (MPLS) • initial goal: speed up IP forwarding by using fixed length label (instead of IP address) to do forwarding – borrowing ideas from Virtual Circuit (VC) approach – but IP datagram still keeps IP address! PPP or Ethernet header MPLS header label 20 Csci 232 – Computer Networks IP header remainder of link-layer frame Exp S TTL 3 1 5 Routing and Network Layer Part II 77 MPLS Capable Routers • a.k.a. label-switched router • forwards packets to outgoing interface based only on label value (don’t inspect IP address) – MPLS forwarding table distinct from IP forwarding tables • signaling protocol needed to set up forwarding – RSVP-TE, LDP – forwarding possible along paths that IP alone would not allow (e.g., least cost path routing) !! – use MPLS for traffic engineering • must co-exist with IP-only routers Csci 232 – Computer Networks Routing and Network Layer Part II 78 MPLS Forwarding Tables in label out label dest out interface 10 12 A D 0 0 in label 8 A 1 10 12 out label dest 6 9 out interface A D 1 0 R6 0 R4 R5 1 R3 0 1 D 0 0 R2 in label 8 out label dest 6 Csci 232 – Computer Networks A out interface in label 6 outR1 label dest - A A out interface 0 0 Routing and Network Layer Part II 79 Why Mobile IP? • Need a protocol which allows network connectivity across host movement • Protocol to enable mobility must not require massive changes to router software, etc. • Must be compatible with large installed base of IPv4 networks/hosts • Confine changes to mobile hosts and a few support hosts which enable mobility Csci 232 – Computer Networks Routing and Network Layer Part II 80 Internet Protocol (IP) • Network layer, "best-effort" packet delivery • Supports UDP and TCP (transport layer protocols) • IP host addresses consist of two parts – network id + host id • By design, IP host address is tied to home network address – Hosts are assumed to be wired, immobile – Intermediate routers look only at network address – Mobility without a change in IP address results in un-route-able packets Csci 232 – Computer Networks Routing and Network Layer Part II 81 IP Routing Breaks Under Mobility .50 .52 .53 router 137.30.2.* .200 router 139.20.3.* Why this hierarchical approach? Answer: Scalability! Millions of network addresses, billions of hosts! Csci 232 – Computer Networks Routing and Network Layer Part II 82 Mobile IP: Basics • Proposed by IETF (Internet Engineering Task Force) – Standards development body for the Internet • Mobile IP allows a mobile host to move about without changing its permanent IP address • Each mobile host has a home agent on its home network • Mobile host establishes a care-of address when it's away from home Csci 232 – Computer Networks Routing and Network Layer Part II 83 Mobile IP: Basics, Cont. • Correspondent host is a host that wants to send packets to the mobile host • Correspondent host sends packets to the mobile host’s IP permanent address • These packets are routed to the mobile host’s home network • Home agent forwards IP packets for mobile host to current care-of address • Mobile host sends packets directly to correspondent, using permanent home IP as source IP Csci 232 – Computer Networks Routing and Network Layer Part II 84 Mobile IP: Basics, Cont. correspondent host Csci 232 – Computer Networks home agent Routing and Network Layer Part II 85 Mobile IP: Care-of Addresses • Whenever a mobile host connects to a remote network, two choices: – care-of can be the address of a foreign agent on the remote network • foreign agent delivers packets forwarded from home agent to mobile host – care-of can be a temporary, foreign IP address obtained through, e.g., DHCP • home agent tunnels packets directly to the temporary IP address • Regardless, care-of address must be registered with home agent Csci 232 – Computer Networks Routing and Network Layer Part II 86 IP-in-IP Tunneling • Packet to be forwarded is encapsulated in a new IP packet • In the new header: – Destination = care-of-address – Source = address of home agent – Protocol number = IP-in-IP IP header data Csci 232 – Computer Networks IP header IP header data Routing and Network Layer Part II 87 At the Other End... • Depending on type of care-of address: – Foreign agent or – Mobile host • … strips outer IP header of tunneled packet, which is then fed to the mobile host • Aside: Any thoughts on advantages of foreign agent vs. co-located (foreign IP) address? Csci 232 – Computer Networks Routing and Network Layer Part II 88 Routing Inefficiency Mobile host and correspondent host might even be on the same network!! correspondent host Csci 232 – Computer Networks home agent Routing and Network Layer Part II 89 Route Optimizations • Possible Solution: – Home agent sends current care-of address to correspondent host – Correspondent host caches care-of address – Future packets tunneled directly to care-of address • But! – An instance of the cache consistency problem arises... – Cached care-of address becomes stale when the mobile host moves – Potential security issues with providing care-of address to correspondent Csci 232 – Computer Networks Routing and Network Layer Part II 90 Possible Route Optimization Csci 232 – Computer Networks Routing and Network Layer Part II 91 Network Layer Part II Summary • Network Layer Routing – Basic Issues – Distributed Routing Algorithms: LS vs. DV – Link State (LS): How does it work? – Distance Vector (DV): How does it work? Issues? – Mobile IP: how does it work? Issues? – MPLS • Routing in the Internet – Intra-AS vs. Inter-AS routing – Intra-AS: RIP and OSPF – Inter-AS: BGP and Policy Routing • Things we didn’t cover: VPN, IP Multicast, IPv6 (but please read by yourself!) Csci 232 – Computer Networks Routing and Network Layer Part II 92