Advertising a Router's Local Addresses in OSPF Traffic Engineering (TE) Extensions
updated by
- rfc-6827 — Automatically Switched Optical Network (ASON) Routing for OSPFv2 Protocols
- rfc-8687 — OSPF Routing with Cross-Address Family Traffic Engineering Tunnels
updates
- rfc-3630 — Traffic Engineering (TE) Extensions to OSPF Version 2
Extracted elements (15)
Advertising a TE link TLV for each local address (possibly with a new link type) was rejected as inefficient because the only meaningful information is the address itself, and it would require implementations to treat those TLVs specially — for instance, the TE metric sub-TLV would be mandatory yet meaningless for a local address.
OSPFv2 stub links in the router LSA and OSPFv3 intra-prefix LSAs are insufficient to learn all local addresses of a router; for subnetted P2P interfaces the stub link ID is the subnet address, and for non-subnetted interfaces it is the neighbor address, so neither reliably identifies loopback or non-TE interface addresses needed for CSPF-computed MPLS TE LSPs.
Current OSPF TE implementations (prior to this document) can only populate their Traffic Engineering Database with the router ID and local addresses of TE-enabled links; loopback and non-TE interface addresses are not distributed, preventing CSPF computation of MPLS TE LSPs to those addresses. This document extends RFC 3630 to close that gap.
A Node Attribute TLV MUST NOT carry more than one Node IPv4 Local Address sub-TLV, and MUST NOT carry more than one Node IPv6 Local Address sub-TLV.
Before any assignments can be made in sub-TLV type range 32778–65535, there MUST be a Standards Track RFC that specifies IANA Considerations covering that range.
Each local IPv6 address MUST be represented by a combination of three fields: PrefixLength, PrefixOptions, and Address Prefix, following RFC 5340 encoding procedures.
Experimental sub-TLV types in the range 32768–32777 MUST NOT be mentioned by RFCs; they are for experimental use only and will not be registered with IANA.
Local addresses that can already be learned from TE LSAs — specifically the router address and TE interface addresses — SHOULD NOT be re-advertised in the Node IPv4 or IPv6 Local Address sub-TLVs to avoid duplication.
The default behavior for a router MAY be to advertise all loopback interface addresses in the Node Attribute TLV; the actual set of addresses advertised depends on local configuration.
The Node Attribute TLV MUST NOT appear in more than one TE LSA originated by a router, and such an LSA MUST NOT include more than one Node Attribute TLV, ensuring a single authoritative advertisement per router.
The Node Attribute TLV (type 5, variable length) is a new top-level TLV in OSPF TE LSAs that carries attributes associated with a router, including its local addresses. It contains one or more sub-TLVs; this document defines sub-TLV type 1 (Node IPv4 Local Address) and sub-TLV type 2 (Node IPv6 Local Address).
IANA assigned type value 5 to the Node Attribute TLV from the top-level types in TE LSAs registry (range 3–32767, per RFC 3630). IANA also created a sub-registry for sub-TLVs of the Node Attribute TLV: value 1 is Node IPv4 Local Address, value 2 is Node IPv6 Local Address, types 3–32767 require Standards Action, types 32768–32777 are experimental (not to be mentioned in RFCs), and types 32778–65535 are unassigned pending a future Standards Track RFC.
This document does not introduce any security issues beyond those already discussed in RFC 3630 (OSPF TE extensions for OSPFv2) and RFC 5329 (TE extensions for OSPFv3); no additional mitigations are required.
The Node IPv4 Local Address sub-TLV (type 1) encodes one or more local IPv4 addresses as a sequence of <Prefix Length, Prefix> tuples: Prefix Length is 1 byte (max 32), and Prefix is 4 bytes zero-padded. The sub-TLV length is the sum of all n IPv4 address encoding lengths in octets.
The Node IPv6 Local Address sub-TLV (type 2) encodes each local IPv6 address using OSPFv3 procedures as a three-field tuple: PrefixLength (8 bits), PrefixOptions (8 bits, per RFC 5340), and Address Prefix encoded as an even multiple of 32-bit words with zero padding, consuming ceil((PrefixLength + 31) / 32) 32-bit words.