Multitopology

ISIS does not use IP (layer 3) to communicate. ISIS operates at layer 2, which makes it agnostic to layer 3 information. In ISIS it is very easy to add IPv6 support, whereas OSPF required an entire new version, OSPFv3.

If you’d like to run IPv4 and IPv6 in ISIS you have a choice - multi-topology or single topology. What is confusing is that, by default, IOS-XE uses single topology and IOS-XR uses multi-topology.

Single topology

In this case, a single topology is used, and both IPv4 and IPv6 prefixes are placed in this topology. IPv4 and IPv6 prefixes advertised by the same node will always have identical paths, because only a single topology is used to calculate paths. The benefit of single topology is that it requires only a single SPF run for both IPv4 and IPv6 shortest path determination.

Multi-topology

In this case, there is a topology for only IPv4, and a separate topology for only IPv6. Paths between two nodes for IPv4 and IPv6 prefixes on the same node can be different, as there is a topology for calculating IPv4 paths and a separate topology for calculating IPv6 paths. The benefit of this is that each router in the area can run only IPv4, only IPv6, or a mix. (With single topology, all routers have to support both IPv4 and IPv6). Another benefit is that you can control paths for IPv4 and IPv6 traffic independently. The drawback is that you have two full SPFs runs when determining paths for IPv4 and IPv6 destinations.

Lab (Single Topology)

We will use the following topology to examine single topology and multi-topology.

Here are the startup-configs:

#R1
hostname R1
line con 0
 logging sync
!
ipv6 unicast-routing
!
int Gi1
 ip address 10.1.2.1 255.255.255.0
 ipv6 address 2001:db8:1:2::1/64
 ip router isis
 ipv6 router isis
 isis network point-to-point
 no shut
!
int lo0
 ip address 1.1.1.1 255.255.255.255
 ipv6 address 2001:db8::1/128
 ip router isis
 ipv6 router isis
!
router isis
 net 49.0001.0000.0000.0001.00
 is-type level-1

#R2
hostname R2
line con 0
 logging sync
!
ipv6 unicast-routing
!
int Gi1
 ip address 10.1.2.2 255.255.255.0
 ipv6 address 2001:db8:1:2::2/64
 ip router isis
 ipv6 router isis
 isis network point-to-point
 no shut
!
int Gi2
 ip address 10.2.4.2 255.255.255.0
 ipv6 address 2001:db8:2:4::2/64
 ip router isis
 ipv6 router isis
 isis network point-to-point
 no shut
!
int Gi3
 ip address 10.2.3.2 255.255.255.0
 ipv6 address 2001:db8:2:3::2/64
 ip router isis
 ipv6 router isis
 isis network point-to-point
 no shut
!
int lo0
 ip address 2.2.2.2 255.255.255.255
 ipv6 address 2001:db8::2/128
 ip router isis
 ipv6 router isis
!
router isis
 net 49.0001.0000.0000.0002.00
 is-type level-1

#XR3
hostname XR3
!
int Gi0/0/0/0
 ip address 10.3.4.3/24
 ipv6 address 2001:db8:3:4::3/64
 no shut
!
int Gi0/0/0/1
 ip address 10.2.3.3/24
 ipv6 address 2001:db8:2:3::3/64
 no shut
!
int Gi0/0/0/2
 ip address 10.3.5.3/24
 ipv6 address 2001:db8:3:5::3/64
 no shut
!
int Lo0
 ip address 3.3.3.3/32
 ipv6 address 2001:db8::3/128
!
router isis 1
 net 49.0001.0000.0000.0003.00
 is-type level-1
 address-family ipv6 unicast
  single-topology
 int Gi0/0/0/0
  address-family ipv4 unicast
   exit
  address-family ipv6 unicast
   exit
  point-to-point
 int Gi0/0/0/1
  address-family ipv4 unicast
   exit
  address-family ipv6 unicast
   exit
  point-to-point
 int Gi0/0/0/2
  address-family ipv4 unicast
   exit
  address-family ipv6 unicast
   exit
  point-to-point
 int Lo0
  address-family ipv4 unicast
   exit
  address-family ipv6 unicast
   exit
 

#R4
hostname R4
line con 0
 logging sync
!
ipv6 unicast-routing
!
int Gi1
 ip address 10.2.4.4 255.255.255.0
 ipv6 address 2001:db8:2:4::4/64
 ip router isis
 ipv6 router isis
 isis network point-to-point
 no shut
!
int Gi2
 ip address 10.3.4.4 255.255.255.0
 ipv6 address 2001:db8:3:4::4/64
 ip router isis
 ipv6 router isis
 isis network point-to-point
 no shut
!
int lo0
 ip address 4.4.4.4 255.255.255.255
 ipv6 address 2001:db8::4/128
 ip router isis
 ipv6 router isis
!
router isis
 net 49.0001.0000.0000.0004.00
 is-type level-1

#XR5
hostname XR5
!
int Gi0/0/0/0
 ip address 10.3.5.5/24
 ipv6 address 2001:db8:3:5::5/64
 no shut
!
int Lo0
 ip address 5.5.5.5/32
 ipv6 address 2001:db8::5/128
!
router isis 1
 net 49.0001.0000.0000.0005.00
 is-type level-1
 address-family ipv6 unicast
  single-topology
 int Gi0/0/0/0
  address-family ipv4 unicast
   exit
  address-family ipv6 unicast
   exit
  point-to-point
 int Lo0
  address-family ipv4 unicast
   exit
  address-family ipv6 unicast
   exit

You can verify that routers in the area are running single-topology by looking at their NLPID (Network Layer Protocol ID) in the LSPDB. 0xCC is IPv4 and 0x8E is IPv6.

R1#show isis data detail R2.00-00


IS-IS Level-1 LSP R2.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R2.00-00              0x00000007   0x4C85                 660/1200      0/0/0
  Area Address: 49.0001
   
  Hostname: R2
  Metric: 10         IS R1.00
  Metric: 10         IS R4.00
  Metric: 10         IS XR3.00
  IP Address:   2.2.2.2
  Metric: 10         IP 10.1.2.0 255.255.255.0
  Metric: 10         IP 10.2.4.0 255.255.255.0
  Metric: 10         IP 10.2.3.0 255.255.255.0
  Metric: 10         IP 2.2.2.2 255.255.255.255
  IPv6 Address: 2001:DB8::2
  Metric: 10         IPv6 2001:DB8:1:2::/64
  Metric: 10         IPv6 2001:DB8:2:4::/64
  Metric: 10         IPv6 2001:DB8:2:3::/64
  Metric: 10         IPv6 2001:DB8::2/128

What happens if a single router is not running IPv6? Let’s turn IPv6 off on R2.

#R2
no ipv6 unicast-routing

R2#show isis data R2.00-00 detail 


IS-IS Level-1 LSP R2.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R2.00-00            * 0x0000000A   0x2E3D                1191/*         0/0/0
  Area Address: 49.0001
   
  Hostname: R2
  Metric: 10         IS R1.00
  Metric: 10         IS R4.00
  IP Address:   2.2.2.2
  Metric: 10         IP 10.1.2.0 255.255.255.0
  Metric: 10         IP 10.2.4.0 255.255.255.0
  Metric: 10         IP 10.2.3.0 255.255.255.0
  Metric: 10         IP 2.2.2.2 255.255.255.255
R2#
*Aug  1 21:52:58.318: %CLNS-5-ADJCHANGE: ISIS: Adjacency to R4 (GigabitEthernet2) Down, neighbor forgot us
*Aug  1 21:52:58.683: %CLNS-5-ADJCHANGE: ISIS: Adjacency to R1 (GigabitEthernet1) Down, neighbor forgot us

0x8E (IPv6) is now missing from the NLPID. R2’s neighbors bring down the adjacency as the neighborship is no longer valid. Neighbors must agree and match on the supported NLPIDs.

R1 is now isolated, and has no reachability to the ISIS area.

R1#show isis neighbors 

System Id       Type Interface     IP Address      State Holdtime Circuit Id

Now you can see why multi-topology would be necessary for this scenario. If you wanted to strategically enable IPv6 and turn of IPv4 on your internal links, router by router, you could not run single-topology.

Let’s turn IPv6 routing back on. We also have to re-add the ipv6 address-family for ISIS under each interface again.

#R2
ipv6 unicast-routing
!
int Gi1
 ipv6 router isis
!
int Gi2
 ipv6 router isis
!
int Gi3
 ipv6 router isis
!
int Lo0
 ipv6 router isis

Next we’ll explore path selection for IPv4 and IPv6 traffic with single topology. What happens if we try to force traffic from R1 to XR3 to take the path R1-R2-R4-XR3? Let’s try to change the ipv6 metric for Gi3 on R2 to 30. This should make the path R1-R2-XR3 = 50, which is worse than R1-R2-R4-XR3 = 40.

#R2
int gi3
 isis ipv6 metric 30

R2#show isis data R2.00-00 detail 


IS-IS Level-1 LSP R2.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R2.00-00            * 0x00000011   0x299E                 999/*         0/0/0
  Area Address: 49.0001
  NLPID:        0xCC 0x8E 
  Hostname: R2
  Metric: 10         IS R4.00
  Metric: 10         IS R1.00
           IS XR3.00
  IP Address:   2.2.2.2
  Metric: 10         IP 10.1.2.0 255.255.255.0
  Metric: 10         IP 10.2.4.0 255.255.255.0
  Metric: 10         IP 10.2.3.0 255.255.255.0
  Metric: 10         IP 2.2.2.2 255.255.255.255
  IPv6 Address: 2001:DB8::2
  Metric: 10         IPv6 2001:DB8:1:2::/64
  Metric: 10         IPv6 2001:DB8:2:3::/64
  Metric: 10         IPv6 2001:DB8:2:4::/64
  Metric: 10         IPv6 2001:DB8::2/128

The metric to XR3 is still 10. The ipv6 metric has no effect since this is single-topology. In single-topology, IPv6 “uses” the IPv4 topology. Let’s remove the ipv6 metric and configure the regular isis metric.

#R2
int Gi3
 no isis ipv6 metric 30
 isis metric 30

R2#show isis database R2.00-00 detail 


IS-IS Level-1 LSP R2.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R2.00-00            * 0x00000012   0xA4E5                1186/*         0/0/0
  Area Address: 49.0001
  NLPID:        0xCC 0x8E 
  Hostname: R2
  Metric: 10         IS R4.00
  Metric: 10         IS R1.00
           IS XR3.00
  IP Address:   2.2.2.2
  Metric: 10         IP 10.1.2.0 255.255.255.0
  Metric: 10         IP 10.2.4.0 255.255.255.0
  Metric: 30         IP 10.2.3.0 255.255.255.0
  Metric: 10         IP 2.2.2.2 255.255.255.255
  IPv6 Address: 2001:DB8::2
  Metric: 10         IPv6 2001:DB8:1:2::/64
  Metric: 30         IPv6 2001:DB8:2:3::/64
  Metric: 10         IPv6 2001:DB8:2:4::/64
  Metric: 10         IPv6 2001:DB8::2/128

The metric is set correctly now, but both IPv4 and IPv6 traffic goes through the path R1-R2-R4-XR3.

R1#traceroute 3.3.3.3 probe 1
Type escape sequence to abort.
Tracing the route to 3.3.3.3
VRF info: (vrf in name/id, vrf out name/id)
  1 10.1.2.2 2 msec
  2 10.2.4.4 2 msec
  3 10.3.4.3 8 msec

R1#traceroute 2001:db8::3 probe 1
Type escape sequence to abort.
Tracing the route to 2001:DB8::3

  1 2001:DB8:1:2::2 16 msec
  2 2001:DB8:2:4::4 18 msec
  3 2001:DB8::3 38 msec

The only way to force IPv4 and IPv6 traffic to take separate paths is to create a separate topology for each address-family.

Lab (Multi-Topology)

Let’s now configure multi-topology. This is the default on IOS-XR, so we will remove the single-topology statement from before. We’ll need to add the multi-topology statement to IOS-XE, since single-topology is the default on IOS-XE. To use multi-topology, we must enable wide metrics. You only set multi-topology on the IPv6 address-family.

#R1
router isis 
 metric-style wide
 address-family ipv6 unicast
  multi-topology

#R2
router isis
 metric-style wide

Let’s pause here and examine the consequences of configuring this. R1 is running wide metrics and multi-topology. R2 is running wide metrics but single topology. All other routers are normal metrics and single topology.

R1#show isis nei                    

System Id       Type Interface     IP Address      State Holdtime Circuit Id
R2              L1   Gi1           10.1.2.2        UP    28       01

R1#show ip route isis | be Gateway
Gateway of last resort is not set

      2.0.0.0/32 is subnetted, 1 subnets
i L1     2.2.2.2 [115/20] via 10.1.2.2, 00:00:30, GigabitEthernet1
      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
i L1     10.2.3.0/24 [115/40] via 10.1.2.2, 00:00:30, GigabitEthernet1
i L1     10.2.4.0/24 [115/20] via 10.1.2.2, 00:00:30, GigabitEthernet1

R1#show ipv6 route isis           
IPv6 Routing Table - default - 4 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination
       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter
       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1
       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations
       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy
       lp - LISP publications, a - Application, m - OMP

R1#show isis database R1.00-00 detail 


IS-IS Level-1 LSP R1.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R1.00-00            * 0x00000012   0x3C05                1035/*         0/0/0
  Area Address: 49.0001
  NLPID:        0xCC 0x8E 
  Topology:     IPv4 (0x0) 
                IPv6 (0x2) 
  Hostname: R1
  Metric: 10         IS-Extended R2.00
  IP Address:   1.1.1.1
  Metric: 10         IP 1.1.1.1/32
  Metric: 10         IP 10.1.2.0/24
  IPv6 Address: 2001:DB8::1
  Metric: 10         IPv6 (MT-IPv6) 2001:DB8::1/128
  Metric: 10         IPv6 (MT-IPv6) 2001:DB8:1:2::/64

R1’s adjacency with R2 stays up, because they both support 0xCC and 0x8E. However there is an additional TLV (237), Multi-Topology Reachable IPv6 prefixes, which R1 is using. This is not compatible with single topology for IPv6, which uses TLV 236 for IPv6 prefixes. So while the adjacencies stay up, R1 cannot reach any IPv6 prefixes advertised by other single topology routers. Similarly, single topology routers cannot reach any IPv6 prefixes behind R1.

However, while IPv6 is broken, you can see that IPv4 reachability still works fine. (Not all prefixes are in the RIB because only R2 is running wide-metrics right now).

There is an additional parameter you can use when you setup multi-topology, which is transition. This allows the router to generate the regular IPv6 TLVs as well as the multi-topology TLVs.

#R1
router isis
 address-family ipv6 unicast
  multi-topology transition

clear isis *

R1#show ipv6 route isis | be 2001
I1  2001:DB8::2/128 [115/20]
     via FE80::5054:FF:FE15:5C9C, GigabitEthernet1
I1  2001:DB8:2:3::/64 [115/40]
     via FE80::5054:FF:FE15:5C9C, GigabitEthernet1
I1  2001:DB8:2:4::/64 [115/20]
     via FE80::5054:FF:FE15:5C9C, GigabitEthernet1

R1#show isis data R1.00-00 detail 


IS-IS Level-1 LSP R1.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R1.00-00            * 0x00000019   0x9277                1176/*         0/0/0
  Area Address: 49.0001
  NLPID:        0xCC 0x8E 
  Topology:     IPv4 (0x0) 
                IPv6 (0x2) 
  Hostname: R1
  Metric: 10         IS-Extended R2.00
  IP Address:   1.1.1.1
  Metric: 10         IP 1.1.1.1/32
  Metric: 10         IP 10.1.2.0/24
  IPv6 Address: 2001:DB8::1
  Metric: 10         IPv6 2001:DB8::1/128
  Metric: 10         IPv6 2001:DB8:1:2::/64
  Metric: 10         IPv6 (MT-IPv6) 2001:DB8::1/128
  Metric: 10         IPv6 (MT-IPv6) 2001:DB8:1:2::/64

Looking at R1’s LSP, we can see that it is now advertising the normal IPv6 TLVs in addition to the multi-topology TLVs. Now IPv6 works, and you could convert all routers to multi-topology, and then remove the transition keyword.

Let’s continue configuring all routers for multi-topology.

#R2
router isis
 address-family ipv6 unicast
  multi-topology

#R4
router isis
 metric-style wide
 address-family ipv6 unicast
  multi-topology

#XR3, XR5
router isis 1
 address-family ipv4 unicast
  metric-style wide
 address-famly ipv6 unicast
  metric-style wide
  no single-topology

Now that we are running multi-topology, what happens if we turn IPv6 routing off on R2 again? Will IPv4 reachability still work, or will it be broken like it was when we were running single-topology?

#R2
no ipv6 unicast-routing


R1#show ip route isis | be Gateway
Gateway of last resort is not set

      2.0.0.0/32 is subnetted, 1 subnets
i L1     2.2.2.2 [115/20] via 10.1.2.2, 00:09:50, GigabitEthernet1
      3.0.0.0/32 is subnetted, 1 subnets
i L1     3.3.3.3 [115/40] via 10.1.2.2, 00:03:40, GigabitEthernet1
      4.0.0.0/32 is subnetted, 1 subnets
i L1     4.4.4.4 [115/30] via 10.1.2.2, 00:06:09, GigabitEthernet1
      5.0.0.0/32 is subnetted, 1 subnets
i L1     5.5.5.5 [115/50] via 10.1.2.2, 00:02:20, GigabitEthernet1
      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
i L1     10.2.3.0/24 [115/40] via 10.1.2.2, 00:03:40, GigabitEthernet1
i L1     10.2.4.0/24 [115/20] via 10.1.2.2, 00:09:50, GigabitEthernet1
i L1     10.3.4.0/24 [115/30] via 10.1.2.2, 00:06:09, GigabitEthernet1
i L1     10.3.5.0/24 [115/40] via 10.1.2.2, 00:03:40, GigabitEthernet1
R1#show ipv6 route isis           
IPv6 Routing Table - default - 4 entries
Codes: C - Connected, L - Local, S - Static, U - Per-user Static route
       B - BGP, R - RIP, H - NHRP, I1 - ISIS L1
       I2 - ISIS L2, IA - ISIS interarea, IS - ISIS summary, D - EIGRP
       EX - EIGRP external, ND - ND Default, NDp - ND Prefix, DCE - Destination
       NDr - Redirect, RL - RPL, O - OSPF Intra, OI - OSPF Inter
       OE1 - OSPF ext 1, OE2 - OSPF ext 2, ON1 - OSPF NSSA ext 1
       ON2 - OSPF NSSA ext 2, la - LISP alt, lr - LISP site-registrations
       ld - LISP dyn-eid, lA - LISP away, le - LISP extranet-policy
       lp - LISP publications, a - Application, m - OMP
R1#

R1 has retained the IPv4 routes, but lost all IPv6 routes. This is because its only neighbor is R2, and R2 is no longer running the ISIS IPv6 address-family. This is different from single-topology, where turning off IPv6 broke IPv4 reachability as well.

Let’s turn IPv6 back on, on R2.

#R2
ipv6 unicast-routing
!
int Gi1
 ipv6 router isis
!
int Gi2
 ipv6 router isis
!
int Gi3
 ipv6 router isis
!
int Lo0
 ipv6 router isis
!
router isis
 address-family ipv6 unicast
  multi-topology

Let’s try our attempt to route traffic destined for XR3’s IPv6 loopback address along the path R1-R2-R4-XR3, but keep traffic destined to the IPv4 loopback along the path R1-R2-XR3. To do this, we’ll increase the ipv6 isis cost on Gi3 of R2.

#R2
int Gi3
 isis ipv6 metric 30

Success! The IPv4 and IPv6 traffic takes separate routes, because they are using completely separate topologies.

R1#traceroute 3.3.3.3 probe 1    
Type escape sequence to abort.
Tracing the route to 3.3.3.3
VRF info: (vrf in name/id, vrf out name/id)
  1 10.1.2.2 1 msec
  2 10.2.3.3 4 msec

R1#traceroute 2001:db8::3 probe 1
Type escape sequence to abort.
Tracing the route to 2001:DB8::3

  1 2001:DB8:1:2::2 3 msec
  2 2001:DB8:2:4::4 2 msec
  3 2001:DB8::3 7 msec

Comparing ST and MT show commands

Single topology

R1#show isis data R1.00-00 det


IS-IS Level-1 LSP R1.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R1.00-00            * 0x00000056   0x7D70                1178/*         0/0/0
  Area Address: 49.0001
  NLPID:        0xCC 0x8E 
  Hostname: R1
  Metric: 10         IS-Extended R2.00
  IP Address:   1.1.1.1
  Metric: 10         IP 1.1.1.1/32
  Metric: 10         IP 10.1.2.0/24
  IPv6 Address: 2001:DB8::1
  Metric: 10         IPv6 2001:DB8::1/128
  Metric: 10         IPv6 2001:DB8:1:2::/64
  • “Topology” is missing, and IPv6 prefixes do not show “(MT-IPv6)”

R1#show isis ip topology   

IS-IS TID 0 paths to level-1 routers
System Id            Metric     Next-Hop             Interface   SNPA
R1                   --
R2                   10         R2                   Gi1         5254.0015.5c9c 
XR3                  20         R2                   Gi1         5254.0015.5c9c 
R4                   20         R2                   Gi1         5254.0015.5c9c 
XR5                  30         R2                   Gi1         5254.0015.5c9c 
R1#show isis ipv6 topology 

R1#
  • There is no separate topology for IPv6. IPv6 is currently working right now, it is just using the IP topology.

R1#show isis protocol 

IS-IS Router: <Null Tag> (0x10000)
  System Id: 0000.0000.0001.00  IS-Type: level-1
  Manual area address(es): 
        49.0001
  Routing for area address(es): 
        49.0001
  Interfaces supported by IS-IS:
        Loopback0 - IP - IPv6
        GigabitEthernet1 - IP - IPv6
  Redistribute:
    static (on by default)
  Distance for L2 CLNS routes: 110
  RRR level: none
  Generate narrow metrics: none
  Accept narrow metrics:   none
  Generate wide metrics:   level-1-2
  Accept wide metrics:     level-1-2
RP/0/0/CPU0:XR3#show isis protocol 
Tue Aug  2 12:45:37.286 UTC

IS-IS Router: 1
  System Id: 0000.0000.0003 
  Instance Id: 0
  IS Levels: level-1
  Manual area address(es):
    49.0001
  Routing for area address(es):
    49.0001
  Non-stop forwarding: Disabled
  Most recent startup mode: Cold Restart
  TE connection status: Down
  Topologies supported by IS-IS:
    IPv4 Unicast
      Level-1
        Metric style (generate/accept): Wide/Wide
        Metric: 10
        ISPF status: Disabled
      No protocols redistributed
      Distance: 115
      Advertise Passive Interface Prefixes Only: No
    IPv6 Unicast
      Level-1
        Metric style (generate/accept): Wide/Wide
        Metric: 10
        ISPF status: Disabled
      No protocols redistributed
      Distance: 115
      Advertise Passive Interface Prefixes Only: No
  SRLB allocated: 0 - 0
  SRGB not allocated
  Interfaces supported by IS-IS:
    Loopback0 is running actively (active in configuration)
    GigabitEthernet0/0/0/0 is running actively (active in configuration)
    GigabitEthernet0/0/0/1 is running actively (active in configuration)
    GigabitEthernet0/0/0/2 is running actively (active in configuration)
  • Oddly, IOS-XR shows two topologies even though it is running ST.

RP/0/0/CPU0:XR3#show isis int gi0/0/0/1 br  
Tue Aug  2 12:42:58.657 UTC

IS-IS 1 Interfaces
    Interface      All     Adjs    Adj Topos  Adv Topos  CLNS   MTU    Prio  
                   OK    L1   L2    Run/Cfg    Run/Cfg                L1   L2
-----------------  ---  ---------  ---------  ---------  ----  ----  --------
Gi0/0/0/1          Yes    1    -      2/2        2/2     Up    1497    -    -
  • This command is only available in IOS-XR, however in testing it does not indicate whether you are using ST or MT. Both scenarios show the same output.

Multi-topology

R1#show isis data R1.00-00 det


IS-IS Level-1 LSP R1.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd      ATT/P/OL
R1.00-00            * 0x00000055   0x4EB5                1194/*         0/0/0
  Area Address: 49.0001
  NLPID:        0xCC 0x8E 
       IPv4 (0x0) 
                IPv6 (0x2) 
  Hostname: R1
  Metric: 10         IS-Extended R2.00
  Metric: 10         IS (MT-IPv6) R2.00
  IP Address:   1.1.1.1
  Metric: 10         IP 1.1.1.1/32
  Metric: 10         IP 10.1.2.0/24
  IPv6 Address: 2001:DB8::1
  Metric: 10         IPv6 (MT-IPv6) 2001:DB8::1/128
  Metric: 10         IPv6 (MT-IPv6) 2001:DB8:1:2::/64
  • You see Topology and that IPv6 prefixes use (MT-IPv6). There is also two reachability metrics to neighbors, one for IPv4, and one for IPv6 which says IS (MT-IPv6).

R1#show isis ip topology   

IS-IS TID 0 paths to level-1 routers
System Id            Metric     Next-Hop             Interface   SNPA
R1                   --
R2                   10         R2                   Gi1         5254.0015.5c9c 
         R2                   Gi1         5254.0015.5c9c 
R4                   20         R2                   Gi1         5254.0015.5c9c 
XR5                  30         R2                   Gi1         5254.0015.5c9c 
R1#show isis ipv6 topology 

IS-IS TID 2 paths to level-1 routers
System Id            Metric     Next-Hop             Interface   SNPA
R1                   --
R2                   10         R2                   Gi1         5254.0015.5c9c 
         R2                   Gi1         5254.0015.5c9c 
R4                   20         R2                   Gi1         5254.0015.5c9c 
XR5                  40         R2                   Gi1         5254.0015.5c9c
  • In MT, you can have different metrics for IP and IPv4 to a given router. You will not see the IPv6 topology at all on IOS-XE if running ST.

R1#show isis protocol 

IS-IS Router: <Null Tag> (0x10000)
  System Id: 0000.0000.0001.00  IS-Type: level-1
  Manual area address(es): 
        49.0001
  Routing for area address(es): 
        49.0001
  Interfaces supported by IS-IS:
        Loopback0 - IP - IPv6
        GigabitEthernet1 - IP - IPv6
  Redistribute:
    static (on by default)
  Distance for L2 CLNS routes: 110
  RRR level: none
  Generate narrow metrics: none
  Accept narrow metrics:   none
  Generate wide metrics:   level-1-2
  Accept wide metrics:     level-1-2
  • I see no difference compared to ST with this output.

RP/0/0/CPU0:XR3#show isis protocol 
Tue Aug  2 12:25:04.390 UTC

IS-IS Router: 1
  System Id: 0000.0000.0003 
  Instance Id: 0
  IS Levels: level-1
  Manual area address(es):
    49.0001
  Routing for area address(es):
    49.0001
  Non-stop forwarding: Disabled
  Most recent startup mode: Cold Restart
  TE connection status: Down
  Topologies supported by IS-IS:
    IPv4 Unicast
      Level-1
        Metric style (generate/accept): Wide/Wide
        Metric: 10
        ISPF status: Disabled
      No protocols redistributed
      Distance: 115
      Advertise Passive Interface Prefixes Only: No
    IPv6 Unicast
      Level-1
        Metric: 10
        ISPF status: Disabled
      No protocols redistributed
      Distance: 115
      Advertise Passive Interface Prefixes Only: No
  SRLB allocated: 0 - 0
  SRGB not allocated
  Interfaces supported by IS-IS:
    Loopback0 is running actively (active in configuration)
    GigabitEthernet0/0/0/0 is running actively (active in configuration)
    GigabitEthernet0/0/0/1 is running actively (active in configuration)
    GigabitEthernet0/0/0/2 is running actively (active in configuration)
  • IOS-XR directly shows the two topologies, however this is the same output as in ST.

RP/0/0/CPU0:XR3#show isis interface gi0/0/0/1 br
Tue Aug  2 12:26:49.553 UTC

IS-IS 1 Interfaces
    Interface      All     Adjs    Adj Topos  Adv Topos  CLNS   MTU    Prio  
                   OK    L1   L2    Run/Cfg    Run/Cfg                L1   L2
-----------------  ---  ---------  ---------  ---------  ----  ----  --------
Gi0/0/0/1          Yes    1    -      2/2        2/2     Up    1497    -    -
  • This command is only available in IOS-XR, however in testing it does not indicate whether you are using ST or MT. Both scenarios show the same output.

Conclusion

When you running ISIS for IPv6, you have two options. You can use single topology, which is the default on IOS-XE, in which IPv4 and IPv6 prefixes share the same underlying topology. You can also use multi-topology, the default on IOS-XR, in which IPv4 and IPv6 each have their own separate topology.

Remember that the underlying ISIS topology is not built on IPv4 addresses as in OSPFv2. The topology is simply a map of routers and the links between them. Separate TLVs are used to advertise IPv4 and IPv6 prefixes that are reachable by routers.

The benefits of single topology are that only a single SPF run is needed when calculating best paths for IPv4 and IPv6 prefixes, since both prefixes reside on the same topology.

The benefits of multi-topology are that you can steer IPv4 and IPv6 traffic along different paths by using IPv4 metrics and IPv6 metrics. Each metric only affects the respective topology. The other benefit is that you can gracefully migrate from IPv4 to IPv6-only. With single topology, if you turn off IPv6, it completely breaks the adjacency. However, with multi-topology, you can safely turn off IPv6 on a router and continue to have IPv4 reachability. Remember that when using multi-topology, you must use wide-metrics for the IPv6 address-family.

Last updated