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

  • 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

IPv4
BFD

IPv6
BFD

Arista EOS

Cisco ASAv

Cisco IOS

Cisco IOS XE

Cisco IOS XRv

Cisco Nexus OS

FRR

Juniper vMX

Juniper vPTX

Juniper vSRX

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.

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.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 ‌isis.area with 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 node parameters as global values (top-level topology elements) or within individual nodes. You can specify isis.net on individual nodes instead of using isis.area (see example for details).

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.

IS-IS is automatically started on all interfaces within an autonomous system (interfaces with no EBGP neighbors; see also External Interfaces). To disable IS-IS on an intra-AS link, set the isis link parameter to False (see also Disabling a Routing Protocol on a Link/Interface).

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