IS-IS Configuration Module
This configuration module configures the IS-IS routing process, and supports the following IS-IS features:
IPv4 and IPv6
IS type and circuit 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 IS-IS support by platform. All IS-IS implementations support wide IS-IS metrics, IPv6 address family, and IS-IS circuit type. A few platforms do not support IS-IS multi-topology for the IPv6 address family or the point-to-point network type. See device caveats for details.
Device |
Core IS-IS |
Unnumbered interfaces |
Route import |
VRF instances |
BFD |
|---|---|---|---|---|---|
Arista EOS |
✅❗ |
✅ |
✅ |
✅ |
✅ |
Arrcus ArcOS |
✅❗ |
❌ |
✅ |
✅ |
✅ |
Cisco ASAv |
✅❗ |
❌ |
❌ |
❌ |
❌ |
Cisco IOS[*1] |
✅ |
✅ |
✅ |
❌ |
✅ |
Cisco IOS XR[*2] |
✅ |
✅ |
✅ |
✅ |
❌ |
Cisco Nexus OS |
✅ |
✅ |
❌ |
❌ |
✅ |
FRRouting |
✅ |
✅ |
✅ |
✅ |
✅ |
Junos[*3] |
✅❗ |
✅ |
✅ |
✅ |
✅ |
Nokia SR Linux |
✅ |
✅ |
✅ |
✅ |
✅ |
Nokia SR OS[*4] |
✅ |
✅ |
✅ |
✅ |
✅ |
SONiC |
✅ |
✅ |
✅ |
❌ |
✅ |
VyOS |
✅❗ |
❌ |
❌ |
❌ |
✅ |
Notes:
You can get the same information with the
netlab show modules -m isiscommand.Use the
netlab show modules -m isis --feature importcommand to display the route types that can be imported into IS-IS.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.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.
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.
Link Parameters
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 or a loopback interface, set the isis link/interface parameter to False (see also Disabling a Routing Protocol on a Link/Interface).
You can also set these parameters on links or interfaces:
isis.type – Set interface circuit type (the type of adjacency that can be established over this link – level-1, level-2 or level-1-2).
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:
You can also set isis.type and isis.metric on the loopback interface[1].
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.
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
Loopback metrics might not be implemented in all IS-IS configuration templates.