Announcements CS 5565 Network Architecture and Protocols Lecture 20 Godmar Back Project 2B due in 2 parts: Apr 29 and May 6 Extra Credit Opportunities: Expand simulator (and your implementation) to introduce multiple link failures and link resurrection Additional, requiring reading posted Andersen et al [SIGCOMM 08]: Accountable Internet Protocol (AIP) Casado et al [HotNets 08]: Rethinking Packet Forwarding Hardware 2 Project 2B Project 2B High-level View Suppose node 2 calls inbound RPC Outbound/ Inbound over TCP Simulated link in topology write_msg(/*port=*/2, data) Simulator Overview Simulator calls outbound to n3 read_msg(/*from*/2, /*port*/1, data) Sim 4 Project 2B: Under the hood Uses discrete event simulation Events are: packet received, timer expired, cost change, link failure Virtual time cost change on link connecting n2 and n3 n3 receives msg from n2 on port 1 Routing Algorithms timer on n2 expires, n2 calls write_msg(2,..) 5 1
Roadmap Done Discussed forwarding vs routing Discussed theory behind two major routing algorithms: Link-state routing Distance Vector routing Discuss theory behind hierarchical routing Discuss application in Internet IPv4 addressing Next Routing in the Internet Addressing in IP IP address interfaces, not hosts Sets of interfaces form subnets Subnets share common prefix Route to CIDR-ized subnet addresses a.b.c.d/x Within subnet, reach destination directly 223.1.2.1 223.1.9.1 223.1.1.1 223.1.2.6 223.1.9.2 223.1.8.1 223.1.2.2 223.1.1.2 223.1.1.3 223.1.7.1 223.1.8.2 223.1.3.1 223.1.1.4 223.1.7.2 223.1.3.27 223.1.3.2 7 8 Internet R1 191.23.25.197 PPP Link 1 191.23.25.196/30 191.23.25.198 191.23.25.1 191.23.25.193 R3 PPP Link 2 191.23.25.192/30 R2 191.23.25.194 191.23.25.129 Ethernet LAN 2 120 Machines Subnet address: 191.23.25.0/25 Default gateway: 191.23.25.1 Ethernet LAN 1 60 Machines Subnet address: 191.23.25.128/26 Default gateway: 191.23.25.129 9 Routing Tables in End Systems Typical: local subnets + default gateway ( firsthop router ) Example: route print on Windows XP 128.173.55.90 FastEthernet 192.82.175.230 802.11g wireless Active Routes: Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 128.173.48.1 128.173.55.90 20 0.0.0.0 0.0.0.0 198.82.174.1 198.82.175.230 25 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 128.173.48.0 255.255.248.0 128.173.55.90 128.173.55.90 20 198.82.174.0 255.255.254.0 198.82.175.230 198.82.175.230 25 Default Gateway: 128.173.48.1 10 ICMP: Internet Control Message Protocol Traceroute and ICMP used by hosts & routers to communicate -level information error reporting: unreachable host,, port, protocol echo request/reply (used by ping) -layer above IP: ICMP msgs carried in IP datagrams ICMP message: type, code plus first 8 bytes of IP datagram causing error Type Code description 0 0 echo reply (ping) 3 0 dest. unreachable 3 1 dest host unreachable 3 2 dest protocol unreachable 3 3 dest port unreachable 3 6 dest unknown 3 7 dest host unknown 4 0 source quench (congestion control - not used) 8 0 echo request (ping) 9 0 route advertisement 10 0 router discovery 11 0 TTL expired 12 0 bad IP header Source sends series of UDP segments to dest First has TTL =1 Second has TTL=2, etc. Unlikely port number When nth datagram arrives to nth router: Router discards datagram And sends to source an ICMP message (type 11, code 0) Message includes name of router& IP address When ICMP message arrives, source calculates RTT Traceroute does this 3 times Stopping criterion UDP segment eventually arrives at destination host Destination returns ICMP port unreachable packet (type 3, code 3) When source gets this ICMP, stops. See also [Heideman 2008] 11 12 2
IP addresses: how to get one? Host gets IP address either hardcoded or via DHCP (Dynamic Host Configuration Protocol) Network gets subnet part of IP address allocated from ISP s address space ISP gets address space assigned by ICANN (Internet Corporation for Assigned Names and Numbers) ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20 Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23....... Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23 13 Organization 0 200.23.16.0/23 Organization 1 200.23.18.0/23 Organization 2 200.23.20.0/23 Organization 7. 200.23.30.0/23 Hierarchical Addressing: Route Aggregation Hierarchical addressing allows efficient advertisement of routing information:. Fly-By-Night-ISP ISPs-R-Us beginning 200.23.16.0/20 beginning 199.31.0.0/16 Internet 14 Hierarchical Addressing: More Specific Routes ISPs-R-Us has a more specific route to Organization 1 Organization 0 200.23.16.0/23 Organization 2 200.23.20.0/23 Organization 7. 200.23.30.0/23 Organization 1 200.23.18.0/23. Fly -By-Night-ISP ISPs-R-Us beginning 200.23.16.0/20 beginning 199.31.0.0/16 or 200.23.18.0/23 Internet 15 Intra-AS vs Inter-AS Routing In Internet: Intra-AS known as Interior Gateway Protocols (IGP) Most common Intra-AS routing protocols: RIP: Routing Information Protocol (original protocol, now rarely used) OSPF: Open Shortest Path First IGRP/EIGRP: (Enhanced) Interior Gateway Routing Protocol Inter-AS known as Border Gateway Protocols: BGP4: Only protocol used 16 RIP (Routing Information Protocol) Distance vector algorithm Included in BSD-UNIX Distribution in 1982 Distance metric: # of hops (max = 15 hops) 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 destination hops u v u 1 A B w v 2 w 2 x 3 x y 3 z C D z 2 y A s routing table 17 RIP: Example w x y A D B C Routing table in D Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B 7 x -- 1..... 18 z 3
Dest Next hops w - - x - - z C 4.... RIP: Example Advertisement from A to D w x y A D B C Routing table in D Destination Network Next Router Num. of hops to dest. w A 2 y B 2 z B A 7 5 x -- 1..... z 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) poison reverse used to prevent ping-pong loops (infinite distance = 16 hops) 19 20 RIP Table processing RIP routing tables managed by application-level process called route-d (daemon) advertisements sent in UDP packets, periodically repeated Transprt (UDP) (IP) link physical routed forwarding table forwarding table routed Transprt (UDP) (IP) link physical 21 EIGRP Cisco proprietary See [Cisco Whitepaper], [Malhotra 2002] Distance Vector Protocol with enhancements Explicit Signaling (HELLO packets) DUAL diffusing update algorithm feasible successor concept guarantees loop freedom Intuition: rather than count to infinity, trigger route recomputation unless another loop-free path is known Optimize this by keeping track of all advertised routes, not just best one 22 OSPF (Open Shortest Path First) open : publicly available protocol (not proprietary) 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 have age field to allow for expiration Advertisements disseminated to entire AS (via flooding) Carried in OSPF messages directly over IP (rather than TCP or UDP) 23 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. 24 4
Hierarchical OSPF Hierarchical OSPF Two-level hierarchy: local area, backbone. link-state advertisements only in same 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 s. 25 26 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 27 BGP Basics Pairs of routers (BGP peers) exchange routing info over semi-permanent TCP conctns: BGP sessions Note that BGP sessions do not always 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 1c 1d 1b 2c 2a 2b AS2 ebgp session ibgp session 28 Distributing Reachability Info With ebgp session between 3a and 1c, AS3 sends prefix reachability info to AS1. 1c can then use ibgp do distribute this new prefix reach info to all routers in AS1 1b can then re-advertise the new reach info to AS2 over the 1bto-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 1c 1d 1b 2c 2a 2b AS2 ebgp session ibgp session 29 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 next-hop AS. (There may be multiple links from current AS to next-hop-as.) When gateway router receives route advert, uses import policy to accept/decline. 30 5
BGP Route Selection Router may learn about more than 1 route to some prefix. Router must select route. Elimination rules: 1. Local preference value attribute: policy decision 2. Shortest AS-PATH (like DV routing, except with more information!) 3. Closest NEXT-HOP router: hot potato routing 4. Additional criteria 31 Path Vector Routing in BGP Accomplished via AS-PATH attributes Each node is entire AS! 32 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 33 W A BGP routing policy B C Figure 4.5-BGPnew: a simple BGP scenario A,B,C are provider s X Y legend: X,W,Y are customer (of provider s) X is dual-homed: attached to two s X does not want to route from B via X to C.. so X will not advertise to B a route to C provider customer : 34 W A BGP routing policy (2) B C X Y legend: provider customer : Figure 4.5-BGPnew: a simple BGP scenario A advertises to B the path AW B advertises to X the path BAW Should B advertise to C the path BAW? 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! 35 Relationship between OSPF&BGP OSPF hierarchy is intra-as BGP connects ASs 36 6
Motivation for different Intra/Inter Protocols 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 37 Usage of Routing Protocols EBGP Sessions IGP OSPF EIGRP RIP Total Intra- 1,490 9,624 12,741 156 22,521 Inter- 13,830 1,161 1,342 161 2,664 Sample obtained by reverse-engineering router config files Source David Maltz et al: Routing Design in Operational Networks A Look from the inside, [SIGCOMM 2004] 38 Summary IP Addressing, subnets ICMP RIP OSPF BGP 39 7