IS-IS Configuration Module

This configuration module configures the IS-IS routing process on Cisco IOS, Cisco NX-OS, Arista EOS, Junos (tested on vSRX), Nokia SR OS, and Nokia SR Linux.

The module supports the following IS-IS features:

  • IPv4 and IPv6

  • IS type (L1 and/or L2)

  • Multi-topology IPv6 (enabled by default as soon as the node has at least one IPv6 address, cannot be disabled)

  • Wide metrics (enabled by default, cannot be turned off)

  • Unnumbered IPv4 interfaces

  • Passive interfaces

  • VRF IS-IS instances

  • Route import (redistribution)

  • BFD

Platform Support

The following table describes per-platform support of individual IS-IS features:

Operating system

IS type

IPv6
AF

Multi
topology

Unnumbered
interfaces

Route
import

VRF
instances

Arista EOS

Cisco ASAv

Cisco IOSv/IOSvL2

Cisco IOS XE[1]

Cisco IOS XRv

Cisco Nexus OS

FRR

Junos[2]

Nokia SR Linux

Nokia SR OS

VyOS

Notes:

  • On Arista EOS, IPv6 is enabled on all interfaces as soon as one has an IPv6 address. Arista EOS implementation of IS-IS refuses to work on interfaces with missing address families.

  • On VyOS, IPv6 is enabled on all interfaces as soon as one has an IPv6 address.

  • Cisco ASA does not support P2P IS-IS links. You could add isis.network_type: false to point-to-point links connecting ASA to other devices.

Some platforms can use BFD to speed up IS-IS convergence:

Operating system

IPv4
BFD

IPv6
BFD

Arista EOS

Cisco IOSv/IOSvL2

Cisco IOS XE[1]

Cisco Nexus OS

Junos[2]

Nokia SR Linux

Nokia SR OS

VyOS

Tip

See IS-IS Integration Tests Results for more details.

Global Parameters

  • isis.area – CLNS area prefix. Router address (NET) is computed from area prefix, 6-byte system ID (using id node attribute), and NSAP selector (.00)

  • isis.type – IS-IS router type (level-1, level-2 or level-1-2. Default: level-2)

  • isis.instance – The name of the IS-IS instance. Used on devices that want to have a name for an IS-IS instance. Default: Gandalf.

  • isis.bfd – enable BFD for IS-IS. This parameter could be a boolean value (True/False) or a dictionary of address families, for example:

isis:
  area: "49.0002"
  bfd:
    ipv4: True
    ipv6: True

Warning

Specify an ‌isis.area value that has a single dot (example: 49.0001) within quotes to tell the YAML parser it’s not a floating-point number.

Node Parameters

You can specify most node parameters as global values (top-level topology elements) or within individual nodes. You can also specify these node parameters:

  • isis.net: Set specific NET on individual nodes instead of using isis.area to generate it (see example for details).

  • isis.importimport (redistribute) routes into the global IS-IS instance. By default, no routes are redistributed into the global IS-IS instance.

Note:

  • When specifying isis.net, avoid values in range area.0000.0000.0001.00 through area.0000.0000.0099.00 as they are used for auto-generated NETs.

Tip

The IS-IS configuration module is automatically removed from a node that does not run IS-IS on any non-loopback interface. In that case, netlab generates a warning that can be turned off by setting ‌defaults.isis.warnings.inactive to ‌False.

Example

We want to create a three-router multi-area IS-IS network:

  • R1 and R2 are in area 49.0001

  • R3 is in area 49.0002.

All devices run OSPF:

module: [ isis ]

The default IS-IS area is 49.0001:

isis:
  area: 49.0001

R1 and R2 are in the default IS-IS area. We’ll specify explicit NET for R2:

nodes:
  r1:
    device: iosv
  r2:
    device: eos
    isis:
      net: 49.0001.0000.cafe.0002.00 

R3 is in area 49.0002.

nodes:
  r3:
    device: nxos
    isis:
      area: 49.0002

Each router has a stub interface:

links:
- r1:
- r2:
- r3:

We’ll specify per-link IS-IS metric on the link between R1 and R2:

links:
- isis:
	  metric: 10
	r1:
  r2:

We’ll specify asymmetric per-node IS-IS metrics on the link between R2 and R3:

links:
- r2:
    isis:
      metric: 20 
  r3:
    isis:
      metric: 30 

Resulting Device Configurations

The above topology generates the following device configurations:

R1 (Cisco IOS)

router isis Gandalf
  log-adjacency-changes
  hostname dynamic
  is-type level-2
  metric-style wide
  net 49.0001.0000.0000.0001.00
  passive-interface GigabitEthernet0/1
  address-family ipv4 unicast
!
interface Loopback0
  ip router isis Gandalf
!
interface GigabitEthernet0/1
  ip router isis Gandalf
!
interface GigabitEthernet0/2
  ip router isis Gandalf
  isis metric 10

R2 (Arista EOS)

router isis Gandalf
  log-adjacency-changes
  is-hostname r2
  is-type level-2
  net 49.0001.0000.cafe.0002.00
  address-family ipv4 unicast
!
interface Loopback0
  isis enable Gandalf
!
interface Ethernet1
  isis enable Gandalf
  isis passive
!
interface Ethernet2
  isis enable Gandalf
  isis metric 10
!
interface Ethernet3
  isis enable Gandalf
  isis metric 20

R3 (Cisco Nexus OS)

feature isis
!
router isis Gandalf
  log-adjacency-changes
  is-type level-2
  hostname dynamic
  net 49.0002.0000.0000.0003.00
  address-family ipv4 unicast
!
interface Loopback0
  ip router isis Gandalf
!
interface Ethernet1/1
  ip router isis Gandalf
  isis passive-interface level-1-2
!
interface Ethernet1/2
  ip router isis Gandalf
  isis metric 30 level-1
  isis metric 30 level-2

Complete Network Topology

module: [ isis ]

isis:
  area: 49.0001

nodes:
  r1:
    device: iosv
  r2:
    device: eos
    isis:
      net: 49.0001.0000.cafe.0002.00 
  r3:
    device: nxos
    isis:
      area: 49.0002

links:
- r1:
- r2:
- r3:
- isis:
	  metric: 10
	r1:
  r2:
- r2:
    isis:
      metric: 20 
  r3:
    isis:
      metric: 30