Autonomous System(AS) Internet is not a single network –Collection of networks controlled by different administrations An autonomous system is a network under a single administrative control IANA –An AS owns unique IP prefixes –Every AS has a unique AS number ASes need to inter-network themselves to form a single virtual global network –Need a common protocol for communication
Who speaks Inter-AS routing? R border routerinternal router BGP R2R1R3 AS1 AS2 Two types of routers Border router (Edge) Internal router (Core) Two border routers of different ASes will have a BGP session
Autonomous Systems (ASes) An autonomous system is an autonomous routing domain that has been assigned an Autonomous System Number (ASN). All parts within an AS remain connected. RFC 1930: Guidelines for creation, selection, and registration of an Autonomous System … the administration of an AS appears to other ASes to have a single coherent interior routing plan and presents a consistent picture of what networks are reachable through it.
IP Address Allocation and Assignment: Internet Registries IANA www.iana.org RFC 2050 - Internet Registry IP Allocation Guidelines RFC 1918 - Address Allocation for Private Internets RFC 1518 - An Architecture for IP Address Allocation with CIDR ARIN www.arin.org APNIC www.apnic.org RIPE www.ripe.org Allocate to National and local registries and ISPs Addresses assigned to customers by ISPs
AS Numbers (ASNs) ASNs are 16 bit values. 64512 through 65535 are “private” Genuity: 1 MIT: 3 JANET: 786 UC San Diego: 7377 AT&T: 7018, 6341, 5074, … UUNET: 701, 702, 284, 12199, … Sprint: 1239, 1240, 6211, 6242, … … ASNs represent units of routing policy Currently over 20,000 in use.
Partial View of www.cl.cam.ac.uk (184.108.40.206) Neighborhood AS 786 ja.net AS 1239 Sprint AS 4373 Online Computer Library Center Originates > 180 prefixes, Including 220.127.116.11/16 AS 3356 Level 3 AS 6461 AboveNet AS 1213 HEAnet (Irish academic and research) AS 7 UK Defense Research Agency AS 4637 REACH AS 20757 Hanse AS 3257 Tiscali AS 5089 NTL Group AS 13127 Versatel AS 5459 LINX AS 702 UUNET AS 20965 GEANT
How Many ASNs are there today? Thanks to Geoff Huston. http://bgp.potaroo.net on October 26, 2004 18,217 12,940 origin only (no transit)
IP network assignment process IANA RIR Allocation RIR ISP Allocation ISP BGP Announcement IETF IANA Delegation
How many prefixes today? Thanks to Geoff Huston. http://bgp.potaroo.net on October 26, 2004 179,903 Note: numbers actually depends point of view…
The Gang of Four Link StateVectoring EGP IGP BGP RIPOSPF EIGRP
17 BGP-4 BGP = Border Gateway Protocol Is a Policy-Based routing protocol Is the de facto EGP of today’s global Internet Relatively simple protocol, but configuration is complex and the entire world can see, and be impacted by, your mistakes. 1989 : BGP-1 [RFC 1105] –Replacement for EGP (1984, RFC 904) 1990 : BGP-2 [RFC 1163] 1991 : BGP-3 [RFC 1267] 1995 : BGP-4 [RFC 1771] –Support for Classless Interdomain Routing (CIDR)
The Border Gateway Protocol (BGP) BGP = RFC 1771 + “optional” extensions RFC 1997 (communities) RFC 2439 (damping) RFC 2796 (reflection) RFC3065 (confederation) … + routing policy configuration languages (vendor-specific) + Current Best Practices in management of Interdomain Routing BGP was not DESIGNED. It EVOLVED.
19 BGP Operations (Simplified) Establish session on TCP port 179 Exchange all active routes Exchange incremental updates AS1 AS2 While connection is ALIVE exchange route UPDATE messages BGP session
20 Four Types of BGP Messages 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. announcement = prefix + attributes values
BGP Attributes 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 From IANA: http://www.iana.org/assignments/bgp-parameters Most important attributes Not all attributes need to be present in every announcement
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! 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!)
23 BGP Route Processing Best Route Selection Apply Import Policies Best Route Table Apply Export Policies Install forwarding Entries for best Routes. Receive BGP Updates Best Routes Transmit BGP Updates Apply Policy = filter routes & tweak attributes Based on Attribute Values IP Forwarding Table Apply Policy = filter routes & tweak attributes Open ended programming. Constrained only by vendor configuration language
Route Selection Summary Highest Local Preference Shortest ASPATH Lowest MED i-BGP < e-BGP Lowest IGP cost to BGP egress Lowest router ID traffic engineering Enforce relationships Throw up hands and break ties
BGP Routing Tables Use “whois” queries to associate an ASN with “owner” (for example, http://www.arin.net/whois/arinwhois.html)http://www.arin.net/whois/arinwhois.html 7018 = AT&T Worldnet, 701 =Uunet, 3561 = Cable & Wireless, … show ip bgp BGP table version is 111849680, local router ID is 18.104.22.168 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path... *>i22.214.171.124 126.96.36.199 50 0 16779 1 701 703 i *>i188.8.131.52 184.108.40.206 50 0 5727 7018 14541 i *>i220.127.116.11 18.104.22.168 50 0 16779 1 701 1744 i *>i22.214.171.124 126.96.36.199 50 0 16779 1 3561 i *>i188.8.131.52 184.108.40.206 50 0 16779 1 701 80 i *>i220.127.116.11 18.104.22.168 50 0 5727 7018 1785 i *>i22.214.171.124 126.96.36.199 55 0 16779 209 7843 225 225 225 225 225 i *>i188.8.131.52 184.108.40.206 55 0 16779 209 7843 225 225 225 225 225 i *>i220.127.116.11 18.104.22.168 55 0 16779 3549 714 714 714 i *>i22.214.171.124/25 126.96.36.199 55 0 16779 3549 14744 14744 14744 14744 14744 14744 14744 14744 i... Thanks to Geoff Huston. http://www.telstra.net/ops on July 6, 2001
27 Policy : Transit vs. Nontransit AS 701 AS144 AS 701 A nontransit AS allows only traffic originating from AS or traffic with destination within AS IP traffic UUnet Bell Labs AT&T CBB A transit AS allows traffic with neither source nor destination within AS to flow across the network
Customers and Providers Customer pays provider for access to the Internet provider customer IP traffic provider customer
The “Peering” Relationship peer customerprovider Peers provide transit between their respective customers Peers do not provide transit between peers Peers (often) do not exchange $$$ traffic allowed traffic NOT allowed
Peering Provides Shortcuts Peering also allows connectivity between the customers of “Tier 1” providers. peer customerprovider
Peering Wars Reduces upstream transit costs Can increase end-to- end performance May be the only way to connect your customers to some part of the Internet (“Tier 1”) You would rather have customers Peers are usually your competition Peering relationships may require periodic renegotiation Peering struggles are by far the most contentious issues in the ISP world! Peering agreements are often confidential. PeerDon’t Peer
32 Policy-Based vs. Distance-Based Routing? ISP1 ISP2 ISP3 Cust1 Cust2 Cust3 Host 1 Host 2 Minimizing “hop count” can violate commercial relationships that constrain inter- domain routing. YES NO
What is Routing Policy Policy refers to arbitrary preference among a menu of available routes (based upon routes’ attributes) –Public description of the relationship between external BGP peers –Can also describe internal BGP peer relationship Eg: Who are my BGP peers What routes are –Originated by a peer –Imported from each peer –Exported to each peer –Preferred when multiple routes exist What to do if no route exists?
Routing Policy Example AS1 originates prefix “d” AS1 exports “d” to AS2, AS2 imports AS2 exports “d” to AS3, AS3 imports AS3 exports “d” to AS5, AS5 imports
Routing Policy Example (cont) AS5 also imports “d” from AS4 Which route does it prefer? –Does it matter? –Consider case where AS3 = Commercial Internet AS4 = Internet2
Import and Export Policies Inbound filtering controls outbound traffic –filters route updates received from other peers –filtering based on IP prefixes, AS_PATH, community Outbound Filtering controls inbound traffic –forwarding a route means others may choose to reach the prefix through you –not forwarding a route means others must use another router to reach the prefix Attribute Manipulation –Import: LOCAL_PREF (manipulate trust) –Export: AS_PATH and MEDs
37 ASPATH Attribute AS7018 188.8.131.52/16 AS Path = 6341 AS 1239 Sprint AS 1755 Ebone AT&T AS 3549 Global Crossing 184.108.40.206/16 AS Path = 7018 6341 220.127.116.11/16 AS Path = 3549 7018 6341 AS 6341 18.104.22.168/16 AT&T Research Prefix Originated AS 12654 RIPE NCC RIS project AS 1129 Global Access 22.214.171.124/16 AS Path = 7018 6341 126.96.36.199/16 AS Path = 1239 7018 6341 188.8.131.52/16 AS Path = 1755 1239 7018 6341 184.108.40.206/16 AS Path = 1129 1755 1239 7018 6341
In fairness: could you do this “right” and still scale? Exporting internal state would dramatically increase global instability and amount of routing state Shorter Doesn’t Always Mean Shorter AS 4 AS 3 AS 2 AS 1 Mr. BGP says that path 4 1 is better than path 3 2 1 Duh!
Tweak Tweak Tweak (TE) For inbound traffic –Filter outbound routes –Tweak attributes on outbound routes in the hope of influencing your neighbor’s best route selection For outbound traffic –Filter inbound routes –Tweak attributes on inbound routes to influence best route selection outbound routes inbound routes inbound traffic outbound traffic In general, an AS has more control over outbound traffic
42 LOCAL PREFERENCE AS 1 AS 2 AS 4 AS 3 220.127.116.11/16 local pref = 80 local pref = 100 local pref = 90 Higher Local preference values are more preferred Local preference used ONLY in iBGP
43 Implementing Backup Links with Local Preference (Outbound Traffic) Forces outbound traffic to take primary link, unless link is down. AS 1 primary link backup link Set Local Pref = 100 for all routes from AS 1 AS 65000 Set Local Pref = 50 for all routes from AS 1 We’ll talk about inbound traffic soon …
44 Multihomed Backups (Outbound Traffic) Forces outbound traffic to take primary link, unless link is down. AS 1 primary link backup link Set Local Pref = 100 for all routes from AS 1 AS 2 Set Local Pref = 50 for all routes from AS 3 AS 3 provider
45 ASpath prepending AS 1 192.0.2.0/24 ASPATH = 2 2 2 2 2 2 2 2 2 2 2 2 2 2 customer AS 2 provider 192.0.2.0/24 ASPATH = 2 AS 3 provider Padding in this way is often used as a form of load balancing backupprimary
46 COMMUNITY Attribute to the Rescue! AS 1 customer AS 2 provider 192.0.2.0/24 ASPATH = 2 AS 3 provider backupprimary 192.0.2.0/24 ASPATH = 2 COMMUNITY = 3:70 Customer import policy at AS 3: If 3:90 in COMMUNITY then set local preference to 90 If 3:80 in COMMUNITY then set local preference to 80 If 3:70 in COMMUNITY then set local preference to 70 AS 3: normal customer local pref is 100, peer local pref is 90
BGP Summary BGP4 is the protocol used on the Internet to exchange routing information between providers, and to propagate external routing information through networks. Each autonomous network is called an Autonomous System. ASs which inject routing information on their own behalf have ASNs.
BGP Peering BGP-speaking routers peer with each other over TCP sessions, and exchange routes through the peering sessions. Providers typically try to peer at multiple places. Either by peering with the same AS multiple times, or because some ASs are multi-homed, a typical network will have many candidate paths to a given prefix.
The BGP Route The BGP route is, conceptually, a “promise” to carry data to a section of IP space. The route is a “bag” of attributes. The section of IP space is called the “prefix” attribute of the route. As a BGP route travels from AS to AS, the ASN of each AS is stamped on it when it leaves that AS. Called the AS_PATH attribute, or “as-path” in Cisco-speak.
BGP Route Attributes In addition to the prefix, the as-path, and the next-hop, the BGP route has other attributes, affectionately known as “knobs and twiddles” - –weight, rarely used - “sledgehammer” –local-pref, sometimes used - “hammer” –origin code, rarely used –MED (“metric”) - a gentle nudge