rfc-7752

North-Bound Distribution of Link-State and Traffic Engineering (TE) Information Using BGP

H. Gredler (Editor), J. Medved, S. Previdi, A. Farrel, S. Ray
date2016-03 streamIETF areartg wgidr statusPROPOSED STANDARD pages48 canonicalhttps://www.rfc-editor.org/rfc/rfc7752 doi10.17487/RFC7752 errataview
In a number of environments, a component external to a network is called upon to perform computations based on the network topology and current state of the connections within the network, including Traffic Engineering (TE) information. This is information typically distributed by IGP routing protocols within the network. This document describes a mechanism by which link-state and TE information can be collected from networks and shared with external components using the BGP routing protocol. This is achieved using a new BGP Network Layer Reachability Information (NLRI) encoding format. The mechanism is applicable to physical and virtual IGP links. The mechanism described is subject to policy control. Applications of this technique include Application-Layer Traffic Optimization (ALTO) servers and Path Computation Elements (PCEs).

obsoleted by

updated by

Extracted elements (31)

design-rationale §3

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.

bgp, routing

design-rationale §4

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.

bgp, routing, privacy

design-rationale §3.3.1.5

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.

bgp, routing

design-rationale §3.2.1

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.

bgp, routing

interoperability-note §3.2.2

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.

bgp, routing

interoperability-note §3.8

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.

bgp, routing

normative-requirement §3.3.2.1 MUST

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, routing, mpls

normative-requirement §3.4 MUST

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.

bgp, routing, ip

normative-requirement §3.2 MUST

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.

bgp, routing

normative-requirement §3.2 MUST

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.

bgp, routing

normative-requirement §3.3 MUST

The BGP-LS Attribute SHOULD only be included with Link-State NLRIs. It MUST be ignored for all other address families.

bgp, routing

normative-requirement §3.2.1.4 MUST

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.

bgp, routing

normative-requirement §3.1 MUST

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, routing

protocol-element §3.2

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.

bgp, routing, registry

protocol-element §3.3.2

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).

bgp, routing, mpls

protocol-element §3.2.2

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).

bgp, routing

protocol-element §3.2.1.4

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.

bgp, routing

protocol-element §3.3.3

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).

bgp, routing, ip

protocol-element §3.3

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.

bgp, routing

protocol-element §3.2

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.

bgp, routing

registry §5

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.

bgp, routing, registry

registry §5

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, routing, registry

security-consideration §8

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, routing, security

security-consideration §6.1.1

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.

bgp, routing, security

wire-format §3.2.3.2

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.

bgp, routing, ip

wire-format §3.2

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.

bgp, routing

wire-format §3.2.1.5

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.

bgp, routing

wire-format §3.3.1.1

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.

bgp, routing

wire-format §3.2

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.

bgp, routing

wire-format §3.3.2.3

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.

bgp, routing

wire-format §3.1

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.

bgp, routing