Border Gateway Protocol Autonomous Systems and Interdomain Routing (Exterior Gateway Protocol EGP) Internet Infrastructure Regional Network (Tier 2) IXP Backbone Network (Tier 1) local ISP (Tier 3) Regional Network (Tier 2) Backbone Network (Tier 1) Regional Network (Tier 2) local ISP (Tier 3) local ISP (Tier 3) IXP corporate network IXP Regional Network (Tier 2) campus network 2 Autonomous Systems • An autonomous system (AS) is a region of the Internet that is administered by a single entity and that has a unified routing policy • Each autonomous system is assigned an Autonomous System Number (ASN). Each ASN is 16bits (32 but coming soon) • 1-64511 are assigned by Regional Internet Registries • 64512-65534 are for private use and never appear on the Internet • 0 and 65535 are reserved • Example ASNs • Uof T’s campus network (AS239) • Sprint (AS1239, AS1240, AS 6211, …) • Interdomain routing is concerned with determining paths between autonomous systems (interdomain routing) • Routing protocols for interdomain routing are called exterior gateway protocols (EGP) 3 Interdomain and Intradomain Routing AS 2 AS 5 AS 1 AS 6 AS 7 AS 3 AS 4 • Routing protocols for intradomain routing are called interior gateway protocols (IGP) • Objective: shortest path, only operate within an AS • Routing protocols for interdomain routing are called exterior gateway protocols (EGP) • Objective: satisfy policy of the ASs, only operates between ASs 4 Number of Autonomous Systems 5 EGP and IGP 1 AS 2 AS 2 EGP (e.g., BGP) IGP (e.g., OSPF) IGP (e.g., RIP) • Interior Gateway Protocol (IGP) • Routing is done based on metrics • Routing domain is one autonomous system • Exterior Gateway Protocol (EGP) 6 • Routing is done based on policies • Routing domain is the entire Internet EGP • Interdomain routing is based on connectivity between autonomous systems • Interdomain routing can ignore many details of intra domain router interconnection AS 1 AS 2 AS 3 7 Multiple Routing Protocols • Multiple routing protocols can run on the same router • Each routing protocol updates the routing table RIP Process BGP Process OSPF Process routing protocol routing protocol routing table updates routing table routing table lookup incoming IP datagrams 8 IP Forwarding outgoing IP datagrams Autonomous Systems Terminology • local traffic: traffic with source and destination in AS • transit traffic: traffic that passes through the AS • Stub AS: has connection to only one AS, only carries local traffic • Multihomed Stub AS: has connection to >1 AS, but does not carry transit traffic • Transit AS: has connection to >1 AS and carries transit traffic 9 Stub and Transit Networks AS 2 AS 1 AS 4 AS 3 Settings: • AS 1 is a multi-homed stub network • AS 3 and AS 4 are transit networks • AS 2 and AS 5 are stub networks 10 AS 5 Selective Transit AS 2 AS 1 Example: • AS 3 carries traffic between AS 1 and AS 4 and between AS 2 and AS 4 • But AS 3 does not carry traffic between AS 1 and AS 2 • The example shows a routing policy. 11 AS 3 AS 4 Customer/Provider and Peers AS 2 Customer/ Provider Customer/ Provider AS 4 Customer/ Provider AS 6 AS 5 Customer/ Provider Customer/ Provider AS 7 AS 8 Peers • A stub network typically obtains access to the Internet through a transit network. • A Transit network that is a provider may be a customer for another network • Customer pays provider for service 12 Customer/Provider and Peers AS 1 AS 2 AS 3 Peers Peers Customer/ Provider Customer/ Provider Customer/ Provider AS 4 AS 5 Customer/Provider AS 6 Customer/ Provider AS 7 AS 8 • • • • Transit networks can have a peer relationship Peers provide transit between their respective customers Peers do not provide transit between peers Peers normally do not pay each other for service 13 Border Gate Protocol (BGP) • Border Gateway Protocol is the interdomain routing protocol for the Internet for routing between autonomous systems • Currently in version 4 (1995) • Network administrators can specify routing policies • BGP is a path vector protocol (Like distance vector, but routing messages in BGP contain complete routes) • Uses TCP to transmit routing messages 14 BGP and Autonomous Systems Each AS designates a border router to speak on its behalf Two border routers become BGP peers Border Gate Protocol (BGP) • An autonomous system uses BGP to advertise its network address(es) to other AS’s • BGP helps an AS to: 1. Learn about reachable networks from neighboring AS’s 2. Distribute the information about reachable networks to routers inside the AS 3. Select a route if there are multiple routes to reach the same network 16 General Principle • Although it is desirable for routers to exchange routing information, it is impractical for all routers in an arbitrarily large internet to participate in a single routing update protocol. • Routers must be divided into groups Key C/C’s of BGP • • • • • • • • • • Provides inter-autonomous system communication Propagates reachability information Follows next-hop paradigm Provides support for policies Sends path information Permits incremental updates Allows route aggregation Allows authentication Uses reliable transport (i.e., TCP) – Unusual: most routing update protocols use connectionless transport (e.g., UDP) • Sends keep alive messages so other end knows connection is valid (even if no new routing information is needed). Similar to OSPF neighbors BGP Message Types Each advertised route is specified as a network prefix with attribute values BGP Message Header Marker is an agreed upon value (synchronization pattern) between two peers. Usually all one’s, but can be used for authentication. Used to synchronize the two ends. Length gives total message length in octets Type contains one of the message types shown in previous slide BGP Open Message Opening a connection • After TCP Connection is established, peers send an OPEN msg to declare the AS number and other attributes. • Hold Time indicates the max. elapsed time between two msgs that a receiver should wait. If nothing received from a peer prior to timeout, peer considered to be down. Reset with every msg reception. KeepAlive msgs sent every 1/3 hold time value if no other msg sent. • An OPEN msg is Acked with a KeepAlive msg. • A unique BGP Identifier is used for all communications from this peer. It is one of the BGP router IP addresses. • Parm.Len indicates the length in octets of optional parameters. If none, it is zero octets. • Each Opt. Parameter is preceded by 2 octets specifying the type of parameter and the length of the parameter. Flow between Multiple ASes • For net N1 in AS1 to send traffic to net N16 in AS16: • • • • AS16 must originate and announce N16 to AS8. AS8 must accept N16 from AS16. AS8 must announce N16 to AS1 or AS34. AS1 must accept N16 from AS8 or AS34. • For two-way packet flow, similar policies must exist for N1. AS34 AS16 N16 AS1 N1 AS8 BGP interactions • The networks that are advertised are network IP addresses with a prefix, E.g., 128.100.0.0/16 AS 1 Prefixes reachable from AS 1 AS 2 Prefixes reachable from AS 3 36 AS 3 BGP interactions • • • BGP is executed between two routers • BGP session • BGP peers or BGP speakers Procedure: 1. Establishes TCP connection (port 175) to BGP peer 2. Exchange all BGP routes 3. As long as connection is alive: Periodically send incremental updates Note: Not all autonomous systems need to run BGP. On many stub networks, the route to the provider can be statically configured 37 AS 1 BGP Session AS 2 BGP interactions • BGP peers advertise reachability of IP networks • A advertises a path to a network (e.g., 10.0.0.0/24) to B only if it is willing to forward traffic going to that network • Path-Vector: • A advertises the complete path AS A, …., AS X this avoids loops 38 BGP Peer B Advertise path to 10.0.0.0/24 A 10.0.0.0/24 BGP Peer BGP Sessions • External BGP session (eBGP): Peers are in different AS’es • Internal BGP session (iBGP) Peers are in the same AS, but each peer connects to a different peer in another AS • Note that iBGP sessions use routes constructed by an intradomain routing protocol to exchange messages! 39 AS B eBGP session AS A iBGP session iBGP sessions • All iBGP peers in the same AS are fully meshed • Peer announces routes received via eBGP to iBGP peers Update from eBGP session AS A 40 Route Reflectors • Full mesh of iBGP routers is difficult to maintain • Router Reflectors (RR) present an alternative • All iBGP routers peer with the RR • RR acts as a server • Other iBGP routers become clients Update from eBGP session RR AS A 41 Content of Advertisements • A BGP router route advertisement is sent in a BGP UPDATE message • A route is announced as a Network Prefix and Attributes • Attributes specify details about a route: • Mandatory attributes: ORIGIN AS_PATH NEXT_HOP • many other attributes 42 ORIGIN attribute • Originating domain sends a route with ORIGIN attribute 10.0.1.0/24, ORIGIN {1} AS 2 AS 4 10.0.1.0/24, ORIGIN {1} 10.0.1.0/24, ORIGIN {1} AS 1 10.0.1.0/24, ORIGIN {1} 43 AS 5 AS 3 10.0.1.0/24, ORIGIN {1} AS-PATH attributes • Each AS that propagates a route prepends its own AS number • AS-PATH collects a path to reach the network prefix • Path information prevents routing loops from occurring • Path information also provides information on the length of a path (By default, a shorter route is preferred) • Note: BGP aggregates routes according to CIDR rules 10.0.1.0/24, AS-PATH {1} AS 2 AS 4 10.0.1.0/24, AS-PATH {4,2,1} 10.0.1.0/24, AS-PATH {2,1} AS 1 10.0.1.0/24, AS-PATH {1} 44 AS 5 AS 3 10.0.1.0/24, AS-PATH {3,1} NEXT-HOP attributes • Each router that sends a route advertisement, includes its own IP address of the forwarding port in a NEXT-HOP attribute • The attribute provides information for the routing table of the receiving router. 128.143.71.21 128.100.11.1 AS 1 AS 5 AS 3 45 10.0.1.0/24, NEXT-HOP {128.100.11.1} 10.0.1.0/24, NEXT-HOP {128.143.71.21} Connecting NEXT-HOP with IGP information 192.0.1.2 128.100.11.1/24 AS 1 eBGP IGP router R1 AS 3 10.0.1.0/24, NEXT-HOP {128.100.11.1} At R1: Routing table Dest. Next hop 128.100.11.0/24 192.0.1.2 BGP info 46 Dest. Next hop 10.0.1.0/24 128.100.11.1 iBGP 10.0.1.0/24, NEXT-HOP {128.100.11.1} Routing table Dest. Next hop 128.100.11.0/24 192.0.1.2 10.0.1.0/24 192.0.1.2 Route Selection • An AS may get more than one route to an address • Needs to select a route AS 1 Advertise path to 10.0.1.0/24 AS 15 Advertise path to 10.0.1.0/24 AS 3 AS 2 Advertise path to 10.0.1.0/24 Advertise path to 10.0.1.0/24 AS 4 Route Selection Criteria (in order of preference) • Highest Local Preference • Shortest AS-Path • Lowest MED (multi-exit discriminator) ( called “metric” in BGP) • Prefer iBGP over eBGP routes • Lowest IGP cost to leave AS (“hot potato”) • Lowest router ID ( used as tie breaker) 47 Local Preference AS 1 Advertise path to 10.0.1.0/24 AS 2 Local pref = 100 Local pref = 10 Advertise path to 10.0.1.0/24 AS 1 AS 5 Advertise path to 10.0.1.0/24 AS 3 Local pref = 50 Local pref = 80 Advertise path to 10.0.1.0/24 AS 4 • Local to an AS – Non Transitive (Default is 100) • Used to influence path selection – determines best outbound path • If there are multiple exit points from the AS, the local preference attribute is used to select the exit point for a specific route • Path with highest local preference wins • Local Preference is used only for iBGP sessions 48 Hot Potato Routing • Router R3 in AS A receives two advertisements to X • Which route should it pick? • Hot Potato Rule: Select the iBGP peer that has the shortest IGP route • Analogy: Get the packet out of one’s own AS as quickly as possible, i.e., on the shortest path 49 Route to X Route to X R2 R1 Route to X Route to X R3 AS A Hot Potato Routing Finding the cheapest IGP route: • Compare the cost of the two paths • R3 R1 • R3 R2 according to the IGP protocol Route to X Route to X R1 R2 Cost=6 Cost=23 • Here: R1 has the shortest path R3 • Add a routing table entry for destination X 50 AS A Hot Potato Routing can backfire! • AS1 would serve its customer (source) better by not picking the shortest (lowest cost) route to AS 2 Source Cost=20 AS 1 Cost=5 High bandwidth network Low bandwidth network AS 2 51 Destination Processing in BGP Based on attributes Apply Import Rules Select Best Route Best entry is entered in IP routing table Update IP routing table BGP updates arrive BGP updates depart IP routing table 52 Apply Export Rules Short AS-PATH does not mean that route is short AS 1 • From AS 6’s perspective • Path {AS2, AS1} is short • Path {AS5, AS4, AS3, AS1} is long AS 3 • But the number of traversed routers is larger when using the shorter AS-PATH (IGP routing in AS2 has longer route) AS 2 AS 4 AS 5 AS 6 56 BGP Issues • BGP is a simple protocol but it is very difficult to configure • BGP has severe stability issue due to policies BGP is known to not converge. • Path vectors are used to avoid cycles. 57