The (Unofficial) CCNP-SP Study Guide
  • About
    • About the Author
    • About This Study Guide
  • MPLS
    • LDP
      • LDP Transport Address
      • LDP Conditional Advertisement
      • LDP Authentication
      • LDP/IGP Sync
      • LDP Session Protection
    • MPLS-TE
      • MPLS-TE Basics, Pt. 1 (TED)
      • MPLS-TE Basics, Pt.2 (RSVP)
      • MPLS-TE Basics, Pt.3 (CSPF)
      • MPLS-TE Basics, Pt.4 (Routing)
      • MPLS-TE Fast Reroute (FRR)
      • MPLS-TE with OSPF
    • Unified MPLS
    • Segment Routing
      • Introduction, Theory Pt.1
      • Introduction, Lab (OSPF) Pt.2
      • Introduction, Lab (ISIS) Pt. 3
      • Multi-Area/Level Segment Routing
      • Segment Routing using BGP
      • Migrating LDP to SR
      • LDP/SR Interworking
      • TI-LFA Pt. 1 (Theory)
      • TI-LFA Pt. 2 (Implementation)
      • TI-LFA Pt. 3 (Node and SRLG Protection)
      • SR-TE Pt. 1 (Overview)
      • SR-TE Pt. 2 (Creating an SR-TE Policy)
      • SR-TE Pt. 3 (Using a PCE)
      • SR-TE Pt. 4 (Automated Steering)
      • SR-TE Pt. 5 (On-Demand Nexthop)
      • SR-TE Pt. 6 (Flex Algo)
    • MPLS OAM
      • Classic Traceroute Behavior in MPLS Networks
      • LSP Ping
      • LSP Traceroute
  • Routing
    • BGP
      • BGP Synchronization
      • BGP Load Sharing (Multipath)
      • An Intuitive Look at Path Attributes
      • AS Path Prepending on XE and XR
      • RPL
    • BGP Security
      • BGP TTL Security, Pt. 1
      • BGP TTL Security, Pt. 2 (IOS-XE)
      • BGP TTL Security, Pt. 3 (IOS-XR)
      • BGP MD5 Authentication
      • BGP Maximum Prefixes
      • BGP RFD (Route Flap Dampening)
      • RTBH
      • Flowspec
      • BGPsec
    • L3VPN
      • An In-Depth Look at RD and RT, Pt. 1
      • An In-Depth Look at RD and RT, Pt. 2
      • An In-Depth Look at RD and RT, Pt. 3
      • An In-Depth Look at RD and RT, Pt. 4
      • Inter-AS L3VPN Pt. 1, Overview
      • Inter-AS L3VPN Pt. 2, Option A
      • Inter-AS L3VPN Pt. 3, Option B
      • Inter-AS L3VPN Pt. 4, Option C
      • CSC (Carrier Supporting Carrier)
      • PE NAT
    • OSPF
      • Type 7 to Type 5 Translation
      • OSPF Authentication
      • Troubleshooting OSPF Adjacencies
      • OSPFv3 LSA Types
      • OSPFv3 LSAs Example (Single Area)
    • ISIS
      • The Potential for Asymmetric Routing with Multi-Area ISIS
      • Interarea Routing is Distance-Vector
      • Basic ISIS - LSPDB
      • Multitopology
      • What is the role of CLNS and CLNP in ISIS?
      • Troubleshooting ISIS Adjacencies
    • IPv6 Transition
      • Overview
      • NAT64
      • 6to4
      • 6RD (IPv6 Rapid Deployment)
      • DS Lite (Dual Stack Lite)
      • MAP (Mapping of Address and Port)
      • Tunneling IPv6 Dynamic Routing Protocols over IPv4
    • Multicast
      • Introduction
      • IP and MAC Addressing
      • Tree Formation and Packet Forwarding
      • IGMP
      • PIM-DM (Dense Mode)
      • PIM-SM (Sparse Mode)
      • PIM-SM SPT Switchover
      • PIM-SM Tunnel Interfaces
      • PIM DR and the Assert Message
      • PIM-SM RP Discovery
      • PIM-BiDir
      • PIM-SSM (Source-Specific Multicast)
      • Interdomain Multicast (PIM-SM)
      • IPv6 Multicast
      • mVPN Introduction
      • mVPN Profile 0
      • mVPN Profile 1
      • Multicast Routing on IOS-XR
  • L2VPN & Ethernet
    • IOS-XE Ethernet Services
      • Service Instances
      • E-Line
      • E-LAN (VPLS)
      • E-Tree
      • E-Access
      • VPLS with BGP Autodiscovery
      • Martini/Kompella Circuits
    • EVPN
      • Introduction to EVPN
      • Learning EVPN VXLAN First
      • E-Line (EVPN VPWS)
      • E-Line (EVPN VPWS) on IOS-XR
      • E-Line (EVPN VPWS) Multi-Homed
      • E-LAN (EVPN Single-Homed)
    • Carrier Ethernet
      • 802.1ah (MAC-in-MAC)
      • 802.3ah (Ethernet OAM)
      • 802.1ag (CFM)
      • Cisco REP (Resilient Ethernet Protocol)
      • ITU G.8032 ERPS (Ethernet Ring Protection Switching)
  • Security
    • CoPP (Control Plane Policing)
    • LPTS (Local Packet Transport Services)
  • Misc
    • QoS
      • QoS Introduction (Part 1)
      • QoS Tools Overview and QoS Models (Part 2)
      • QoS Classification and Marking (Part 3)
      • QoS Queuing/Congestion Management (Part 4)
      • QoS Shaping and Policing (Part 5)
      • QoS for IPv6
      • MPLS QoS Basics
      • MPLS QoS Modes
      • MPLS TE QoS (DS-TE)
      • MPLS TE CBTS/PBTS
    • Automation and Assurance
      • NSO
      • NSO Command Cheat Sheet
      • Intro to YANG/NETCONF
      • YANG In-Depth
      • NETCONF In-Depth
      • RESTCONF
      • Model-Driven Telemetry
      • Automation Tool Comparison
      • Netflow
      • SNMP
    • Virtualization
      • NFV (Network Function Virtualization)
      • OpenStack
    • Transport
      • xPON
      • SONET/SDH
      • WDM
      • 4G and 5G RAN
    • High Availability (HA)
      • NSF/GR
      • NSR
      • NSF/NSR Whitepapers
      • BFD
      • Link Aggregation on IOS-XE
      • Link Aggregation on IOS-XR
    • IOS Software Overview
  • Labs
    • Lab Challenges
      • How to Use These Labs
      • Basic LDP
      • Advanced LDP
      • BGP Security
      • Unified MPLS
      • BGP Fundamentals
      • Ethernet Services
      • L3VPN Extranet
      • Multicast
      • Inter-area OSPF
      • ISIS
      • MPLS-TE
      • Control Plane Policing
      • QoS
Powered by GitBook
On this page
  • Lab (Single Topology)
  • Lab (Multi-Topology)
  • Comparing ST and MT show commands
  • Conclusion
  1. Routing
  2. ISIS

Multitopology

PreviousBasic ISIS - LSPDBNextWhat is the role of CLNS and CLNP in ISIS?

Last updated 1 year ago

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.