rfc-4781

Graceful Restart Mechanism for BGP with MPLS

Y. Rekhter, R. Aggarwal
date2007-01 streamIETF areartg wgmpls statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc4781 doi10.17487/RFC4781
A mechanism for BGP that helps minimize the negative effects on routing caused by BGP restart has already been developed and is described in a separate document ("Graceful Restart Mechanism for BGP"). This document extends this mechanism to minimize the negative effects on MPLS forwarding caused by the Label Switching Router's (LSR's) control plane restart, and specifically by the restart of its BGP component when BGP is used to carry MPLS labels and the LSR is capable of preserving the MPLS forwarding state across the restart. The mechanism described in this document is agnostic with respect to the types of the addresses carried in the BGP Network Layer Reachability Information (NLRI) field. As such, it works in conjunction with any of the address families that could be carried in BGP (e.g., IPv4, IPv6, etc.). [STANDARDS-TRACK]

Extracted elements (24)

design-rationale §1

LSRs that cannot preserve MPLS forwarding state need only implement a subset of this mechanism (excluding Sections 4.1, 4.2, 4.3, and 5); this still reduces negative impact if their neighbors can preserve forwarding state.

bgp, mpls, routing

design-rationale §7

Section 4 procedures (reconstructing same bindings) involve more computational overhead on the restarting router but require fewer label changes in neighbors, while Section 5 procedures (creating new bindings) are simpler but require twice as many labels. An LSR may mix approaches per AFI/SAFI.

bgp, mpls, routing

design-rationale §1

The mechanism is intentionally agnostic to address family types in NLRI, so it works with any address family carried in BGP (IPv4, IPv6, etc.), by treating MPLS forwarding state preservation as orthogonal to address family.

bgp, mpls, routing

interoperability-note §1

This mechanism works in conjunction with RFC 4724 (Graceful Restart for BGP) and RFC 3107 (Carrying Label Information in BGP-4); implementations must support RFC 4724 as a prerequisite.

bgp, mpls, routing

normative-requirement §6 SHOULD

A neighbor of the restarting LSR SHOULD immediately remove all NLRI and associated MPLS labels received from the restarting LSR if the Graceful Restart Capability flags indicate the LSR was unable to retain its MPLS state across the restart.

bgp, mpls, routing

normative-requirement §2 SHOULD

After restart, the LSR MUST follow procedures specified in RFC 4724, and if MPLS forwarding state was preserved, SHOULD advertise this by setting the Flag for Address Family field in the Graceful Restart Capability for all applicable AFI/SAFI pairs.

bgp, mpls, routing

normative-requirement §2 MUST

An LSR MUST implement the Graceful Restart Mechanism for BGP as specified in RFC 4724.

bgp, mpls, routing

normative-requirement §6 SHOULD

An LSR SHOULD keep a label-to-FEC binding value for as long as it has a route to the FEC. When creating a new <label, FEC> binding, the LSR SHOULD pick the least recently used label to minimize misrouting.

bgp, mpls, routing

normative-requirement §2 MUST

For each next hop reachable via an LSP, the restarting LSR MUST be able to preserve the MPLS forwarding state associated with that LSP across the restart.

bgp, mpls, routing

normative-requirement §2 MUST NOT

Labels retained from preserved MPLS forwarding state MUST NOT be used to create new local label bindings (but may be used to reconstruct existing bindings).

bgp, mpls, routing

normative-requirement §6 MUST NOT

Once an LSR releases a label, it SHALL NOT re-use that label for advertising a <label, FEC> binding to a neighbor that supports graceful restart for at least the Restart Time advertised by that neighbor. This rule applies to any label release at any time.

bgp, mpls, routing

normative-requirement §2 SHOULD

The LSR SHOULD be capable of preserving its MPLS forwarding state across the restart of its control plane, including the restart of BGP.

bgp, mpls, routing

normative-requirement §3 MUST

The SAFI in the advertised Graceful Restart Capability MUST indicate that the NLRI field carries not only addressing information but also labels.

bgp, mpls, routing

normative-requirement §5 SHOULD

Under alternative procedures, the LSR SHOULD retain the preserved MPLS forwarding state at least until it sends an End-of-RIB marker to all neighbors, and SHOULD delete the preserved state after that (with an optional configurable additional retention period via MAY).

bgp, mpls, routing

normative-requirement §5 SHOULD

Under the alternative procedures (Section 5), the LSR SHOULD have at least as many unallocated labels as labels allocated for BGP-distributed <FEC -> label> bindings preserved across the restart.

bgp, mpls, routing

normative-requirement §2 MUST

When multiple protocol components (e.g., BGP, LDP, RSVP-TE) create label bindings and the LSR supports per-component restart, the LSR MUST preserve information about which protocol assigned which labels across the restart.

bgp, mpls, routing

protocol-element §3

Capability advertisement for this mechanism uses the Graceful Restart Capability from RFC 4724, with the SAFI indicating that NLRI carries labels per RFC 3107.

bgp, mpls, routing

protocol-element §1

MPLS forwarding state is defined as one of four mappings: <incoming label -> (outgoing label, next hop)>, <FEC -> (outgoing label, next hop)>, <incoming label -> label pop, next hop>, or <incoming label, label pop>.

mpls, routing

security-consideration §8

A security issue arises if an upstream LSR continues using labels after expiration of the BGP session that caused their use, while the downstream LSR has already released and re-used those labels, potentially causing misrouting or unauthorized service access. The Restart Time extends the vulnerability window.

bgp, mpls, security

security-consideration §8

An intruder may impersonate a BGP peer to force TCP connection failure and reconnection with the Forwarding State (F) bit set to 0, causing all labels received from the peer to be released. Countermeasure: use BGP session authentication such as TCP MD5 (RFC 2385).

bgp, mpls, security

security-consideration §8

To reduce the label re-use misrouting risk, the document requires that labels are not re-used until at least the Restart Time has elapsed after release, ensuring the upstream LSR has had time to recognize session failure.

bgp, mpls, security

state-machine §4.1

For Case 1 (best route received with a non-Implicit-NULL label, LSR advertises with itself as next hop): search preserved MPLS forwarding state for matching <outgoing label, next hop>; if found, unmark entry as stale and reuse incoming label when advertising; if not found, allocate a new label.

bgp, mpls, routing

state-machine §4.2

For Case 2 (best route received without label, with Implicit NULL, or originated by LSR; LSR must generate a non-Implicit-NULL label): search preserved MPLS forwarding state for a label-pop entry with matching next hop (and FEC if per-route labels); if found, reuse incoming label; otherwise allocate new label.

bgp, mpls, routing

state-machine §4.3

For Case 3 (LSR does not set BGP next hop to self): the LSR advertises its best route using the label received with it, or with no label if none was received, without allocating a new label.

bgp, mpls, routing