12.3. IS-IS Extensions for IPv6RFC 2740, specifying OSPFv3, is 80 pages long. And the bulk of this chapter is devoted to just a high-level description of the protocol. In contrast, the Internet Draft describing the extension to IS-IS for support of IPv6 is a mere seven pages long,[12] reflecting the relative simplicity of the extension. Although the Internet Draft has yet to become an RFC, the extension is supported by all major router vendors and in most cases was implemented before OSPFv3.
The extension involves adding two new TLVs to the existing protocol: the IPv6 Reachability TLV and the IPv6 Interface Address TLV. These are merely IPv6 counterparts to the IPv4 TLVs added to IS-IS well over a decade ago. When an IS supports IPv6, it advertises that capability by including the IPv6 NLPID value of 142 (0x8E) in its Protocols Supported TLV. The IPv6 Reachability TLV, shown in Figure 12.21, advertises IPv6 prefixes and their associated metrics. It performs the functions that the IP Internal Reachability and IP External Reachability TLVs perform for IPv4 by including a flag designating the prefix as internal or external. The TLV also has provisions for carrying sub-TLVs, should such a capability be required in the future. Figure 12.21. The IS-IS IPv6 Reachability TLV. The TLV type, as shown in the illustration, is 236. Metric is the cost assigned to the prefix. You can see in the illustration that the TLV uses the newer wide (32 bit) metrics, discussed in Chapter 8. U is the Up/Down bit, used for preventing looping between L1 and L2, as discussed in Chapter 7. X (External) designates whether the prefix originated internally (0) or externally (1) to the IS-IS domain. S indicates, when set, that sub-TLVs are included in the TLV. If the bit is 0, the sub-TLV length and sub-TLVs fields do not exist in this TLV. Prefix Length specifies the length, in bits, of the prefix. Prefix is the IPv6 prefix, packed into an even number of octets. The number of octets containing the prefix can be calculated from the value of the Prefix Length field: prefix octets = integer of ((prefix length + 7) / 8) The IPv6 Interface Address TLV (Figure 12.22), the IPv6 counterpart of the IP Interface TLV, advertises the IPv6 addresses assigned to the interface from which it originates. Note that while the IP Interface Address TLV can carry up to 63 four-octet IPv4 interface addresses, the IPv6 Interface Address TLV can carry a maximum of 15 IPv6 interface addresses. This is a function of the 8-bit length field, which in both TLVs specifies the length of the remaining TLV (the value part) in octets, and the fact that IPv6 addresses are 16 octets each. Figure 12.22. The IS-IS IPv6 Interface Address TLV. The type of addresses carried in the IPv6 Interface Address TLV depends on the PDU in which the TLV is contained. If the TLV is in a Hello PDU, the interface addresses are only the link-local addresses of the originating interface. If the TLV is in an LSP, the interface addresses are only the non-link-local addresses of the originating interface. |