Interdomain Routing and the Border Gateway Protocol (BGP)— What does it all mean?
Interdomain Routing and The Border Gateway Protocol (BGP)
-
Upload
patience-fay-eaton -
Category
Documents
-
view
228 -
download
1
Transcript of Interdomain Routing and The Border Gateway Protocol (BGP)
Interdomain Routing and The Interdomain Routing and The Border Gateway Protocol Border Gateway Protocol
(BGP)(BGP)
Today’s Big Picture
Large ISP Large ISP
GPRS AccessNetwork
Small ISP
Stub Stub
Stub
Large number of diverse networks
Internet AS Map: caida.org
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 router internal router
BGPR2
R1
R3AS1
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
IANAwww.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
ARINwww.arin.org
APNICwww.apnic.org
RIPEwww.ripe.org
Allocate to National and local registries and ISPs Addresses assigned to customers by ISPs
Whois servers (AS, IP)
• http://www.ripe.net/perl/whois– AS2588
• http://ws.arin.net/cgi-bin/whois.pl– AS701
• http://www.apnic.net/apnic-bin/whois.pl– AS4808
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 (128.232.0.20) Neighborhood
AS 786 ja.net
AS 1239 Sprint
AS 4373 Online Computer Library Center
Originates > 180 prefixes, Including 128.232.0.0/16
AS 3356Level 3
AS 6461AboveNet
AS 1213 HEAnet(Irish academic and research)
AS 7 UK Defense Research Agency
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,940origin only (notransit)
IP network assignment process
IANA
RIR
Allo
catio
n
RIR
ISPA
lloca
tion
ISP
BGP
Ann
ounc
emen
t
IETF
IANA
Del
egat
ion
RIR Allocations - Current
IETF Reserved, 20.1, 8%
Multicast, 16, 6%
IANA Pool, 89, 35%
RIR Pool, 14, 5%
Assigned, 116.9, 46%Allocated
BGP Routing Table - Current
IETF Reserved, 20.1, 8%
Multicast, 16, 6%
IANA Pool, 89, 35%
RIR Pool, 14, 5%
Assigned, 42.4, 17%
Advertised, 74.5, 29%
How many prefixes today?
Thanks to Geoff Huston. http://bgp.potaroo.net on October 26, 2004
179,903
Note: numbersactually dependspoint of view…
The Gang of Four
Link State Vectoring
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” extensionsRFC 1997 (communities) RFC 2439 (damping) RFC 2796 (reflection) RFC3065 (confederation) …
+ routing policy configurationlanguages (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 exchangeroute 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
Mostimportantattributes
Not all attributesneed to be present inevery announcement
Attributes are Used to Select Best Routes
192.0.2.0/24pick me!
192.0.2.0/24pick me!
192.0.2.0/24pick me!
192.0.2.0/24pick me!
Given multipleroutes to the sameprefix, a BGP speakermust pick at mostone 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 forwardingEntries for bestRoutes.
ReceiveBGPUpdates
BestRoutes
TransmitBGP Updates
Apply Policy =filter routes & tweak attributes
Based onAttributeValues
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 andbreak ties
BGP Routing Tables
• Use “whois” queries to associate an ASN with “owner” (for example, http://www.arin.net/whois/arinwhois.html)
• 7018 = AT&T Worldnet, 701 =Uunet, 3561 = Cable & Wireless, …
show ip bgpBGP table version is 111849680, local router ID is 203.62.248.4Status codes: s suppressed, d damped, h history, * valid, > best, i - internalOrigin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
. . .*>i192.35.25.0 134.159.0.1 50 0 16779 1 701 703 i*>i192.35.29.0 166.49.251.25 50 0 5727 7018 14541 i*>i192.35.35.0 134.159.0.1 50 0 16779 1 701 1744 i*>i192.35.37.0 134.159.0.1 50 0 16779 1 3561 i*>i192.35.39.0 134.159.0.3 50 0 16779 1 701 80 i*>i192.35.44.0 166.49.251.25 50 0 5727 7018 1785 i*>i192.35.48.0 203.62.248.34 55 0 16779 209 7843 225 225 225 225 225 i*>i192.35.49.0 203.62.248.34 55 0 16779 209 7843 225 225 225 225 225 i*>i192.35.50.0 203.62.248.34 55 0 16779 3549 714 714 714 i*>i192.35.51.0/25 203.62.248.34 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
AS Graphs Can Be Fun
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 trafficprovider customer
The “Peering” Relationship
peer peer
customerprovider
Peers provide transit between their respective customers
Peers do not provide transit between peers
Peers (often) do not exchange $$$trafficallowed
traffic NOTallowed
Peering Provides Shortcuts
Peering also allows connectivity betweenthe customers of “Tier 1” providers.
peer 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.
Peer Don’t Peer
32
Policy-Based vs. Distance-Based Routing?
ISP1
ISP2
ISP3
Cust1
Cust2Cust3
Host 1
Host 2
Minimizing “hop count” can violate commercial relationships thatconstrain 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
AS7018135.207.0.0/16AS Path = 6341
AS 1239Sprint
AS 1755Ebone
AT&T
AS 3549Global Crossing
135.207.0.0/16AS Path = 7018 6341
135.207.0.0/16AS Path = 3549 7018 6341
AS 6341
135.207.0.0/16
AT&T Research
Prefix Originated
AS 12654RIPE NCCRIS project
AS 1129Global Access
135.207.0.0/16AS Path = 7018 6341
135.207.0.0/16AS Path = 1239 7018 6341
135.207.0.0/16AS Path = 1755 1239 7018 6341
135.207.0.0/16AS Path = 1129 1755 1239 7018 6341
In fairness: could you do this “right” and still scale?
Exporting internalstate would dramatically increase global instability and amount of routingstate
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!
Routing Example 1
Routing Example 2
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
outboundroutes
inboundroutes
inboundtraffic
outboundtraffic
In general, an AS has morecontrol over outbound traffic
42
LOCAL PREFERENCE
AS 1AS 2
AS 4
AS 3
13.13.0.0/16
local pref = 80
local pref = 100
local pref = 90
Higher Localpreference valuesare 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 = 100for all routes from AS 1 AS 65000
Set Local Pref = 50for 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 = 100for all routes from AS 1
AS 2
Set Local Pref = 50for all routes from AS 3
AS 3provider provider
45
ASpath prepending
AS 1
192.0.2.0/24ASPATH = 2 2 2 2 2 2 2 2 2 2 2 2 2 2
customerAS 2
provider
192.0.2.0/24
192.0.2.0/24ASPATH = 2
AS 3provider
Padding in this way is oftenused as a form of loadbalancing
backupprimary
46
COMMUNITY Attribute to the Rescue!
AS 1
customerAS 2
provider
192.0.2.0/24
192.0.2.0/24ASPATH = 2
AS 3provider
backupprimary
192.0.2.0/24ASPATH = 2 COMMUNITY = 3:70
Customer import policy at AS 3:If 3:90 in COMMUNITY then set local preference to 90If 3:80 in COMMUNITY then set local preference to 80If 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