Skip to content

Latest commit

 

History

History
330 lines (266 loc) · 9.83 KB

File metadata and controls

330 lines (266 loc) · 9.83 KB

(module-isis)=

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
.. contents:: Table of Contents
   :depth: 2
   :local:
   :backlinks: none

(isis-platform)=

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 XE1
Cisco IOS XRv
Cisco Nexus OS
FRR
Junos2
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.

  • See IS-IS Integration Tests Results for more details.

  • Use the netlab show modules -m isis command to display the route types that can be imported into IS-IS.

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

Operating system IPv4
BFD
IPv6
BFD
Arista EOS
Cisco IOSv/IOSvL2
Cisco IOS XE1
Cisco Nexus OS
Junos2
Nokia SR Linux
Nokia SR OS
VyOS
See [IS-IS Integration Tests Results](https://release.netlab.tools/_html/coverage.isis) 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
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.

(isis-node)=

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.import -- import (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.
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**.

Link Parameters

IS-IS is automatically started on all interfaces within an autonomous system (interfaces with no EBGP neighbors; see also ). To disable IS-IS on an intra-AS link, set the isis link parameter to False (see also ).

You can also set these parameters:

  • isis.type -- Link type (level-1, level-2 or level-1-2). Recognized as a valid attribute but not implemented. Please feel free to fix the configuration templates and submit a pull request.
  • isis.network_type -- Set IS-IS network type. Valid values are point-to-point or False (do not set the network type). See also Default Link Parameters.
  • isis.metric or isis.cost -- Interface cost. Both parameters are recognized to make IS-IS configuration similar to OSPF (metric takes precedence over cost)
  • isis.bfd -- enable or disable BFD on individual interfaces. Like with the node-level isis.bfd parameter, this parameter could be a boolean value (True to enable BFD for all address families, False to disable IS-IS BFD on the interface) or a dictionary of address families, for example:

Example:

links:
- name: Link with IPv4-only BFD
  sros_r1:
  srlinux_r2:
  isis.bfd:
    ipv4: True
    ipv6: False

Default Link Parameters

The number of neighbors on an interface is used to set the IS-IS network type unless it's specified with isis.network_type link or interface attribute. Interfaces with exactly one non-host neighbor (point-to-point links) have isis.network_type set to point-to-point.

When the isis.passive interface parameter is not set on a link or an interface, netlab uses the link roles together with the link types to decide whether to include an interface in an IS-IS process and whether to make an interface passive:

  • External links (links with role: external) are not included in the IS-IS process.
  • Links with role set to passive are configured as passive IS-IS interfaces.
  • Interfaces connected to links with a single router or routing daemon attached are passive IS-IS interfaces.

Notes:

  • The BGP module could set link role. Links with devices from different AS numbers attached to them get a role specified in defaults.bgp.ebgp_role parameter. The system default value of that parameter is external, excluding inter-AS links from the IS-IS process.
  • Management interfaces are never added to the IS-IS process. They are not in the set of device links and, thus, not considered in the IS-IS configuration template.

(isis-example)=

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 

Footnotes

  1. Includes Cisco CSR 1000v, Cisco Catalyst 8000v, Cisco IOS-on-Linux (IOL), and IOL Layer-2 image. 2

  2. Includes vMX, vSRX, vPTX, vJunos-switch, and vJunos-router 2