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 localSystem 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 to00
to distinguish NET from another NSAP format.For instance,
49.0000.0123.6452.1972.00
and49.0000.0123.6452.1973.00
are two NET addresses belonging to the samearea domain
, but from separate devices.See also
see ISO 8348 for details about NSAP address 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
RFC 5303 : Three way handshake
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 thearea-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.