Border Gateway Protocol - Link State (BGP-LS) Extensions for Segment Routing BGP Egress Peer Engineering
Extracted elements (24)
A new BGP-LS Protocol-ID for BGP was introduced to allow separation and differentiation between BGP-LS NLRIs carrying BGP peering information and those carrying IGP link-state information defined in RFC 7752, enabling clean co-existence of both information types.
The <ASN, BGP Router-ID> tuple is globally unique (per RFC 6286 requiring Router-ID uniqueness within an AS and non-zero), so their combined use in Node Descriptors maps BGP-LS NLRIs with BGP protocol-ID to a unique BGP router in the administrative domain.
This document specifies extensions only for the SR-MPLS data plane; corresponding extensions for SRv6 are specified separately in draft-ietf-idr-bgpls-srv6-ext.
While extensions are defined for EBGP, they can also be used for IBGP sessions; however, applicability for IBGP is limited to deployments where the IBGP peer is also along the forwarding data path, as IBGP sessions to route reflectors typically are not in the forwarding path.
BGP Peering SID values SHOULD be persistent across router restart; a BGP router with IBGP sessions to route reflectors SHOULD NOT instantiate BGP Peering SIDs for peers not in the forwarding path.
BGP Router-ID (TLV 516) and Autonomous System Number (TLV 512) MUST be included as Local Node Descriptors and Remote Node Descriptors when distributing BGP information via BGP-LS NLRI.
Each BGP session MUST be described by a PeerNode SID; one PeerNode SID MUST be instantiated to describe the BGP peer session for each BGP peer session enabled for Egress Peer Engineering.
For PeerAdj SID advertisement, Link Descriptors MUST include the Link Local/Remote Identifiers TLV (258) containing the 4-octet Link Local Identifier followed by the 4-octet Link Remote Identifier; value 0 is used by default when the remote identifier is unknown.
Reserved bits in the Peering SID TLV Flags field MUST be zero when originated and ignored when received.
The operator MUST be provided with options for configuring, enabling, and disabling advertisement of each PeerNode SID, PeerAdj SID, and PeerSet SID, as well as control of which information is advertised to which peer.
When a SID carries a 3-octet local label value (20 rightmost bits), the V- and L-Flags MUST be SET; when carrying a 4-octet SRGB index, the SRGB MUST be advertised using extensions defined in RFC 9085.
When enabled for Egress Peer Engineering, the BGP router MUST include the PeerNode SID TLV in the BGP-LS Attribute for the BGP-LS Link NLRI corresponding to its BGP peering sessions.
BGP-LS Protocol-ID 7 is defined for BGP as the NLRI information source protocol, allowing separation and differentiation between BGP-LS NLRIs carrying BGP information from those carrying IGP link-state information.
BGP Router-ID Node Descriptor TLV (Type 516) carries a 4-octet unsigned non-zero integer representing the BGP Identifier as defined in RFC 6286.
Member-AS Number (Member-ASN) Node Descriptor TLV (Type 517) carries a 4-octet unsigned non-zero integer representing the Member-AS Number per RFC 5065, used for BGP confederation member identification.
PeerAdj SID TLV (code point 1102) carries a SID associated with a specific underlying link to the BGP peer with NEXT SR operation semantics where the next-hop is the interface peer address.
PeerNode SID TLV (code point 1101) carries a SID with NEXT SR operation semantics, where the next-hop is the connected peering node. It is advertised in BGP-LS Link NLRI with local and remote BGP Router-ID/ASN descriptors and BGP session address link descriptors.
PeerSet SID TLV (code point 1103) carries a SID shared amongst BGP peer nodes or underlying links with NEXT SR operation semantics, where the next-hop load-balances across any connected interface to any peer in the associated peer set.
Three types of BGP Peering Segments are defined: PeerNode SID (steer to a specific peer node), PeerAdj SID (steer over a specific local interface towards a specific peer), and PeerSet SID (load-balance to a set of specific peer nodes).
IANA allocated Protocol-ID 7 for BGP in the 'BGP-LS Protocol-IDs' registry. Two new Node Descriptor TLVs (516: BGP Router-ID, 517: BGP Confederation Member) and three new Link Attribute TLVs (1101: PeerNode SID, 1102: PeerAdj SID, 1103: PeerSet SID) were added to the 'BGP-LS Node Descriptor, Link Descriptor, Prefix Descriptor, and Attribute TLVs' registry.
BGP-EPE enables engineering of traffic leaving an administrative domain, so BGP peering information collected via BGP-LS must be limited to specific consumers in a secure manner. Segment Routing operates within a trusted domain (RFC 8402), and its security considerations also apply to BGP Peering Segments.
Isolation of BGP-LS peering sessions is required to ensure that BGP-LS topology information (including BGP peering topology) is not advertised to an external BGP peering session outside an administrative domain.
BGP Peering SID TLV format consists of: 2-octet Type (1101/1102/1103), 2-octet Length (7 or 8), 1-octet Flags (V/L/B/P bits), 1-octet Weight, 2-octet Reserved, and a variable SID/Label/Index field (3 octets for label, 4 octets for index).
The Peering SID TLV Flags field is 1 octet with V-Flag (value/label), L-Flag (local significance), B-Flag (backup/FRR eligible), P-Flag (persistent allocation), and reserved bits that MUST be zero on origination and ignored on receipt.