IPv6 Multi Topology
Load isis.ipv6.init.cfg
#IOS-XE
config replace flash:isis.ipv6.init.cfg
#IOS-XR
configure
load bootflash:isis.ipv6.init.cfg
commit replace
y
All routers have IPv6 link-local addresses enabled on their interfaces, and a loopback IPv6 address of 2001:db8::<router num>/128.
Configure IPv6 reachability using multi topology.
Answer
#R1
int Gi2.12
ipv6 router isis
!
! Now enable wide metrics and MT for IPv6
router isis
metric-style wide
add ipv6
multi-topology
! I found the above order is necessary. If you add MT under IPv6
! before enabling IPv6 for ISIS on the interface, the MT adjacency TLV doesn't seem to work.
! This seems to be a bug since an adjacency is already established.
! However, restarting the ISIS process works to fix this issue.
#R2
int Gi2.12
ipv6 router isis
int Gi2.23
ipv6 router isis
int Gi2.24
ipv6 router isis
!
router isis
metric-style wide
add ipv6
multi-topology
#R3
int Gi2.23
ipv6 router isis
int Gi2.34
ipv6 router isis
int Gi2.36
ipv6 router isis
!
router isis
metric-style wide
add ipv6
multi-topology
#R4
int Gi2.24
ipv6 router isis
int Gi2.34
ipv6 router isis
int Gi2.46
ipv6 router isis
int Gi2.45
ipv6 router isis
!
router isis
metric-style wide
add ipv6
multi-topology
#R5
int Gi2.45
ipv6 router isis
int Gi2.56
ipv6 router isis
int Gi2.519
ipv6 router isis
!
router isis
metric-style wide
add ipv6
multi-topology
#R6
int Gi2.36
ipv6 router isis
int Gi2.46
ipv6 router isis
int Gi2.56
ipv6 router isis
int Gi2.619
ipv6 router isis
!
router isis
metric-style wide
add ipv6
multi-topology
#XR1
router isis 1
add ipv4
metric-style wide
add ipv6
int lo0
add ipv6
int Gi0/0/0/0.519
add ipv6
int Gi0/0/0/0.619
add ipv6
int Gi0/0/0/0.1920
add ipv6
#XR2
router isis 1
add ipv4
metric-style wide
add ipv6
int lo0
add ipv6
int Gi0/0/0/0.1920
add ipv6
Explanation
When adding IPv6 MT, it is not a disruptive change like we saw with single topology. If wide metrics are already enabled everywhere, the neighborship stays up and IPv4 reachability is maintained, but you will see a note that the topology changed.

Even though the protocols supported in the NLPIDs field don’t match at the moment, ISIS for IPv4 still works. The routers understands that the protocols each have their own separate topology, so IPv4 can still work separately. In the screenshot above, R1 has IPv4 and IPv6 with multi-topology enabled, and R2 has only IPv4 enabled. R2 notes that R1 has added IPv6 but IPv6 has its own separate topology ID (2) so we can still use IPv4 as normal.
In IPv6 MT, there are two separate topologies - one for each address-family. This allows you to be more flexible with your IPv6 routing. IPv6 can have its own metric, and IPv6 traffic can take a different path than IPv4. However, this is at the expense of greater CPU and memory usage, as a completely separate IPv6 topology is maintained.
MT is the default mode for IPv6 on XRv, but must be enabled on IOS-XE. MT requires wide metrics to be enabled on IOS-XE. Interestingly, wide metrics for IPv4 do not appear to need to be enabled on IOS-XR for MT to work.
In addition to the two NLPIDs we saw with single topology, MT adds a new TLV to the Hello. This allows neighbors to know that each other are running MT.

There is also a second “Multi Topology IS reachability” TLV for every neighbor in the LSP. This is the isis ipv6 metric specified on the interface. The topology ID points to the IPv6 topology number (0x002) found in the Multi Topology TLV. Having an additional IS reachability TLV per topology keeps each topology completely independent from other topologies.

IPv6 prefixes are advertised with a multi topology IPv6 reachable prefixes TLV. This allows routers to know that the prefix belongs to the IPv6 topology, and not the IPv4 topology:

We can verify that there are two separate topologies using the show isis topology and show isis ipv6 topology commands:

Last updated