Routing IPv6 with IS-IS
updated by
- rfc-7775 — IS-IS Route Preference for Extended IP and IPv6 Reachability
Extracted elements (20)
A single 'external' bit in the IPv6 Reachability TLV replaces the two separate IPv4 reachability TLVs (internal vs. external) from RFC 1195, simplifying the design while preserving the semantic distinction needed for redistribution.
The IPv6 Reachability TLV packs the prefix so that only the minimum required octets are transmitted, computed as ceiling((prefix_length)/8). This avoids wasting LSP space for short prefixes.
The extended metric and up/down semantics are adopted directly from RFC 5305 (IS-IS Extensions for Traffic Engineering). The MAX_V6_PATH_METRIC (0xFE000000) replaces the original MAX_PATH_METRIC (1023) from RFC 1195.
If a prefix is advertised with a metric larger than MAX_V6_PATH_METRIC (0xFE000000), this prefix MUST NOT be considered during the normal SPF computation.
If a prefix was distributed into IS-IS from another routing protocol, the external bit SHALL be set to 1.
If an IS supports IPv6 routing using IS-IS, it MUST advertise the IPv6 NLPID (0x8E) in the NLPID TLV.
If during SPF a path metric would exceed MAX_V6_PATH_METRIC (0xFE000000), it SHALL be considered to be MAX_V6_PATH_METRIC.
If multiple paths remain tied after up/down and metric comparison, they SHOULD be considered for equal-cost multi-path (ECMP) routing if the router supports it; otherwise the router may select any one.
In Hello PDUs, the IPv6 Interface Address TLV MUST contain only the link-local IPv6 addresses assigned to the interface sending the Hello.
In LSPs, the IPv6 Interface Address TLVs MUST contain only the non-link-local IPv6 addresses assigned to the IS.
Link-local prefixes MUST NOT be advertised using the IPv6 Reachability TLV (type 236).
The order of preference for paths to a given prefix MUST consider the up/down bit: Level 1 up > Level 2 up > Level 2 down > Level 1 down. Among equal-preference paths, selection is based on metric.
The up/down bit SHALL be set to 0 when a prefix is first injected into IS-IS. If a prefix is advertised from a higher level to a lower level (e.g., level 2 to level 1), the bit SHALL be set to 1. Prefixes with the up/down bit set to 1 may only be advertised down the hierarchy.
The IPv6 Interface Address TLV is TLV type 232 (0xE8). It carries 0 to 15 IPv6 interface addresses, each 16 octets long, analogous to the IPv4 Interface Address TLV from RFC 1195.
The IPv6 Network Layer Protocol ID (NLPID) value is 142 (0x8E), used to signal IPv6 routing capability in the NLPID TLV, following the same mechanism as IPv4 in RFC 1195.
The IPv6 Reachability TLV is TLV type 236 (0xEC). It carries a routing prefix, 4-octet metric, up/down bit (U), external bit (X), sub-TLV present bit (S), prefix length, and packed prefix octets. Sub-TLVs follow the standard TLV format if the S bit is set.
IANA updated the IS-IS codepoint registry so that TLV codes 232 and 236 refer to RFC 5308. IANA also created a new Sub-TLV codepoint registry for Sub-TLVs of TLV 236, with value range 0–255, requiring Designated Expert approval for allocations; all codepoints are initially unassigned.
RFC 5308 raises no new security considerations. Security for IS-IS is covered by ISO 10589 and RFC 5304 (IS-IS Cryptographic Authentication).
IPv6 Interface Address TLV (type 232) encodes a variable number (0–15) of 16-octet IPv6 addresses. Total length is a multiple of 16 octets.
IPv6 Reachability TLV (type 236) encodes a 4-octet metric, 3 flag bits (U/X/S), 5 reserved bits, a 1-octet prefix length, and a packed prefix of ceiling(prefix_length/8) octets, followed by an optional sub-TLV length octet and sub-TLVs.