North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP
obsoleted by
- rfc-9552 — Distribution of Link-State and Traffic Engineering Information Using BGP
updated by
- rfc-9029 — Updates to the Allocation Policy for the Border Gateway Protocol - Link State (BGP-LS) Parameters Registries
Extracted elements (31)
Link-state and TE information is represented in an IGP-neutral encoding so that consuming applications (PCE, ALTO) do not need protocol-specific knowledge of OSPF or IS-IS. TLV encodings were drawn from IS-IS sub-TLV formats but are defined to carry data sourced by either IS-IS or OSPF.
Link-to-path aggregation is supported to address scaling and privacy concerns with distributing full inter-domain topology. An ASBR may advertise an 'aggregate link' representing the properties of a multi-hop path rather than exposing individual links; the decision is an operator policy choice.
Opaque Node, Link, and Prefix Attribute TLVs (codes 1025, 1097, 1157) are provided to transparently carry protocol-specific or newly defined IGP attributes for which no protocol-neutral BGP-LS representation yet exists, bridging the publication lag between IGP extensions and BGP-LS updates.
The AS Number and BGP-LS Identifier sub-TLVs together disambiguate Router-IDs that may be non-globally-unique (e.g., RFC 1918 private addresses used as IS-IS/OSPF Router-IDs), ensuring global uniqueness of node/link/prefix identifiers within the BGP-LS database.
A logical point-to-point link is represented as two unidirectional 'half-links'; two originating routers each advertise one Link NLRI for the same link. A broadcast LAN uses a pseudonode: IS-IS pseudonodes use a 7-octet IGP Router-ID (6-octet ISO-ID + 1-octet PSN), while OSPF pseudonodes use the DR's Router-ID concatenated with the DR's interface address or interface ID.
During OSPFv2-to-IS-IS migration, the IPv4 Router-ID present in both the OSPF Node Descriptor and as an IS-IS link attribute TLV (types 1028/1030) serves as the 'glue' that allows a single physical link to be correlated across two simultaneously active IGP protocols.
All auxiliary Router-IDs of both the local and the remote node MUST be included in the link attribute of each Link NLRI. The MPLS Protocol Mask TLV MUST NOT be included in NLRIs whose Protocol-ID is an IGP value (IS-IS or OSPF).
BGP link-state next-hop addresses MUST be encoded as described in RFC 4760. If next-hop length is 4 it is IPv4; if 16 it is a global IPv6 address; if 32, it is a global IPv6 address followed by a link-local IPv6 address.
In order for two BGP speakers to exchange Link-State NLRI, they MUST use BGP Capabilities Advertisement (capability code 1, multi-protocol BGP) with AFI 16388 / SAFI 71 for BGP-LS or AFI 16388 / SAFI 72 for BGP-LS-VPN.
NLRIs representing link-state objects from the same routing universe MUST carry the same Identifier value. NLRIs with different Identifier values MUST be considered to be from different routing universes.
The BGP-LS Attribute SHOULD only be included with Link-State NLRIs. It MUST be ignored for all other address families.
The combination of ASN and BGP-LS Identifier MUST be globally unique. All BGP-LS speakers within an IGP flooding-set MUST use the same ASN and BGP-LS ID tuple. Sub-TLVs within a Node Descriptor MUST be arranged in ascending order by sub-TLV type.
Unrecognized TLV types MUST be preserved and propagated. All TLVs MUST be ordered in ascending order by TLV Type; where multiple TLVs share the same type, they MUST be ordered in ascending order of the TLV value treated as an opaque hexadecimal string.
BGP-LS uses two new address family combinations to carry link-state NLRI: AFI 16388 / SAFI 71 for non-VPN link, node, and prefix information, and AFI 16388 / SAFI 72 for VPN link, node, and prefix information.
Link Attribute TLVs in the BGP-LS Attribute include Administrative group/color (1088), Maximum link bandwidth (1089), Max. reservable link bandwidth (1090), Unreserved bandwidth (1091), TE Default Metric (1092, 4 octets), IGP Metric (1095, variable), SRLG (1096), MPLS Protocol Mask (1094), and Opaque Link Attribute (1097).
Link Descriptor TLVs uniquely identify a unidirectional 'half-link' among parallel links between a node pair. Defined TLVs include: Link Local/Remote Identifiers (258), IPv4 interface address (259), IPv4 neighbor address (260), IPv6 interface address (261), IPv6 neighbor address (262), and Multi-Topology Identifier (263).
Node Descriptor Sub-TLVs identify a node uniquely within a BGP-LS domain. Defined sub-TLVs are: Autonomous System (code 512, 4 octets), BGP-LS Identifier (code 513, 4 octets), OSPF Area-ID (code 514, 4 octets), and IGP Router-ID (code 515, variable). IGP Router-ID is mandatory.
Prefix Attribute TLVs include IGP Flags (1152, 1 octet; bits D/N/L/P for IS-IS Up/Down and OSPF flags), IGP Route Tag (1153, 4*n octets), Extended IGP Route Tag (1154, 8*n octets), Prefix Metric (1155, 4 octets), OSPF Forwarding Address (1156, 4 or 16 octets), and Opaque Prefix Attribute (1157, variable).
The BGP-LS Attribute (BGP path attribute code 29) is an optional, non-transitive attribute carrying link, node, and prefix properties as TLV triplets. Node Attribute TLVs (1024–1029) include Node Flag Bits, Node Name, IS-IS Area Identifier, and local IPv4/IPv6 Router-IDs.
The Protocol-ID field in each NLRI identifies the source routing protocol: IS-IS Level 1 (1), IS-IS Level 2 (2), OSPFv2 (3), Direct (4), Static configuration (5), OSPFv3 (6). The 64-bit Identifier field distinguishes independent routing universes (instance-IDs), with value 0 reserved for the default Layer 3 topology.
IANA assigned AFI 16388 (BGP-LS) in the Address Family Numbers registry, SAFI 71 (BGP-LS) and SAFI 72 (BGP-LS-VPN) in the SAFI Values registry, and BGP Path Attribute code 29 (BGP-LS Attribute) in the BGP Path Attributes registry.
IANA created the 'Border Gateway Protocol - Link State (BGP-LS) Parameters' registry group containing four sub-registries: BGP-LS NLRI-Types, BGP-LS Protocol-IDs, BGP-LS Well-Known Instance-IDs, and BGP-LS Node Descriptor / Link Descriptor / Prefix Descriptor / Attribute TLVs. All use 'Specification Required' with Designated Expert review.
BGP-LS distributes detailed network topology and TE information to external consumers, creating a risk of topology exposure. A BGP speaker MUST apply configurable policy to control what information is distributed, allowing operators to distribute real physical topology, an abstracted virtual topology, or a mix, and to rate-limit updates to consumers.
BGP-LS NLRI carries application-level data with no direct forwarding-state impact, but churn in this NLRI can still burden BGP infrastructure. Distribution via dedicated route reflectors is anticipated to provide isolation and fault containment between BGP-LS NLRI and regular BGP updates.
The IP Reachability Information TLV (code 265) is mandatory in Prefix NLRIs. It contains a 1-octet Prefix Length followed by the most-significant octets of the IP prefix (packed, not padded to a fixed width). Length is variable.
The Link-State NLRI envelope consists of a 16-bit NLRI Type and a 16-bit Total NLRI Length, followed by variable-length Link-State NLRI content. The VPN variant prepends an 8-octet Route Distinguisher before the NLRI content. NLRI Types are: 1=Node, 2=Link, 3=IPv4 Topology Prefix, 4=IPv6 Topology Prefix.
The Multi-Topology ID TLV (Type 263) carries one or more IS-IS or OSPF Multi-Topology IDs, each 2 octets wide (4 reserved bits + 12-bit MT-ID). Length is 2*n where n is the count of MT-IDs. For OSPF-derived values, the upper 9 bits MUST be set to 0.
The Node Flag Bits TLV (code 1024, length 1 octet) carries a bit mask: O=Overload, T=Attached, E=External, B=ABR, R=Router, V=V6, followed by reserved bits. These map to IS-IS and OSPF node role flags.
The Node NLRI (Type=1) contains: Protocol-ID (1 octet), Identifier (8 octets / 64 bits), and variable-length Local Node Descriptors. The Link NLRI (Type=2) additionally includes Remote Node Descriptors and Link Descriptors.
The TE Default Metric TLV (code 1092, length 4 octets) carries the TE metric as a 32-bit value. If the source protocol uses fewer than 32 bits, the high-order bits MUST be zero-padded. The IGP Metric TLV (code 1095) is variable: 1 octet for IS-IS small metric, 2 for OSPF, 3 for IS-IS wide metric.
The TLV format consists of a 16-bit Type field, a 16-bit Length field (length of value portion in octets, zero if no value), and a variable-length Value field. The TLV is not padded to 4-octet alignment.