1 / 66

Inter-Domain Routing: BGP Overview

Inter-Domain Routing: BGP Overview. Overview of BGP Network Domains and Autonomous Systems (ASes) Internet Interconnection Structure and BGP Basic BGP Features BGP Path Selection Criteria Internet Settlement Models AS Relationships BGP Policies Readings: Do the required readings.

vaughan
Download Presentation

Inter-Domain Routing: BGP Overview

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Inter-Domain Routing: BGPOverview • Overview of BGP • Network Domains and Autonomous Systems (ASes) • Internet Interconnection Structure and BGP • Basic BGP Features • BGP Path Selection Criteria • Internet Settlement Models • AS Relationships • BGP Policies Readings: Do the required readings CSci5221: Inter-Domain Routing and BGP

  2. Routing in the Internet • The Global Internet consists of Autonomous Systems (AS) interconnected with each other: • 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 CSci5221: Inter-Domain Routing and BGP

  3. International lines NAP Internic regional network national network on-line services ISP company ISP university access via modem company LANs Internet Architecture Internet: “networks of networks”! CSci5221: Inter-Domain Routing and BGP

  4. routes Control plane: exchange routes Fail over to alternate route : Routing session Internet routing Internet Data plane: forward traffic IP traffic rusty.cs.berkeley.edu IP=169.229.62.116 Prefix=169.229.0.0/16 www.cnn.com IP=64.236.16.52 Prefix=64.236.16.0/20 CSci5221: Inter-Domain Routing and BGP

  5. company company Qwest Qwest UUnet UUnet Sprint Sprint AT&T AT&T ISP ISP ISP ISP ISP ISP ISP ISP ISP University University business business business ISP ISP ISP ISP ISP ISP ISP ISP ISP ISP ISP ISP ISP ISP ISP More than 20,000 ASes today Internet Autonomous System Qwest AT&T Sprint UUnet Level3 Level3 Level3 GNN Calren Calren Calren IP traffic Berkeley Berkeley Berkeley CNN company University CSci5221: Inter-Domain Routing and BGP

  6. Currently over 14,000 in use. • Genuity: 1 • MIT: 3 • Harvard: 11 • Yale: 29 • UCLA: 52 • AT&T: 7018, 5075, …, 6341, … • UUNET: 701, 702, 284, 12199, … • Sprint: 1239, 1240, 6211, 6242, … • … ASNs represent units of routing policy ASs & AS Numbers (ASNs) 64512 through 65535 are “private” CSci5221: Inter-Domain Routing and BGP

  7. Having Internet Connectivity • To have complete Internet connectivity you must be able to reach all destinations on the net. • Your packets have to get delivered to every destination. This is easy (default routes). • Packets from everywhere else have to “find you”. This is done by having your ISP(s) advertise routes for you. CSci5221: Inter-Domain Routing and BGP

  8. BGP: The Glue of Internet • To allow networks (ASs) to tell other networks (ASs) about “routes” (parts of the IP address space) that they are “responsible” for and how to reach them • Using “route advertisements”, or “promises” - also called “NLRI” or “network-layer reachability information” • “Path-vector” routing protocol • Policy-based: allow ISPs to richly express their routing policy, both in selecting outbound paths and in announcing internal routes • keep this in mind as we progress! • Relatively “simple” protocol, but configuration is complex and the entire world can see, and be impacted by, your mistakes CSci5221: Inter-Domain Routing and BGP

  9. Network Interconnections • Exchange Point • Layer 2 or Layer 3 • Private Circuit • May be provided by a third party CSci5221: Inter-Domain Routing and BGP

  10. AS 3908 SuperNet (Qwest) AS 217 UMN AS 1998 State of Minnesota U of Minnesota Neighborhood AS 7018 AT&T AS 1 Genuity AS 57 UMN GigaPoP 128.101.0.0/16 CSci5221: Inter-Domain Routing and BGP

  11. BGP: Some Basics • BGP exchanges routes between ASs. • When routes are exchanged, ASNs are stamped on the routes “on the way out” • adding one “AS hop” per network traversed -> AS path • no concept of pipe size, internal router hop-count, congestion -> in some sense BGP treats all ASs the same • Routes are exchanged over “peering sessions”, which run on top of TCP • The routes are “objects”, or “bags” of “attributes” • BGP is actually two protocols • iBGP, designed for “internal” route exchange • eBGP, designed for “external” route exchange • 1995: BGP-4 [RFC 1771] • Support for Classless Interdomain Routing (CIDR) CSci5221: Inter-Domain Routing and BGP

  12. BGP (Peering) Sessions • BGP session set up over TCP • When session set up, both sides flood the other end with all of their best BGP routes • Over time, only incremental updates are exchanged • If session dies, all associated routes must be withdrawn • BGP peers (neighbors) must be specified explicitly • BGP session set-up: Cisco Example Router A in AS 1 router bgp 1 neighbor 129.213.1.1 remote-as 2 Router B in AS 2 router bgp 1 neighbor 129.213.1.2 remote-as 1 CSci5221: Inter-Domain Routing and BGP

  13. BGP messages • OPEN: set up a peering session • UPDATE: announce new routes or withdraw previously announced routes • NOTIFICATION: shut down a peering session • KEEPALIVE: confirm active connection at regular interval CSci5221: Inter-Domain Routing and BGP

  14. BGP Operations (Simplified) Establish session on TCP port 179 router A 129.213.1.2 AS1 BGP session Exchange all active routes router B 129.213.1.1 AS2 While connection is ALIVE exchange route UPDATE messages Exchange incremental updates CSci5221: Inter-Domain Routing and BGP

  15. Establish BGP session Establish neighboring session between 12.10.0.1 and 12.10.0.2 TCP 179 12.10.0.1 12.10.0.2 Prefix Next hop 135.120.0.0/24 10.128.0.1 68.35.0.0/16 10.192.1.1 Prefix Next hop 12.70.0.0/24 10.20.0.1 12.9.0.0/16 10.20.1.1 CSci5221: Inter-Domain Routing and BGP

  16. Exchange all candidate routes 12.70.0.0/24 10.20.0.1 12.9.0.0/16 10.20.1.1 12.10.0.1 12.10.0.2 135.120.0.0/24 10.128.0.1 68.35.0.0/16 10.192.1.1 Prefix Next hop 135.120.0.0/24 10.128.0.1 68.35.0.0/16 10.192.1.1 12.70.0.0/24 10.20.0.1 12.9.0.0/16 10.20.1.1 Prefix Next hop 12.70.0.0/24 10.20.0.1 12.9.0.0/16 10.20.1.1 135.120.0.0/24 10.128.0.1 68.35.0.0/16 10.192.1.1 CSci5221: Inter-Domain Routing and BGP

  17. Send incremental updates Withdraw 12.9.0.0/16 12.10.0.1 12.10.0.2 Prefix Next hop 135.120.0.0/24 10.128.0.1 68.35.0.0/16 10.192.1.1 12.70.0.0/24 10.20.0.1 12.9.0.0/16 10.20.1.1 Prefix Next hop 12.70.0.0/24 10.20.0.1 12.9.0.0/16 10.20.1.1 135.120.0.0/24 10.128.0.1 68.35.0.0/16 10.192.1.1 CSci5221: Inter-Domain Routing and BGP

  18. BGP: Net Prefixes, ASNs and Route Advertisements BGP route advertisement: Net prefix: 207.8.128.0/17 AS path: 4969 6461 AS 12001 AS 4969 AS 6461 AS 701 AS 5000 CSci5221: Inter-Domain Routing and BGP

  19. BGP Route Advertisement • Think of a BGP route as a “promise” • If I advertise 207.8.128.0/17, I promise that if you deliver traffic destined to any IP address within 207.8.128.0/17 to me, I know how to deliver it (at least as well as anyone else) • By making sure these routes, or “promises”, are heard by all ASes, your provider ensures a return path for all of your packets • Sending packets out is easier than getting them back. • Sending routesout causes IP traffic to come in CSci5221: Inter-Domain Routing and BGP

  20. Internal vs. external BGP I-BGP update Internet I-BGP E-BGP update I-BGP update E-BGP AS B AS C AS A CSci5221: Inter-Domain Routing and BGP

  21. AS 1239 XP AS 701 AS 7007 AS 6079 AS 4006 EBGP vs. IBGP Sessions • EBGP: between (usually directly-connected) routers in different ASs • IBGP: between (BGP-speaking) routers in same AS • Different (operational) rules and polices apply! CSci5221: Inter-Domain Routing and BGP

  22. iBGP • IBGP speakers are (usually) fully meshed: why? • IBGP session set up: • Router A in AS 3847 • router bgp 3847 • neighbor 129.213.1.1 remote-as 3847 • neighbor 128.28.10.2 remote-as 3847 • Router B in AS 3947 • router bgp 3847 • neigbhor 129.213.1.2 remote-as 3847 • neighbor 127.101.1.1 remote-as 3847 • Router C in AS 3947 • router bgp 3847 • neigbhor 128.28.10.1 remote-as 3847 • neigbhor 127.101.1.2 remote-as 3847 AS 3847 A c B CSci5221: Inter-Domain Routing and BGP

  23. eBGP vs. iBGP eBGP Rules: • By default, only talks to directly-connected router. • Sends the one best BGP route for each destination. • Sends all of the important “attributes”; omits the “local preference” attribute. • Adds (prepends) the speaker’s ASN to the “AS-Path” attribute. • Usually rewrites the “next-hop” attribute. CSci5221: Inter-Domain Routing and BGP

  24. eBGP vs. iBGP iBGP Rules: • Can talk to routers many hops away by default. • Can only send routes it “injects”, or routes heard directly from an external peer. • Thus, requires a full mesh. • Sends all attributes. • Leaves the “as-path” attribute alone. • Doesn’t touch the “next hop” attribute. • With iBGP, next-hop is not a router directly connected. • So a “recursive lookup” is needed. • After the next-hop is found, a second lookup is made to figure out how to send the packet “in the direction” of the next-hop. CSci5221: Inter-Domain Routing and BGP

  25. B AS 2828 A C iBGP Route Distribution Restriction • Assume AS1239 sends route 170.10.0.0/16 to AS2828. Router A will send that route to Routers B and C • When Router B receives 170.10.0.0/16, it will not propagate that route to Router C because it was learned from an iBGP neighbor. Router C will behave similarly D E 170.10.0.0/16 AS 1239 CSci5221: Inter-Domain Routing and BGP

  26. Making BGP Scalable • Address and route aggregation • iBGP fully meshed, not scalable for large AS • Two mechanisms: • BGP route reflector (RR) • Client: used to identify “client” of the RR(s). • Non-client:identifies standard BGP peers. • Cluster: a group of clients under same RR(s). • Cluster-id: unique identifier for a cluster. • Originator-id: router-id of the originator of the route. • BGP confederation, e.g., • Fully-mesh all BGP speakers at a POP • Use fake ASNs at each POP • Between POPs, use eBGP rules (send everything) • Within POPs, use iBGP rules • Preserve local_prefs between POPs CSci5221: Inter-Domain Routing and BGP

  27. Route reflectors Confederations AS 1000 E-BGP update EBGP RR RR IBGP IBGP EBGP AS 65020 AS 65010 EBGP Scaling i-BGP for large AS Only best paths being sent by RR CSci5221: Inter-Domain Routing and BGP

  28. Establish connectivity Prefix Next hop AS path 135.120.0.0/16 12.10.0.5 2 1 AS 3 Prefix Next hop AS path 135.120.0.0/16 12.10.0.1 1 12.10.0.6 IBGP EBGP 12.10.0.5 AS 2 AS 1 EBGP 135.120.0.0/16 12.10.0.2 IBGP 12.10.0.1 IBGP Prefix Next hop AS path 135.120.0.0/16 12.10.0.1 1 CSci5221: Inter-Domain Routing and BGP

  29. IGP and BGP working together Prefix Next hop AS path 135.120.0.0/16 12.10.0.1 1 AS 3 Prefix Next hop 12.10.0.0/30 10.10.0.1 135.120.0.0/16 10.10.0.1 12.10.0.6 IBGP EBGP 12.10.0.5 AS 2 AS 1 12.10.0.1 EBGP 135.120.0.0/16 12.10.0.2 10.10.0.1 IBGP 12.10.0.0/30 IBGP Prefix Next hop AS path 135.120.0.0/16 12.10.0.1 1 CSci5221: Inter-Domain Routing and BGP

  30. BGP Messages: Four Types • Open : Establish a peering session. • Keep Alive : Handshake at regular intervals. • Notification : Shuts down a peering session. • Update : Announcing new routes or withdrawing previously announced routes. route announcement = prefix + attributes values CSci5221: Inter-Domain Routing and BGP

  31. Next Hop AS Path ... ... ... MED What Is an Attribute? • Attribute encoded in a TLV (type-length-value) format. • Attribute length is 4 bytes long • Attributes can be transitive (across ASs) or non-transitive (between AS neighbors only) • Some are mandatory: e.g., AS Path, Next-Hop, etc. CSci5221: Inter-Domain Routing and BGP

  32. Value Code Reference ----- --------------------------------- --------- 1 ORIGIN [RFC1771] 2 AS_PATH [RFC1771] 3 NEXT_HOP [RFC1771] 4 MULTI_EXIT_DISC [RFC1771] 5 LOCAL_PREF [RFC1771] 6 ATOMIC_AGGREGATE [RFC1771] 7 AGGREGATOR [RFC1771] 8 COMMUNITY [RFC1997] 9 ORIGINATOR_ID [RFC2796] 10 CLUSTER_LIST [RFC2796] 11 DPA [Chen] 12 ADVERTISER [RFC1863] 13 RCID_PATH / CLUSTER_ID [RFC1863] 14 MP_REACH_NLRI [RFC2283] 15 MP_UNREACH_NLRI [RFC2283] 16 EXTENDED COMMUNITIES [Rosen] ... 255 reserved for development Most important attributes Not all attributes need to be present in every announcement From IANA: http://www.iana.org/assignments/bgp-parameters BGP Attributes CSci5221: Inter-Domain Routing and BGP

  33. AS 1129 135.207.0.0/16 AS Path = 1755 1239 7018 6341 Global Access AS 1755 135.207.0.0/16 AS Path = 1129 1755 1239 7018 6341 Ebone AS 12654 AS 1239 RIPE NCC RIS project 135.207.0.0/16 AS Path = 7018 6341 Sprint AS7018 135.207.0.0/16 AS Path = 3549 7018 6341 135.207.0.0/16 AS Path = 6341 AT&T AS 3549 AS 6341 135.207.0.0/16 AS Path = 7018 6341 AT&T Research Global Crossing 135.207.0.0/16 Prefix Originated AS Path Attribute How to detect loop using AS path? CSci5221: Inter-Domain Routing and BGP

  34. Origin Attribute • One of the mandatory, but minor, attributes of a BGP route is the origin. It is one of (in order of preference): • IGP (i) (from a network statement) • EGP (e) (from an external peer) • Unknown (?) (from IGP redistribution) • It can be re-set, but that is not often done. • It is almost-last in the path selection algorithm. CSci5221: Inter-Domain Routing and BGP

  35. Inserting Routes into BGP • How do routes get into BGP? • You have to insert routes into BGP, and someone had to insert external routes that you get into BGP somewhere else in the first place. • Two main ways: • network statements: “network x.y.z.q [mask a.b.c.d]” • MUST have an EXACTLY matching IGP route, e.g., router bgp 1 network 192.213.0.0 mask 255.255.0.0 …… ip route 192.213.0.0 255.255.0.0 null 0 • redistributing from OSPF, static, etc... • redistribute <igp-protocol> <protocol-id> • need to be careful, must filter externally learned routes! • redistribute static CSci5221: Inter-Domain Routing and BGP

  36. Next Hop Attribute • Next-hop IP address to • reach a network. • Router A will advertise 198.3.97.0/24 to router B with a next-hop of 207.240.24.202. • With IBGP, the next-hop does not change. • IGPs should carry route to next-hops, using intelligent forwarding decision (i.e., via IGP). AS 6201 198.3.97.0/24 A A .202 207.240.24.200/30 AS 3847 .201 B B C CSci5221: Inter-Domain Routing and BGP

  37. B AS 2828 A C iBGP and Next-Hop: Example In AS 2828: • Router A: “next hop” for 170.10.0.0/16 will be the serial interface on Router D in AS1239 router • This is true even in Router B’s and Router C’s forwarding table. D E 170.10.0.0/16 AS 1239 CSci5221: Inter-Domain Routing and BGP

  38. Local Preference Attribute • Local to AS • transitive throughout your network. It is never advertised to an eBGP peer. • Used to influence BGP • path selection AS 3847 F E G C D 208.1.1.0/24 80 • Default 100 • Highest local-pref preferred • For example, you can express the policy “prefer private connect” by making the “local_pref” be 150 and leaving all other peers at 100. 208.1.1.0/24 100 Preferred by all AS3847 routers A B 208.1.1.0/24 AS 6201 CSci5221: Inter-Domain Routing and BGP

  39. Multi-Exit Discriminator (MED) • Indication to external peers of preferred path into an AS • Advertised to external neighbors • Neighbors are not obliged to heed it • Affects routes with same AS path • Lowest MED preferred • A commonly used attribute by ISPs • Usually based on IGP metric • For example, big ISPs with multiple connections with each other use MED to indicate which PoP is “closest” to an advertised route, thus more preferred • It comes after AS_PATH in evaluation, and thus isn’t quite as much of a “hammer” as local-pref CSci5221: Inter-Domain Routing and BGP

  40. MED Attribute: Example 128.11.10/24 AS 1 +5 +20 AS 701 CSci5221: Inter-Domain Routing and BGP

  41. Community Attribute • Defined in RFC 1997 • 32-bit integer: • represented as two 16-bit integer x:y • Used to group routes (“net prefixes”) • Each route could be member of multiple communities • Transitive: carried across ASs • Very useful in applying policies • Well-known communities • No-Export: do not advertise to eBGP peers • No-advertise: do not advertise to any peer • Local-AS: do not advertise outside local AS (only used with “confederations”) CSci5221: Inter-Domain Routing and BGP

  42. Community Attribute: Example 160.10.0.0/16 300:1 170.10.0.0/16 300:1 160.10.0.0/16 300:1 170.10.0.0/16 300:1 AS 500 AS 400 200.10.0.0/16 200.10.0.0/16 300:9 AS 300 AS 100 AS 200 160.10.0.0/16 170.10.0.0/16 CSci5221: Inter-Domain Routing and BGP

  43. 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 (Note: it could reject them all!) 192.0.2.0/24 pick me! CSci5221: Inter-Domain Routing and BGP

  44. traffic traffic Policy routing ISP2 ISP1 Connectivity DOES NOT imply reachability! ISP3 ISP4 Cust1 Cust2 Policy determines how traffic can flow on the Internet CSci5221: Inter-Domain Routing and BGP

  45. BGP Route Processing Open ended programming. Constrained only by vendor configuration language Apply Policy = filter routes & tweak attributes Apply Policy = filter routes & tweak attributes Receive BGP Updates Transmit BGP Updates Based on Attribute Values Best Routes Apply Import Policies Best Route Selection Best Route Table Apply Export Policies Install forwarding Entries for best Routes. IP Forwarding Table CSci5221: Inter-Domain Routing and BGP

  46. Best Route Selection Rule Enforce relationships (provider-customer, peer) Highest Local Preference Shortest ASPATH Lowest MED traffic engineering i-BGP < e-BGP Lowest IGP cost to BGP egress Throw up hands and break ties Lowest router ID CSci5221: Inter-Domain Routing and BGP

  47. Typical AS relationships • Provider-customer • customer pay money for transit • Peer-peer • typically exchange respective customers’ traffic for free • Siblings • Mutual transit agreement • Provide connectivity to the rest of the Internet for each other CSci5221: Inter-Domain Routing and BGP

  48. Provider Preferences implemented with local preference manipulation Free to use Pay to use Peer Get paid to use Customer Destination Internet Business Model (Simplified) • Customer/Provider: One AS pays another for reachability to some set of destinations • “Settlement-free” Peering: Bartering. Two ASes exchange routes with one another. CSci5221: Inter-Domain Routing and BGP

  49. provider customer IP traffic Customers and Providers provider customer Customer pays provider for access to the Internet CSci5221: Inter-Domain Routing and BGP

  50. 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 CSci5221: Inter-Domain Routing and BGP

More Related