Signalling Unnumbered Links in CR-LDP (Constraint-Routing Label Distribution Protocol)
Extracted elements (15)
Current MPLS TE signalling does not support unnumbered links because it lacks a way to indicate an unnumbered link in Explicit Route Objects. This document adds simple CR-LDP extensions to fill that gap.
LSR identifiers for unnumbered links can be exchanged via configuration, LMP, CR-LDP (particularly for Forwarding Adjacencies), or IS-IS/OSPF extensions, giving implementations flexibility in how they bootstrap the required identifier knowledge.
If an LSR originates an LSP advertised as an unnumbered Forwarding Adjacency or uses it as an unnumbered component link, the LSR MUST allocate an identifier to that Forwarding Adjacency and the REQUEST message MUST contain an LSP_TUNNEL_INTERFACE_ID TLV with the head-end's Router ID and allocated Interface ID.
If the LSR cannot find a matching tuple when processing the IF_ID TLV with IF_INDEX, the LSR SHOULD return an error.
If the REQUEST message contains the LSP_TUNNEL_INTERFACE_ID TLV, the tail-end LSR MUST allocate an identifier to the Forwarding Adjacency and the MAPPING message MUST contain an LSP_TUNNEL_INTERFACE_ID TLV with the tail-end's Router ID and its allocated Interface ID.
Router ID MUST be a stable IP address that remains reachable even if an interface is down (typically a loopback). When using OSPF or ISIS for TE, it is RECOMMENDED that Router ID be set to the 'Router Address' (OSPF-TE) or 'Traffic Engineering Router ID' (ISIS-TE).
When processing the Explicit Route TLV and the outgoing link is unnumbered, the REQUEST message sent to the next hop MUST include the IF_ID TLV with the IP address field set to the node's Router ID and the Interface ID field set to the identifier assigned to the link by the node.
An unnumbered link must be point-to-point. Each LSR at an end of the link assigns a non-zero 32-bit identifier unique within that LSR's scope; there is no a priori relationship between the identifiers assigned by each end.
The LSP_TUNNEL_INTERFACE_ID TLV may optionally appear in a REQUEST message (called 'Forward Interface ID') or a MAPPING message (called 'Reverse Interface ID') for a given LSP.
The Unnumbered Interface ID ER-Hop belongs to an abstract node if that node's Router ID matches the ER-Hop's Router ID field and the node has an unnumbered link or Forwarding Adjacency whose local identifier equals the ER-Hop's Interface ID field.
When an LSR receives a REQUEST message with an IF_ID TLV containing an IF_INDEX TLV, it finds the link by matching the tuple <Router ID, local identifier> against <IP Address, Interface ID> in the IF_INDEX TLV; the match identifies the link for label allocation.
Two new TLV Types are assigned within the CR-LDP range (0x0800–0x08FF) defined by RFC 3212: Type 0x0836 for LSP_TUNNEL_INTERFACE_ID TLV and Type 0x0837 for Unnumbered Interface ID ER-Hop TLV. Assignment rules follow BCP 26 (RFC 2434).
This document extends CR-LDP and raises no new security issues. CR-LDP inherits the security mechanism from Section 4.0 of RFC 3036 (LDP) to protect against spoofed TCP segments injected into LDP session connection streams.
The LSP_TUNNEL_INTERFACE_ID TLV has Type 0x0836 and Length 8. It contains a 32-bit LSR Router ID field followed by a 32-bit Interface ID field.
The Unnumbered Interface ID ER-Hop TLV for the Explicit Route TLV has Type 0x0837 and Length 12. It contains an L bit (loose/strict hop indicator), a Reserved field, a 32-bit Router ID, and a 32-bit Interface ID.