Multiprotocol Extensions for BGP-4
obsoletes
- rfc-2858 — Multiprotocol Extensions for BGP-4
updated by
- rfc-7606 — Revised Error Handling for BGP UPDATE Messages
Extracted elements (24)
MP_REACH_NLRI and MP_UNREACH_NLRI are defined as optional non-transitive attributes to provide backward compatibility, so that BGP speakers not supporting multiprotocol extensions will silently ignore these attributes rather than propagating or rejecting them.
Reachable destinations are grouped with next hop information in MP_REACH_NLRI, and segregated from unreachable destinations (MP_UNREACH_NLRI), because next hop information is meaningful only with reachable destination advertisements.
SAFI value 3 was assigned by RFC 2858 for a use that was never fully implemented and is deprecated by this document; it is now reserved.
SAFI values 128-240 were 'private use' in RFC 2858; this document recognizes currently allocated values and reserves the unused ones (130, 131, 135-139, 141-240) to avoid conflicts.
This document renames the Number of SNPAs field in MP_REACH_NLRI to Reserved and removes all SNPA-related information, representing a breaking change from RFC 2858.
This document restricts MP_REACH_NLRI and MP_UNREACH_NLRI to carry only a single instance of <AFI, SAFI, ...> per attribute, clarifying ambiguity from RFC 2283 which allowed multiple instances.
A BGP speaker using Multiprotocol Extensions SHOULD use Capability Advertisement to determine whether a peer supports the extensions before using them.
An UPDATE message carrying MP_REACH_NLRI MUST also carry ORIGIN and AS_PATH attributes in both EBGP and IBGP exchanges; in IBGP exchanges it MUST also carry LOCAL_PREF.
An UPDATE message containing MP_UNREACH_NLRI is not required to carry any other path attributes.
An UPDATE message SHOULD NOT include the same address prefix (of the same <AFI, SAFI>) in more than one of: WITHDRAWN ROUTES, Network Reachability Information, MP_REACH_NLRI, or MP_UNREACH_NLRI fields; processing of such a message is undefined.
An UPDATE message that carries no NLRI other than in MP_REACH_NLRI SHOULD NOT carry the NEXT_HOP attribute; if it does, the receiver SHOULD ignore NEXT_HOP.
If a BGP speaker receives an UPDATE with an incorrect MP_REACH_NLRI or MP_UNREACH_NLRI attribute, it MUST delete all BGP routes from that neighbor with the same AFI/SAFI, and SHOULD ignore all subsequent routes with that AFI/SAFI for the duration of the session.
If the Next Hop in MP_REACH_NLRI is allowed to be from more than one Network Layer protocol, the encoding of the Next Hop MUST provide a way to determine its Network Layer protocol.
The Reserved field in MP_REACH_NLRI MUST be set to 0 by the sender and SHOULD be ignored upon receipt.
To enable bi-directional exchange of routing information for a particular <AFI, SAFI>, each BGP speaker MUST advertise to the other via Capability Advertisement the capability to support that <AFI, SAFI>.
Upon receiving an incorrect MP_REACH_NLRI or MP_UNREACH_NLRI, the speaker MAY terminate the BGP session; if terminated, it SHOULD send a Notification with code/subcode 'UPDATE Message Error'/'Optional Attribute Error'.
MP_REACH_NLRI (Type Code 14) is an optional non-transitive BGP path attribute used to advertise feasible routes and next hop information for multiple network layer protocols, identified by a combination of AFI and SAFI.
MP_UNREACH_NLRI (Type Code 15) is an optional non-transitive BGP path attribute used to withdraw multiple unfeasible routes, encoded as AFI (2 octets), SAFI (1 octet), and Withdrawn Routes (variable).
Subsequent Address Family Identifier (SAFI) values defined in this document: 1 for unicast forwarding NLRI, 2 for multicast forwarding NLRI. An implementation MAY support all, some, or none of these values.
The SAFI namespace is maintained by IANA: values 1-2 assigned here, 3 deprecated/reserved, 5-63 via Standards Action or Early IANA Allocation, 67-127 via First Come First Served, 128-240 partially reserved (unused values 130, 131, 135-139, 141-240 reserved), 241-254 private use, 0 and 255 reserved.
The multiprotocol extensions to BGP-4 do not change the underlying security issues inherent in existing BGP; no new security mechanisms are introduced or required.
MP_REACH_NLRI encodes: AFI (2 octets), SAFI (1 octet), Length of Next Hop Network Address (1 octet), Network Address of Next Hop (variable), Reserved (1 octet, MUST be 0), and NLRI (variable).
NLRI is encoded as one or more 2-tuples of the form <Length (1 octet, in bits), Prefix (variable, padded to octet boundary)>. A length of zero matches all addresses.
The Multiprotocol Extensions capability value is a 4-octet field containing AFI (16 bits), Reserved (8 bits, SHOULD be 0), and SAFI (8 bits), advertised via BGP Capability Advertisement with Capability Code 1.