290 likes | 302 Views
This introduction to inter-domain routing covers the Border Gateway Protocol (BGP), including E-BGP and I-BGP, route selection, peering relationships, and the use of community attributes.
E N D
COMP/ELEC 429/556Introduction to Computer Networks Inter-domain routing Some slides used with permissions from Edward W. Knightly, T. S. Eugene Ng, Ion Stoica, Hui Zhang
Previous focus: Intra-Domain Routing Interior router Border router AS-1 AS-3 AS-2 Intra-domain routing protocol aka Interior Gateway Protocol (IGP)
Today’s focus: Inter-Domain Routing Interior router Border router AS-1 AS-3 AS-2
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”
Border Gateway Protocol Part I: E-BGP AS2 AS1 E-BGP border router interior router • Two types of routers • Border router, Interior router
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
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
BGP Update Messages • Update : Announcing new routes or withdrawing previously announced routes. Update = Destination IP address prefix + attributes values (e.g. a routing path)
BGP table at R1: dest network prefixAS pathnext hop A AS2 addr 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
I-BGP updates Part II: I-BGP, Carrying Info within an AS E-BGP update • I-BGP used to disseminate learned routes to all routers in AS
Part II: I-BGP, Carrying Info within an AS you can reach net B via addr1 and the path is “AS3” E-BGP you can reach net B via addr2 and the path is “AS3 AS2” I-BGP E-BGP you can reach net B via addr1 and the path is “AS3” addr2 A AS1 AS2 addr1 AS3 B
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!
AS73 AS701 AS7018 AS1239 AS9 Example: Multiple AS Paths 128.2/16 128.2/16 9 701 128.2/16 9 7018 1239 Default choice: Pick shortest path
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
Benefits of BGP Design • Path Vector style routing • 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
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
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
IP traffic Selective Transit 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 NET D Most transit networks transit in a selective manner…
provider customer IP traffic Customers and Providers provider customer Customer pays provider for access to the Internet
peer peer provider customer The Peering Relationship Peers provide transit between their respective customers Peers do not provide transit between peers Peers (often) do not exchange $$$ traffic allowed traffic NOT allowed
peer peer provider customer Peering Provides Shortcuts Peering also allows connectivity between the customers of “Tier 1” providers.
provider route peer route customer route ISP route Import Routes From provider From provider From peer From peer From customer From customer
filters block Export Routes provider route peer route customer route ISP route To provider From provider To peer To peer To customer To customer
A community attribute is 32 bits By convention, first 16 bits is ASN indicating who is giving it an interpretation community number How can routes be marked as “provider”, “peer”, “customer”, “isp” ? Use “Community Attribute” in route announcement Used for signaling within and between ASs Very flexible BECAUSE it has no predefined meaning
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
IGP Process IGP Routing tables BGP Process BGP Routing tables Combining IGP and BGP OS kernel Forwarding Table Manager Forwarding Table
I-BGP: 135.207.0.0/16 Next Hop = 192.0.2.1 IGP destination next hop 192.0.2.0/30 10.10.10.10 Forwarding Table + destination next hop 135.207.0.0/16 10.10.10.10 BGP 192.0.2.0/30 10.10.10.10 destination next hop 135.207.0.0/16 192.0.2.1 Combine BGP and IGP Tables to Create Forwarding Table 135.207.0.0/16 E-BGP AS 1 AS 2 10.10.10.10 192.0.2.1 192.0.2.0/30
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 79.1.21.56 10.0.88.10 192.168.0.1 192.168.0.16 10.0.88.14
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 79.1.21.56 10.0.88.10 192.168.0.1 192.168.0.16 10.0.88.14