ISIS configuration

There is a list of necessary elements to know when forging an IS-IS configuration.

Basic elements for configuration

When forging an IS-IS configuration, an instance is created with a unique area-tag key. Also, an OSI area-address address is necessary.

vrf main
    routing isis instance AREA-TAG
        area-address AREA-ADDRESS
AREA-TAG

The area-tag identifier that is referenced in interface configuration

AREA-ADDRESS

The area-address stands for a NET, which is a variable-sized identifier, expressed in hexadecimal format. For instance, 49.0123.6452.1972.00 illustrates a NET value.

Note

IS-IS reuses the NSAP format and distinguishes two main parts: - An area address, which is used for defining an area domain.

  • A System Id is a 6-byte value, which is used to identify the device. The below command dumps the IS-IS local System Id:

    vsr running config# show isis summary
    vrf             : default
    Process Id      : 10877
    System Id       : 0123.6452.1972
    Up time         : 00:16:51 ago
    Number of areas : 1
    Area 1:
     Net: 49.0123.6452.1972.00
    [..]
    

The first byte of the NET value is the AFI and identifies how the rest of the NSAP address should be interpreted. A value of 49 is generally used for private usage. The trailing byte must be set to 00 to distinguish NET from another NSAP format.

For instance, 49.0000.0123.6452.1972.00 and 49.0000.0123.6452.1973.00 are two NET addresses belonging to the same area domain, but from separate devices.

See also

see ISO 8348 for details about NSAP address format

../../../../_images/nsap_address.svg

IS-IS addressing format

An IS-IS configuration can be removed by using the following command:

vsr running vrf main# del routing isis instance AREA-TAG
vrf main
    del routing isis AREA-TAG

To disable all IS-IS configuration in a given VRF, use the following configuration command:

vsr running vrf main# routing isis enabled false

The below IS-IS configuration shows how to configure a basic Level-1 circuit. The routing address family must be specified over each interface.

vsr running vrf main# interface physical eth0
vsr running physical eth0#! port pci-b0s5
vsr running physical eth0# ipv4 address 10.125.0.1/24
vsr running physical eth0# ..
vsr running interface# loopback loop1
vsr running loopback loop1# ipv4 address 1.1.1.1/32
vsr running loopback loop1# ..
vsr running vrf main# physical eth1
vsr running physical eth1#! port pci-b0s4
vsr running physical eth1# ipv4 address 10.100.0.1/24
vsr running physical eth1# .. ..
vsr running vrf main# routing isis instance 1
vsr running instance 1# area-address 49.0123.6452.1972.00
vsr running instance 1# is-type level-1
vsr running instance 1# .. ..
vsr running routing# interface loop1
vsr running interface loop1# isis area-tag 1
vsr running interface loop1#! isis ipv4-routing true
vsr running interface loop1# isis passive true
vsr running interface loop1# ..
vsr running routing# interface eth0
vsr running interface eth0# isis ipv4-routing true
vsr running interface eth0#! isis area-tag 1
vsr running interface eth0# ..
vsr running routing# interface eth1
vsr running interface eth1# isis ipv4-routing true
vsr running interface eth1#! isis area-tag 1
vsr running interface eth1#

Note

To operate an interface with IPv6 information, the metric style used in the TLVs of the exchanged packet must be set to wide. That metric is the default value.

vsr running routing# isis instance 1
vsr running instance 1# metric-style wide
vsr running instance 1# .. ..
vsr running routing# interface eth0
vsr running interface eth0# isis ipv6-routing true
vsr running interface eth0#

Note

If is-type parameter is unspecified, IS-IS operates at Level-1 and Level-2. In this case, it is however possible to override the level on a specific interface, by using the following command:

vsr running routing# interface eth0
vsr running interface eth0# isis circuit-type level-2
vsr running interface eth0#

Adjacencies establishment

IIH messages are used to establish adjacencies between neighbors. A three-way handshake is generally performed to ensure that each side declares the other side to be reachable. This mechanism can be simplified when the topology uses point to point connections or unidirectional links; by using the following command:

vsr running vrf main# routing interface eth0
vsr running interface eth0# isis disable-three-way-handshake true
vsr running interface eth0#

See also

IIH messages permit to declare the other side as down, based on the hold-down timer. This timer is derived from the interval and multiplier values. By default, a neighbor is down after no hello messages have been received by the local side after 30 seconds. The following command reduces the hold-down timer from 30 seconds to 10 seconds for Level-1.

vsr running vrf main# routing interface eth0
vsr running interface eth0# isis hello interval level-1 2
vsr running interface eth0# isis hello multiplier level-1 5

The following command gives information about hold time of a given neighbor, in the Holdtime neighbor.

vsr running config# show isis neighbor
Area 1:
  System Id           Interface   L  State        Holdtime SNPA
  vsr2            eth0        2  Up            29       deed.e2d5.5e21

Hello messages are padded by default up to the configured MTU of the interface. If not padded, an MTU mismatch between each side may lead to LSD synchronization failure because of some big LSPs exchanged over the link. If you are sure about the MTU configuration on each side, the following command forces the hello padding to false:

vsr running vrf main# routing interface eth0
vsr running interface eth0# isis hello padding false
vsr running interface eth0#

The below MTU configuration parameter forces the maximum size of an LSP packet, and can also be used in case the real MTU of the outgoing interface is unknown.

vsr running vrf main# routing isis instance 1
vsr running interface eth0# lsp mtu 1440
vsr running interface eth0#

Once the adjacencies are created, a DIS is chosen.

Note

DIS election does not happen on point-to-point networks. DIS is deterministic and depends on some parameters, including the priority value exchanged in IIH messages. That value can be modified on a given interface. A device can be DIS on a given interface and not DIS on another interface.

vsr running routing# interface eth0
vsr running interface eth0# isis priority 10
vsr running interface eth0#

The following command flushes the adjacencies on vsr2 neighbor:

vsr> flush isis vrf main neighbor vsr2
vsr>

LSD in ISIS

LSD is fed by LSPs entries originated by each participating device. The below command dumps the database for a given System-ID.

   vsr2 running config# show isis database <SYSTEMID|LSP_ID>
   Area 1:
   IS-IS Level-1 link-state database:
   LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
   vsr.00-00              230   0x0000002d  0x0d16     988    0/0/0
   vsr2.00-00        *    104   0x00000007  0xc258    1030    0/0/0
   vsr2.04-00        *     51   0x00000004  0x3d58    1028    0/0/0
       3 LSPs
SYSTEMID

The System-ID identifier included in the area-address definition refers to the IS-IS neighbor.

LSP_ID

The identifier is contained in incoming LSPs packets. This value is also dumped in the above output.

LSD entries propagated to the neighbors are valid for a certain duration of time. That value is transmitted in LSPs packets. The Holdtime value in the previous output gives the remaining lifetime for the entry.

For a given router, the maximum-lifetime configuration parameter changes the Remaining lifetime attribute value of outgoing LSP packets.

vsr running routing# isis instance 1
vsr running instance 1# lsp timers [level-1|level-2] maximum-lifetime LIFETIME
vsr running instance 1#
LIFETIME

The maximum LSP lifetime defaults to 1200 seconds.

Each LSP packet is periodically sent each 30 seconds. The generation-interval parameter changes for a given level, the pace of LSP emission.

vsr running routing# isis instance 1
vsr running instance 1# lsp timers [level-1|level-2] generation-interval INTERVAL
vsr running instance 1#
INTERVAL

The LSP packet generation interval in seconds for a given area, between 1 and 120 seconds.

The refresh interval has to be set accordingly to maximum lifetime, and can be adjusted with the following configuration command:

vsr running routing# isis instance 1
vsr running instance 1# lsp timers [level-1|level-2] refresh-interval REFRESH
vsr running instance 1#
REFRESH

The LSP refresh interval in seconds for a given area defaults to 1200 seconds.

LSPs contain reachability TLVs, that are attached to a given system of the built topology. The information is available via the show isis database detail command.

vsr2 running config# show isis database detail vsr.00-00
Area 1:
IS-IS Level-1 link-state database:
LSP ID                  PduLen  SeqNumber   Chksum  Holdtime  ATT/P/OL
vsr.00-00              101   0x00000007  0xe6da     892    0/0/0
  Protocols Supported: IPv4
  Area Address: 49
  Hostname: vsr
  TE Router ID: 10.125.0.1
  Router Capability: 10.125.0.1 , D:0, S:0
  Extended Reachability: 0123.6452.1973.04 (Metric: 10)
  IPv4 Interface Address: 10.125.0.1
  Extended IP Reachability: 10.125.0.0/24 (Metric: 10)
  Extended IP Reachability: 10.100.0.0/24 (Metric: 10)
  Extended IP Reachability: 1.1.1.1/32 (Metric: 10)
  [..]

The topology and the routing information are built from the LSD. The below command dumps the IS-IS routes calculated with IP and IPv6 reachability TLVs.

vsr2 running config# show isis route
[..]
Area 1:
IS-IS L1 IPv4 routing table:

 Prefix         Metric  Interface  Nexthop     Label(s)
 --------------------------------------------------------
 1.1.1.1/32     20      eth0      10.125.0.1  -
 2.2.2.2/32     0       -          -           -
 10.100.0.0/24  20      eth0      10.125.0.1  -
 10.125.0.0/24  20      eth0      10.125.0.1  -
 10.200.0.0/24  0       -          -           -
 [..]

Note

metric value defaults to 10 by default for non redistributed IS-IS routes. Use the below command to change the metric value on the interface where the IPs are available:

vsr running routing# interface eth0
vsr running interface eth0# isis metric level-1 20
vsr running interface eth0#

Redistributed routes also use a metric with 0 value. That value can be changed as per the below configuration command applied for static routes redistribution:

vsr running routing# isis instance 1
vsr running instance 1# redistribute ipv4 static level-1 metric 15
vsr running instance 1#

If an alternate route to a given IP is available with the same cost, then an ECMP route will be made available, unless the transit device sets the overload-bit in LSPs. In that case, any transit traffic will avoid routing to that device.

vsr running routing# isis instance 1
vsr running instance 1# overload true
vsr running instance 1#

If a default route is available in the list of networks to be redistributed, that route will not be transmitted, unless the following command is explicitly configured:

vsr running routing# isis instance 1
vsr running instance 1# default-information-originate ipv4 level-1
vsr running instance 1#

Note

Use the always attribute of the above command to force emission of a default route.