COMP/ELEC 429/556 Introduction to Computer Networks Inter-domain routing Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Previous focus: Intra-Domain Routing Interior router Border router AS-1 AS-3 AS-2 Intra-domain routing protocol aka Interior Gateway Protocol (IGP) T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Today’s focus: Inter-Domain Routing Interior router Border router AS-1 AS-3 AS-2 T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Inter-Domain Routing Considerations Global connectivity is at stake Inevitably leads to one single protocol that everyone must speak Unlike many choices in intra-domain routing What are the requirements? Scalability Flexibility in choosing routes If you were to choose, link state based or distance vector based? Border Gateway Protocol (BGP) A hybrid between link state and distance vector “Path vector” T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Border Gateway Protocol Part I: E-BGP AS2 AS1 E-BGP border router interior router Two types of routers Border router, Interior router T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Border Gateway Protocol Part II: I-BGP AS2 AS1 E-BGP I-BGP border router interior router Two types of routers Border router, Interior router T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
BGP Operations (Simplified) Establish session on TCP port 179 AS1 BGP session Exchange all active routes AS2 While connection is ALIVE exchange route UPDATE messages Exchange incremental updates T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Destination IP address prefix + attributes values BGP Update Messages Update : Announcing new routes or withdrawing previously announced routes. Update = Destination IP address prefix + attributes values (e.g. a routing path) T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Part I: E-BGP, Share connectivity information across ASs you can reach net prefix A via addr and the path is “AS2” AS2 AS1 E-BGP addr A R1 BGP table at R1: dest network prefix AS path next hop A AS2 addr T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Part II: I-BGP, Carrying Info within an AS E-BGP update I-BGP used to disseminate learned routes to all routers in AS I-BGP updates T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Part II: I-BGP, Carrying Info within an AS you can reach net B via addr1 and the path is “AS3” you can reach net B via addr2 and the path is “AS3 AS2” E-BGP E-BGP you can reach net B via addr1 and the path is “AS3” addr2 A AS1 AS2 addr1 AS3 B T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Attributes are Used to Select Best Routes 192.0.2.0/24 pick me! 192.0.2.0/24 pick me! 192.0.2.0/24 pick me! Given multiple routes to the same prefix, a BGP speaker must pick at most one best route 192.0.2.0/24 pick me! T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Example: Multiple AS Paths 128.2/16 AS701 AS7018 128.2/16 9 701 128.2/16 9 7018 1239 AS1239 AS73 Default choice: Pick shortest path T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Shorter Doesn’t Always Mean better Is path 4 1 better than path 3 2 1? AS 4 AS 3 AS 2 AS 1 AS can use custom policies other than shortest path T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Benefits of BGP Design Path Vector style routing Advantages: Distance vector algorithm with extra information For each route, store the complete path (ASs) Advantages: can make policy choices (choose among many possible learned paths) based on set of ASs in path can easily avoid loops T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Announcing and Choosing Routes BGP may learn many different paths for a destination network Learns only reachability information, no performance metrics Not about optimizing anything All about policy (business and politics) What a BGP speaker announces or not announces to a neighbor determines what routes may get used by that neighbor Router chooses among paths based on policy T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Nontransit vs. Transit ASes ISP 2 Internet Service providers (often) are transit networks ISP 1 NET A Nontransit AS might be a corporate or campus network. Traffic NEVER flows from ISP 1 through NET A to ISP 2 (At least not intentionally!) IP traffic T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Selective Transit NET A NET B NET C NET A provides transit between NET B and NET C and between NET D and NET C NET A DOES NOT provide transit Between NET D and NET B NET A IP traffic NET D Most transit networks transit in a selective manner… T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Customers and Providers IP traffic Customer pays provider for access to the Internet T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
The Peering Relationship customer provider Peers provide transit between their respective customers Peers do not provide transit between peers Peers (often) do not exchange $$$ traffic allowed traffic NOT allowed T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Peering Provides Shortcuts customer provider Peering also allows connectivity between the customers of “Tier 1” providers. T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Import Routes provider route customer route peer route ISP route From T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Export Routes provider route peer route customer route ISP route To From provider To peer To peer To customer To customer filters block T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
How can routes be marked as “provider”, “peer”, “customer”, “isp” ? Use “Community Attribute” in route announcement Used for signaling within and between ASs A community attribute is 32 bits By convention, first 16 bits is ASN indicating who is giving it an interpretation community number Very flexible BECAUSE it has no predefined meaning T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
BGP Issues BGP designed for policy not performance Susceptible to router misconfiguration Blackholes: announce a route you cannot reach Slow convergence time Rate limiting and route flap dampening T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Combining IGP and BGP BGP Process IGP Process OS kernel BGP Routing tables IGP Process IGP Routing tables OS kernel Forwarding Table Manager Forwarding Table T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Combine BGP and IGP Tables to Create Forwarding Table I-BGP: 135.207.0.0/16 Next Hop = 192.0.2.1 135.207.0.0/16 E-BGP IGP 10.10.10.10 192.0.2.0/30 destination next hop 10.10.10.10 AS 1 AS 2 192.0.2.1 192.0.2.0/30 Forwarding Table 135.207.0.0/16 destination next hop 10.10.10.10 192.0.2.0/30 BGP 192.0.2.1 135.207.0.0/16 destination next hop + T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Life Cycle of a Packet in the Internet Address Resolution Protocol (ARP) On the same subnet, need to map IP address to MAC (e.g. Ethernet) address Host and router have ARP cache to store the IP-MAC pairs In case of no match in ARP cache, broadcast an ARP request with the IP address in question and the device with the IP address will reply with its MAC address 192.168.0.3 10.0.88.6 168.7.151.15 79.1.21.46 168.7.151.12 192.168.0.9 10.0.88.1 10.0.88.10 79.1.21.56 192.168.0.1 192.168.0.16 10.0.88.14 T. S. Eugene Ng eugeneng at cs.rice.edu Rice University
Life Cycle of a Packet in the Internet For each hop in the network, do the following steps: Decapsulate the Ethernet frame to get the IP header (except no need to do this at the source) Check routing table by the destination IP address, get the next-hop IP address and the network interface Learn the MAC address of the next hop (look up in ARP cache or broadcast an ARP request) Encapsulate the IP packet into an Ethernet frame with the destination MAC address Send the Ethernet frame out from the next-hop network interface 192.168.0.3 10.0.88.6 168.7.151.15 79.1.21.46 168.7.151.12 192.168.0.9 10.0.88.1 10.0.88.10 79.1.21.56 192.168.0.1 192.168.0.16 10.0.88.14 T. S. Eugene Ng eugeneng at cs.rice.edu Rice University