Presentation is loading. Please wait.

Presentation is loading. Please wait.

Inter-Domain Routing: BGP, Routing Policies, etc.

Similar presentations


Presentation on theme: "Inter-Domain Routing: BGP, Routing Policies, etc."— Presentation transcript:

1 Inter-Domain Routing: BGP, Routing Policies, etc.
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 Internet Architecture
Internet: “networks of networks”! LANs International lines ISP company university national network regional network NAP Internic on-line services access via modem CSci5221: Inter-Domain Routing and BGP

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

5 Internet comprised of Many Ases (autonomous systems)
Qwest Sprint UUnet University company AT&T business ISP Qwest Sprint UUnet University company AT&T business ISP Internet Autonomous System ISP ISP ISP ISP Qwest AT&T Sprint UUnet Level3 Level3 Level3 ISP ISP ISP ISP GNN Calren Calren Calren IP traffic AS: a set of networks that belong to a singe administrative entity, e.g., Berkeley campus network, company network, ISP Move up, more concrete Berkeley Berkeley Berkeley business CNN company University CSci5221: Inter-Domain Routing and BGP

6 CSci5221: Inter-Domain Routing and BGP
ASs & AS Numbers (ASNs) 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 Currently over 14,000 in use. 64512 through 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 U of Minnesota Neighborhood
AS 1 Genuity AS 7018 AT&T AS 3908 SuperNet (Qwest) AS 57 UMN GigaPoP AS 1998 State of Minnesota AS 217 UMN /16 CSci5221: Inter-Domain Routing and BGP

11 CSci5221: Inter-Domain Routing and BGP
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 remote-as 2 Router B in AS 2 neighbor remote-as 1 CSci5221: Inter-Domain Routing and BGP

13 CSci5221: Inter-Domain Routing and BGP
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 AS1 router A BGP session Exchange all active routes router B AS2 While connection is ALIVE exchange route UPDATE messages Exchange incremental updates CSci5221: Inter-Domain Routing and BGP

15 Establish a BGP Session
Establish neighboring session between and TCP 179 Prefix Next hop / / Prefix Next hop / / CSci5221: Inter-Domain Routing and BGP

16 Exchange All Candidate Routes
/ / / / Prefix Next hop / / / / Prefix Next hop / / / / CSci5221: Inter-Domain Routing and BGP

17 Send Incremental Updates
Withdraw /16 Prefix Next hop / / / / Prefix Next hop / / / / CSci5221: Inter-Domain Routing and BGP

18 BGP: Net Prefixes, ASNs and Route Advertisements
BGP route advertisement: Net prefix: /17 AS path: 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 /17, I promise that if you deliver traffic destined to any IP address within /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 routes out causes IP traffic to come in CSci5221: Inter-Domain Routing and BGP

20 Internal BGP (iBGP) vs. external BGP (eBGP)
update Internet iBGP eBGP update iBGP update eBGP AS B AS C AS A CSci5221: Inter-Domain Routing and BGP

21 CSci5221: Inter-Domain Routing and BGP
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! AS 7007 XP AS 1239 AS 6079 AS 701 AS 4006 CSci5221: Inter-Domain Routing and BGP

22 CSci5221: Inter-Domain Routing and BGP
iBGP iBGP speakers are (usually) fully meshed: why? iBGP session set up: Router A in AS 3847 router bgp 3847 neighbor remote-as 3847 neighbor remote-as 3847 Router B in AS 3847 neigbhor remote-as 3847 neighbor remote-as 3847 Router C in AS 3847 neigbhor remote-as 3847 neigbhor remote-as 3847 AS 3847 A c B CSci5221: Inter-Domain Routing and BGP

23 CSci5221: Inter-Domain Routing and BGP
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 CSci5221: Inter-Domain Routing and BGP
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 iBGP Route Distribution Restriction
Assume AS1239 sends route /16 to AS Router A will send that route to Routers B and C When Router B receives /16, it will not propagate that route to Router C because it was learned from an iBGP neighbor. Router C will behave similarly AS 2828 A B C D E /16 AS 1239 CSci5221: Inter-Domain Routing and BGP

26 CSci5221: Inter-Domain Routing and BGP
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 Scaling iBGP for Large AS
Route reflectors Confederations AS 1000 eBGP iBGP AS 65010 AS 65020 eBGP update RR Only best paths being sent by RR CSci5221: Inter-Domain Routing and BGP

28 Establish Connectivity
Prefix Next hop AS path / AS 3 Prefix Next hop AS path / IBGP EBGP AS 2 AS 1 EBGP /16 IBGP IBGP Prefix Next hop AS path / CSci5221: Inter-Domain Routing and BGP

29 IGP and BGP Working Together
Prefix Next hop AS path / AS 3 Prefix Next hop / / IBGP EBGP AS 2 AS 1 EBGP /16 IBGP /30 IBGP Prefix Next hop AS path / 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 CSci5221: Inter-Domain Routing and BGP
What Is an Attribute? Next Hop AS Path ... MED 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 CSci5221: Inter-Domain Routing and BGP
BGP Attributes Value Code Reference ORIGIN [RFC1771] AS_PATH [RFC1771] NEXT_HOP [RFC1771] MULTI_EXIT_DISC [RFC1771] LOCAL_PREF [RFC1771] ATOMIC_AGGREGATE [RFC1771] AGGREGATOR [RFC1771] COMMUNITY [RFC1997] ORIGINATOR_ID [RFC2796] CLUSTER_LIST [RFC2796] DPA [Chen] ADVERTISER [RFC1863] RCID_PATH / CLUSTER_ID [RFC1863] MP_REACH_NLRI [RFC2283] MP_UNREACH_NLRI [RFC2283] EXTENDED COMMUNITIES [Rosen] ... reserved for development From IANA: Most important attributes Not all attributes need to be present in every announcement CSci5221: Inter-Domain Routing and BGP

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

34 CSci5221: Inter-Domain Routing and BGP
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 mask …… ip route 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 CSci5221: Inter-Domain Routing and BGP
Next Hop Attribute Next-hop IP address to reach a network. Router A will advertise /24 to router B with a next-hop of 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 /24 A A .202 /30 .201 AS 3847 B B C CSci5221: Inter-Domain Routing and BGP

37 iBGP and Next-Hop: Example
In AS 2828: Router A: “next hop” for /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. AS 2828 A B C D E /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 / 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. / Preferred by all AS3847 routers A B /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
/24 AS 1 +5 +20 AS 701 CSci5221: Inter-Domain Routing and BGP

41 CSci5221: Inter-Domain Routing and BGP
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
AS 500 AS 400 /16 / :9 / :1 / :1 AS 300 / :1 / :1 AS 100 AS 200 /16 /16 CSci5221: Inter-Domain Routing and BGP

43 Attributes are Used to Select Best Routes
/24 pick me! /24 pick me! /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!) /24 pick me! CSci5221: Inter-Domain Routing and BGP

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

45 BGP Route Processing Apply Policy = filter routes & tweak attributes
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

46 Best Route Selection Rule
Enforce relationships (provider-customer, peer) Highest Local Preference Shortest ASPATH Origin: prefer IGP over BGP over INCOMPLETE Lowest MED iBGP < eBGP (i.e. prefer eBGP) Traffic Engineering 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 Internet Business Model (Simplified)
Provider Peer Customer Preferences implemented with local preference manipulation Destination Pay to use Get paid to use Free to use 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 Customers and Providers
IP traffic provider customer customer Customer pays provider for access to the Internet CSci5221: Inter-Domain Routing and BGP

50 The Peering Relationship
Peers provide transit between their respective customers Peers do not provide transit between peers Peers (often) do not exchange $$$ peer customer provider traffic allowed traffic NOT allowed CSci5221: Inter-Domain Routing and BGP

51 Peering Provides Shortcuts
customer provider Peering also allows connectivity between the customers of “Tier 1” providers. CSci5221: Inter-Domain Routing and BGP

52 Which AS Paths are “Legal”?
Valley-free: After traversing a provider-customer or peer-peer edge, cannot traverse a customer-provider or peer-peer edge Invalid path: >= 2 peer links, downhill-uphill, downhill-peer, peer-uphill CSci5221: Inter-Domain Routing and BGP

53 Example of Valley-Free Paths
[1 2 3], [ ] are valley-free X X [1 4 3], [ ] are not valley free CSci5221: Inter-Domain Routing and BGP

54 AS relationships translate into BGP export rules
Export to a provider or a peer Allowed: its routes and routes of its customers and siblings Disallowed: routes learned from other providers or peers Export to a customer or a sibling Allowed: its routes, the routes of its customers and siblings, and routes learned from its providers and peers CSci5221: Inter-Domain Routing and BGP

55 Filtering and Rankings
Filtering: route advertisement Ranking: route selection Customer Primary Competitor Backup External filtering vs. internal dissemination (external vs. internal) What makes distributed configuration hard? Filtering: Who gets what Dissemination: how they get it (the path by which they get it) Ranking: what they get Not much else in terms of complicated side effects – Verifying distributed program’s correctness CSci5221: Inter-Domain Routing and BGP

56 BGP Router - Processing Routes
For each route received: If it’s a valid route AND passes any filters, it must be put into the BGP routing table. Then, unless it is replacing a duplicate, a best-path computation must be run on all candidate BGP routes of the same prefix. Then, if the best route changed, the RIB and/or FIB must be updated. This process is done for ALL incoming BGP routes. CSci5221: Inter-Domain Routing and BGP

57 BGP Policy Configuration
Some Cisco BGP filtering mechanisms: To decide what routes can and can’t go to various other routers, you can “filter” using: “distribute lists” (“prefix filters”) - lists of routes “filter lists” (“as-path filters”) - lists of regular expressions matching or denying ASs “route maps” (“BGP Basic programs”) that allow you to match and change most BGP attributes CSci5221: Inter-Domain Routing and BGP

58 What policy looks like in Cisco IOS
eBGP Session Inbound “Route Map” (import policy) CSci5221: Inter-Domain Routing and BGP

59 Tweak Tweak Tweak In general, an AS has more
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 traffic inbound routes outbound traffic In general, an AS has more control over outbound traffic CSci5221: Inter-Domain Routing and BGP

60 Tuning Inbound BGP Routes (i.e., outbound traffic)
Inbound BGP routes make traffic go out Having a route means that an outbound packet can use it as basis for a forwarding decision (well, the router can) It is far easier to control outbound traffic than inbound Goal is generally to provide fastest, lowest-loss, path for all destinations, i.e., to optimize connectivity “quality”, whatever that is E.g., to optimize throughput and latency to reduce transit costs, say, squash traffic via a certain provider, prefer customer than peer/provider paths, and prefer peer than provider paths to load balance, or to ensure reliability with back-up routes CSci5221: Inter-Domain Routing and BGP

61 Controlling Outbound BGP Routes (i.e., inbound traffic)
Outbound BGP routes make traffic come in It’s a lot harder to control inbound traffic as other ASs’ policies complicate your life! If you are a stub AS with a single connection Not much you need to do except to filter out routes not in your AS If you are a multi-homed stub AS, Want to control through which link/provider that traffic to certain destinations in your AS may take, to load balance or for back-up If you are an ISP, you want to minimize transit cost, carry transit traffic from customers only ! use “hot-potato” routing to hand off traffic to peers/providers as soon as possible to load balance, or to ensure reliability with back-up routes CSci5221: Inter-Domain Routing and BGP

62 Shedding Inbound Traffic with ASPATH Padding Hack
Padding will (usually) force inbound traffic from AS 1 to take primary link AS 1 /24 ASPATH = customer AS 2 provider backup primary ASPATH = 2

63 Padding May Not Shut Off All Traffic
AS 1 AS 3 provider provider /24 ASPATH = 2 /24 ASPATH = AS 3 will send traffic on “backup” link because it prefers customer routes and local preference is considered before ASPATH length! Padding in this way is often used as a form of load balancing primary backup customer /24 AS 2

64 Hot Potato Routing: Go for the Closest Egress Point
/24 egress 2 egress 1 IGP distances 56 15 This Router has two BGP routes to /24. Hot potato: get traffic off of your network as soon as possible. Go for egress 1!

65 Getting Burned by the Hot Potato
Heavy Content Web Farm 2865 High bandwidth Provider backbone 17 SFF NYC Low bandwidth customer backbone 56 15 San Diego Many customers want their provider to carry the bits! tiny http request huge http reply

66 Inter-Domain Traffic Engineering
Customer A Customer B multiple peering points Provider A Provider B Early-exit routing Better to cooperate? Negotiate where to send Inbound and outbound Mutual benefits But, how to do it? What info to exchange? How to prioritize the many choices? How prevent cheating? Open research territory CSci5221: Inter-Domain Routing and BGP


Download ppt "Inter-Domain Routing: BGP, Routing Policies, etc."

Similar presentations


Ads by Google