BGP BGP • Border Gateway Protocol – 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 multiprotocol 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 192.168.0.0/24 AS6 AS5 AS6 AS2 AS1 BGP message types • OPEN – 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: – AS path: – next hop: IGP, EGP, ? seq. of ASes in path to prefix 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 Bit Bit Bit 0: 1: 2: 3: optional (0) / well-known (1) transitive (1) / non-transitive (2) partial (1) / complete (0) attr. length octet (0) or two octets (1) Classes of Attributes • Well-known mandatory – 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 1 Highest LocalPref Controlled by local or neighbour AS? local 2 Lowest AS path length neighbour 3 Lowest origin type neither 4 Lowest MED neighbour 5 eBGP-learned over iBGP-learned neither 6 Lowest IGP cost to border router local 7 Lowest router ID (to break ties) neither 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 1. Preference • add/delete/modify route attributes 2. Filtering • Eliminate certain routes from consideration; control who they will be exported to; 3. 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) – Section 4.3.5 to 4.3.6 (pp. 22)