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

Slides:



Advertisements
Similar presentations
Rensselaer Polytechnic Institute 1 Today’s Big Picture Large ISP Dial-Up ISP Access Network Small ISP Stub Large number of diverse networks.
Advertisements

1 Interdomain Traffic Engineering with BGP By Behzad Akbari Spring 2011 These slides are based on the slides of Tim. G. Griffin (AT&T) and Shivkumar (RPI)
1 Copyright  1999, Cisco Systems, Inc. Module10.ppt10/7/1999 8:27 AM BGP — Border Gateway Protocol Routing Protocol used between AS’s Currently Version.
BGP.
Border Gateway Protocol Ankit Agarwal Dashang Trivedi Kirti Tiwari.
Network Layer: Internet-Wide Routing & BGP Dina Katabi & Sam Madden.
CS540/TE630 Computer Network Architecture Spring 2009 Tu/Th 10:30am-Noon Sue Moon.
Path Vector Routing NETE0514 Presented by Dr.Apichan Kanjanavapastit.
© J. Liebeherr, All rights reserved 1 Border Gateway Protocol This lecture is largely based on a BGP tutorial by T. Griffin from AT&T Research.
Border Gateway Protocol Autonomous Systems and Interdomain Routing (Exterior Gateway Protocol EGP)
Fundamentals of Computer Networks ECE 478/578 Lecture #18: Policy-Based Routing Instructor: Loukas Lazos Dept of Electrical and Computer Engineering University.
1 Interdomain Routing Protocols. 2 Autonomous Systems An autonomous system (AS) is a region of the Internet that is administered by a single entity and.
1 Border Gateway Protocol (BGP). 2 Contents  Internet connectivity and BGP  connectivity services, AS relationships  BGP Basics  BGP sessions, BGP.
Best Practices for ISPs
Part II: Inter-domain Routing Policies. March 8, What is routing policy? ISP1 ISP4ISP3 Cust1Cust2 ISP2 traffic Connectivity DOES NOT imply reachability!
1 Network Architecture and Design Routing: Exterior Gateway Protocols and Autonomous Systems Border Gateway Protocol (BGP) Reference D. E. Comer, Internetworking.
Practical and Configuration issues of BGP and Policy routing Cameron Harvey Simon Fraser University.
Interdomain Routing and The Border Gateway Protocol (BGP) Courtesy of Timothy G. Griffin Intel Research, Cambridge UK
CS Summer 2003 Lecture 4. CS Summer 2003 Route Aggregation The process of representing a group of prefixes with a single prefix is known as.
Computer Networking Lecture 10: Inter-Domain Routing
More on BGP Check out the links on politics: ICANN and net neutrality To read for next time Path selection big example Scaling of BGP.
Internet Routing (COS 598A) Today: Interdomain Traffic Engineering Jennifer Rexford Tuesdays/Thursdays.
Ion Stoica October 2, 2002 (* this presentation is based on Lakshmi Subramanian’s slides) EE 122: Inter-domain routing – Border Gateway Protocol (BGP)
CSEE W4140 Networking Laboratory Lecture 5: IP Routing (OSPF and BGP) Jong Yul Kim
14 – Inter/Intra-AS Routing
© 2009 Cisco Systems, Inc. All rights reserved. ROUTE v1.0—6-1 Connecting an Enterprise Network to an ISP Network Considering the Advantages of Using BGP.
ROUTING PROTOCOLS PART IV ET4187/ET5187 Advanced Telecommunication Network.
Border Gateway Protocol(BGP) L.Subramanian 23 rd October, 2001.
BGP Attributes and Path Selections
Computer Networks Layering and Routing Dina Katabi
Inter-domain Routing Outline Border Gateway Protocol.
Introduction to BGP 1. Border Gateway Protocol A Routing Protocol used to exchange routing information between different networks – Exterior gateway protocol.
Internet Routing: Measurement, Modeling, and Analysis Dr. Jia Wang AT&T Labs Research Florham Park, NJ 07932, USA
Inter-domain Routing: Today and Tomorrow Dr. Jia Wang AT&T Labs Research Florham Park, NJ 07932, USA
© 2009 Cisco Systems, Inc. All rights reserved. ROUTE v1.0—6-1 Connecting an Enterprise Network to an ISP Network BGP Attributes and Path Selection Process.
Introduction to BGP.
1 Interdomain Routing (BGP) By Behzad Akbari Fall 2008 These slides are based on the slides of Ion Stoica (UCB) and Shivkumar (RPI)
CS 3700 Networks and Distributed Systems Inter Domain Routing (It’s all about the Money) Revised 8/20/15.
Understanding and Limiting BGP Instabilities Zhi-Li Zhang Jaideep Chandrashekar Kuai Xu
Lecture 4: BGP Presentations Lab information H/W update.
Jennifer Rexford Fall 2014 (TTh 3:00-4:20 in CS 105) COS 561: Advanced Computer Networks BGP.
Chapter 9. Implementing Scalability Features in Your Internetwork.
Border Gateway Protocol
Xuan Zheng (modified by M. Veeraraghavan) 1 BGP overview BGP operations BGP messages BGP decision algorithm BGP states.
BGP4 - Border Gateway Protocol. Autonomous Systems Routers under a single administrative control are grouped into autonomous systems Identified by a 16.
Border Gateway Protocol (BGP) W.lilakiatsakun. BGP Basics (1) BGP is the protocol which is used to make core routing decisions on the Internet It involves.
More on Internet Routing A large portion of this lecture material comes from BGP tutorial given by Philip Smith from Cisco (ftp://ftp- eng.cisco.com/pfs/seminars/APRICOT2004.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429/556 Introduction to Computer Networks Inter-domain routing Some slides used with.
Shivkumar Kalyanaraman Rensselaer Polytechnic Institute 1 ECSE-6600: Internet Protocols Informal Quiz #08: SOLUTIONS Shivkumar Kalyanaraman: GOOGLE: “Shiv.
Network Layer4-1 Intra-AS Routing r Also known as Interior Gateway Protocols (IGP) r Most common Intra-AS routing protocols: m RIP: Routing Information.
Interdomain Routing and BGP Routing NJIT May 3, 2003 Timothy G. Griffin AT&T Research
CSCI-1680 Network Layer: Inter-domain Routing Based partly on lecture notes by Rob Sherwood, David Mazières, Phil Levis, Rodrigo Fonseca John Jannotti.
An internet is a combination of networks connected by routers. When a datagram goes from a source to a destination, it will probably pass through many.
CS 640: Introduction to Computer Networks Aditya Akella Lecture 11 - Inter-Domain Routing - BGP (Border Gateway Protocol)
1 Agenda for Today’s Lecture The rationale for BGP’s design –What is interdomain routing and why do we need it? –Why does BGP look the way it does? How.
Text BGP Basics. Document Name CONFIDENTIAL Border Gateway Protocol (BGP) Introduction to BGP BGP Neighbor Establishment Process BGP Message Types BGP.
Michael Schapira, Princeton University Fall 2010 (TTh 1:30-2:50 in COS 302) COS 561: Advanced Computer Networks
Inter-domain Routing Outline Border Gateway Protocol.
CS 640: Introduction to Computer Networks Aditya Akella Lecture 11 - Inter-Domain Routing - BGP (Border Gateway Protocol)
Border Gateway Protocol BGP-4 BGP environment How BGP works BGP information BGP administration.
1 Internet Routing 11/11/2009. Admin. r Assignment 3 2.
1 CS716 Advanced Computer Networks By Dr. Amir Qayyum.
CS 3700 Networks and Distributed Systems
Border Gateway Protocol
BGP 1. BGP Overview 2. Multihoming 3. Configuring BGP.
CS 3700 Networks and Distributed Systems
Border Gateway Protocol
BGP supplement Abhigyan Sharma.
Interdomain Traffic Engineering with BGP
BGP Instability Jennifer Rexford
Presentation transcript:

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

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

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

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=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

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

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 65535 are “private” CSci5221: Inter-Domain Routing and BGP

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

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

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

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 128.101.0.0/16 CSci5221: Inter-Domain Routing and BGP

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

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 neighbor 129.213.1.2 remote-as 1 CSci5221: Inter-Domain Routing and BGP

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

BGP Operations (Simplified) Establish session on TCP port 179 AS1 router A 129.213.1.2 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

Establish a 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

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

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

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

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 routes out causes IP traffic to come in CSci5221: Inter-Domain Routing and BGP

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

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

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 129.213.1.1 remote-as 3847 neighbor 128.28.10.2 remote-as 3847 Router B in AS 3847 neigbhor 129.213.1.2 remote-as 3847 neighbor 127.101.1.1 remote-as 3847 Router C in AS 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

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

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

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 AS 2828 A B C D E 170.10.0.0/16 AS 1239 CSci5221: Inter-Domain Routing and BGP

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

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

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

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

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

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

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

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

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

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

CSci5221: Inter-Domain Routing and BGP 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 .201 AS 3847 B B C CSci5221: Inter-Domain Routing and BGP

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. AS 2828 A B C D E 170.10.0.0/16 AS 1239 CSci5221: Inter-Domain Routing and BGP

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Padding May Not Shut Off All Traffic AS 1 AS 3 provider provider 192.0.2.0/24 ASPATH = 2 192.0.2.0/24 ASPATH = 2 2 2 2 2 2 2 2 2 2 2 2 2 2 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 192.0.2.0/24 AS 2

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

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

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