BGP
BGP Border Gateway Protocol Routing between Autonomous Systems (ASes) Currently version 4 RFC 4271 TCP port 179 Routing between Autonomous Systems (ASes) Decentralised routing Allows an AS to advertise that it exists Each AS advertises routes it has, leaves decision about whether to use them or not to peer Originally supported IPv4; these days multi-protocol
Autonomous System set of routers under same administrative control owned/operated by same entity identified by a unique number autonomous system number (ASN) historically a 16-bit value public range: 1-64511 private range: 64512-65535
Autonomous Systems AS3 AS4 AS1 AS2 AS5 AS6
Autonomous Systems AS1 AS2 eBGP iBGP
BGP Path-Vector protocol Routing information includes the AS path a route has traversed A router prepends its AS number to any route it receives before advertising it A router discards any AS path that includes its ASN in it Why?
Autonomous Systems AS3 AS4 AS1 AS2 192.168.0.0/24 AS5 AS6
BGP message types OPEN KEEPALIVE UPDATE NOTIFICATION Establish BGP session with peer; negotiate hold time, advise ASN. KEEPALIVE Periodic message sent so a router knows a peer is still up in absence of updates UPDATE Routes added or withdrawn NOTIFICATION Error condition encountered
BGP Message Format marker length type Marker: all ones in most cases; can be used for MD5 authentication. Length: 19-4096 bytes Type: one of four values (open, update, notification, keepalive)
UPDATE Message An exterior gateway protocol calls for incremental changes to routing table. reduce volume of traffic to synchronise routing through the network An UPDATE message advises when new routes are available Network Layer Reachability Information (NLRI) when a route is withdrawn
IP address prefix +---------------------------+ | Length (1 octet) | | Prefix (variable) | IPv4 routes are described in CIDR format and encoded as <Length, Prefix>; e.g. 130.216.0.0/15 00001111 10000010 11011000 (15) (130) (216)
UPDATE Message +-----------------------------------------------------+ | Withdrawn Routes Length (2 octets) | | Withdrawn Routes (variable) | | Total Path Attribute Length (2 octets) | | Path Attributes (variable) | | Network Layer Reachability Information (variable) | Section 4.3, UPDATE message format, RFC 4271
Withdrawing Routes The prefixes to withdraw (if any) are specified in the withdrawn routes section The receiver finds the appropriate prefix previously announced by the peer and removes that one When a BGP connection is closed, all routes advertised from that connection are withdrawn by the peers
Advertising Routes New routes, and their attributes, are specified in the NLRI and path attributes sections Mandatory attributes: origin: IGP, EGP, ? AS path: seq. of ASes in path to prefix next hop: IP address of router to use
Other Attributes MED (Multi Exit Discriminator) Local Pref Community …
Attributes 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attr. Flags |Attr. Type Code| Bit 0: optional (0) / well-known (1) Bit 1: transitive (1) / non-transitive (2) Bit 2: partial (1) / complete (0) Bit 3: attr. length octet (0) or two octets (1)
Classes of Attributes Well-known mandatory Well-known discretionary BGP speaker MUST understand it and MUST include it in NLRI Well-known discretionary BGP speaker MUST understand it and MAY include it in NLRI Optional transitive BGP speaker MAY understand it but MUST forward attribute if received in NLRI – sets partial bit to 1 Optional non-transitive BGP speaker MAY understand it but MUST NOT forward attribute received in NLRI
Multiprotocol BGP (MBGP) BGP was designed to organise global IPv4 routing MBGP: a set of extensions to enable other types of routes to be chucked around using the attributes section Optional, non-transitive Has to be negotiated at OPEN. MP-Reach-NLRI (type 14) MP-Unreach-NLRI (type 15) RFC 4760
MP-Reach-NLRI +---------------------------------------------------------+ | Address Family Identifier (2 octets) | | Subsequent Address Family Identifier (1 octet) | | Length of Next Hop Network Address (1 octet) | | Network Address of Next Hop (variable) | | Reserved (1 octet) | | Network Layer Reachability Information (variable) | Source: Page 3, RFC 4760
BGP decision process Step Attribute Controlled by local or neighbour AS? 1 Highest LocalPref local 2 Lowest AS path length neighbour 3 Lowest origin type neither 4 Lowest MED 5 eBGP-learned over iBGP-learned 6 Lowest IGP cost to border router 7 Lowest router ID (to break ties) Source: BGP routing policies in ISP networks, Caesar and Rexford.
BGP Communities Administrative tag used to associate routes together Assists in implementing administrative routing policy Optional transitive attribute. Well-known communities: No-Export; do not advertise outside of this AS No-Advertise; do not advertise further No-Export-Subconfed; do not advertise outside selected portion of AS.
Processing Route Advertisements Applying Policy Import policy Filter routes from going further Append or modify attributes Decision process Export policy Which neighbours will receive the route Don’t want to carry traffic you aren’t being paid to carry Source: BGP routing policies in ISP networks, Caesar and Rexford.
Routing Policy Import policy Protect network from bad advertisements Advertising private or unallocated address space Customer advertising default route to provider Promote aggregation through filtering NLRI with prefixes longer than particular value
Configuring Local Policies Preference add/delete/modify route attributes Filtering Eliminate certain routes from consideration; control who they will be exported to; Tagging Associate additional state with a route using community attribute
Further Reading BGP routing policies in ISP networks; Matthew Caesar and Jennifer Rexford RFC 4760: Multiprotocol Extensions for BGP-4 RFC 4271: A Border Gateway Protocol 4 (BGP-4)
Next lecture reading RFC 4364 Section 3 to 4.3.2 (pp. 8-19)