Table of Contents
ISIS Adjacency details are the first step to learn not only the ISIS routing protocol but all other routing protocols, which is discussed in this section.
We will discuss L1 and L2 Adjacency. ISIS Adjacency Differences in LAN and Point-to-Point Interfaces. Adjacency Timers, ISIS Adjacency requirements and also ISIS Adjacency States which help us in troubleshooting.
ISIS Adjacency Fundamental
ISIS protocol, like most routing protocols, in the first step, identifies its neighbors before transmitting any information. The purpose of forming an adjacency, as with other routing protocols, is to ensure that our adjacency parameters are compatible or identical between neighboring routers.
The second goal of forming an adjacency is to track the status of neighboring routers, so that if the connection with any neighboring router is broken, it will be quickly identified to reduce the convergence time.
ISIS routers identify and track their neighbors by sending and receiving Hello packets, which are transmitted every 10 seconds by default.
ISIS Adjacency Level Types and Interface Types
There are two types of Hello packets in ISIS protocol. L1 and L2.
Hello packet sent on LAN interfaces is different from Hello packet sent on Point-to-Point interfaces.
Hello packet sent on LAN interfaces has two types, L1 and L2. In other words, the Hello packet sent by L1 routers on LAN interfaces is separate from the Hello packet sent by L2 routers on the same interface. Therefore, if two routers on a LAN are both of L1/L2 type, two independent adjacency are created, one for L1 and the other for L2.
But on Point-to-Point interfaces, only one type of Hello packet is sent, which contains both L1 and L2 router information.
You may ask why Hello packet related to L1 routers is sent separately from L2 routers in LAN networks. The answer is clear because there may be several routers in a LAN network and some routers are only of L1 type, some routers are only of L2 type and other routers are also of L1/L2 type.
For example, in the figure, routers R1, R2, R3, and R4 form an L1 adjacency, but routers R1, R4, and R5 form an L2 adjacency, and therefore L1 neighbors are different from L2 neighbors.
In Point-to-Point interfaces, there are always two neighbors that are either L1 or L2 or both L1/L2.
ISIS Adjacency Requirements
In the ISIS protocol, like all routing protocols, it is necessary to match some parameters of the neighboring routers to form an adjacency. Some of the parameters that are important in the adjacency of ISIS are as follows:
- Having the same Area number, is necessary to form an L1 Adjacency, but it is not important for a L2 Adjacency.
- In ISIS, as in EIGRP routing protocol, it is not important that neighboring routers have the same hello time and hold time, and each router expects the hello packet according to the hello time configured in the neighboring router.
- It is necessary to have the same authentication information between neighboring routers. The implementation of authentication will be discussed in the next sections.
ISIS Adjacency States
In ISIS, there are three adjacency states. Knowing these states help us to troubleshoot adjacency problems easier.
DOWN: This means that no hello packet was received from that neighbor during the hold time.
Initializing: In this case, the hello packet has been received from the neighbor, but the neighbor has not received the hello packet of this router.
In the hello packet, there is the is-neighbors field, which lists the routers whose hellos are received on each interface. So if the neighbor’s hello is received, but the router’s address isn’t in the is-neighbors field, the router knows that the neighbor hasn’t yet received that router’s hello.
UP: The UP neighbor state means that the two neighbors have received each other’s hello and also agreed on the parameters of the ISIS protocol. For example, if authentication is enabled, the password information is the same between the neighbors.
ISIS Hello Packet Details
It is not bad to know exactly which information are transferred through hello packet in ISIS routing protocol.
This photo which is borrowed from Amit N. Bhagat’s blog, shows the details of a Level 1 LAN Hello packet. This output is not related to our topology and is just for better understanding.
The information sent in LAN Hello includes the following:
- System Id of the router that sends the Hello packet
- Priority which is used to select DIS (equivalent to DR in OSPF. There is no concept of Backup DIS in ISIS).
- LAN ID, which is formed by adding one byte to the system ID of the DIS router. The reason for adding this one byte is that if the same router becomes DIS again for another LAN, we can use this one byte to separate these two DIS.
- Area number
- List of neighboring routers
- Authentication information
- IP address of the interface
- List of supported protocols
The information that is sent in Point-to-Point Hello is the same as the LAN Hello packet, with the difference that it does not have the LAN ID and priority fields, but it has a Circuit Id byte that specifies the router interface and has been discussed before.
ISIS Adjacency Demo Example
This is a topology identical to the topology we saw at the beginning of this section. The configuration is shown here but we do not discuss about the configuration since they are discussed in the previous sections.
In this topology, we can see the output of the adjacency table on router R1 with the command “show isis neighbors”.
IOU1#show isis neighbors
System Id Type Interface IP Address State Holdtime Circuit Id
IOU2 L1 Et0/0 192.168.1.2 UP 28 IOU4.01
IOU3 L1 Et0/0 192.168.1.3 UP 29 IOU4.01
IOU4 L1 Et0/0 192.168.1.4 UP 8 IOU4.01
IOU4 L2 Et0/0 192.168.1.4 UP 22 IOU5.01
IOU5 L2 Et0/0 192.168.1.5 UP 8 IOU5.01
IOU1#
As you can see in this output, router R1 has created two separate Adjacency with router R4, one of the type of L1 and the other of the type of L2.
To see the details of neighborship, we can use the command “show isis neighbors detail”.
IOU1#show isis neighbors detail
System Id Type Interface IP Address State Holdtime Circuit Id
...
IOU4 L1 Et0/0 192.168.1.4 UP 9 IOU4.01
System Id Type Interface IP Address State Holdtime Circuit Id
Area Address(es): 49.0001
SNPA: aabb.cc00.0400
State Changed: 00:11:18
LAN Priority: 64
Format: Phase V
Remote TID: 0
Local TID: 0
Interface name: Ethernet0/0
IOU4 L2 Et0/0 192.168.1.4 UP 22 IOU5.01
Area Address(es): 49.0001
SNPA: aabb.cc00.0400
State Changed: 00:17:57
LAN Priority: 64
Format: Phase V
Remote TID: 0
Local TID: 0
Interface name: Ethernet0/0
...
As you can see in the output, there are two records for the neighbor R4 is created. One for L1 and one for L2.
The system Id of the neighbor, type of the neighbor, IP address of the neighbor, area number and LAN priority are some important fields that are shown in the output.
Configure ISIS Router and Interface Level type
As you already know, all ISIS routers are L1/L2 by default, so they send both L1 and L2 Hellos on LAN interfaces.
As already shown, if you want the router to be L1 only, use the “is-type level-1” command, so the router will only send L1 type hello packets.
If you want the router to send L2 type hello packets only, use the command “is-type level-2-only” command.
If the router is of the type of L1/L2, and you want to send only L1 or L2 Hello packets on specific interface, use the “isis circuit-type” command in the interface context mode to determine the type of hello packet sent.
ISIS Adjacency Timers
As I have mentioned at the beginning of this section, Hello packets are transmitted every 10 seconds by default.
To change the interval of sending hello packet, to minimize the convergence time, we use the command “isis hello-interval” in the interface environment.
By default, the hold time is 3 times the hello time. To change the hold time multiplier, use the “isis hello-multiplier” command in the interface context mode.
IOU1(config)#interface ethernet 0/0
IOU1(config-if)#isis hello-interval ?
<1-65535> Hello interval value
minimal Holdtime 1 second, interval depends on multiplier
IOU1(config-if)#isis hello-interval minimal ?
level-1 Specify hello-interval for level-1 IIHs
level-2 Specify hello-interval for level-2 IIHs
<cr>
IOU1(config-if)#isis hello-multiplier ?
<3-1000> Hello multiplier value
IOU1(config-if)#isis hello-multiplier 3 ?
level-1 Specify hello multiplier for level-1 IIHs
level-2 Specify hello multiplier for level-2 IIHs
<cr>
IOU1#
There are three points worth mentioning in ISIS adjacency timer commands.
First, it is possible to change the value of hello-time and hold-time at L1 and L2 levels independently. This means that on LAN interfaces, interval of sending L1 Hello and L2 Hello can be different.
Second, if you configure hello-time as minimal, the hold-time value will be 1 second and the hello-time value is determined according to the hello-multiplier.
For example, by configuring hello-time as minimal and the value of 3 as hello-multiplier, the hello timer will be one third (1/3) of one second.
Another important point is that the value of hello time and hold time in DIS router is one third of the configured time. The reason for that is to detect quick when DIS router is failed. We will discuss this further in the next sections.
By default, the value of hello time and hold time in DIS router are 3.333 seconds and 10 seconds.
Circuit Id in ISIS LAN Interface
You can also use the command “show clns is-neighbors” to view the ISIS neighbor table. System Id and type of the neighbors are shown in the output.
IOU1#show clns is-neighbors
System Id Interface State Type Priority Circuit Id Format
IOU2 Et0/0 Up L1 64 IOU4.01 Phase V
IOU3 Et0/0 Up L1 64 IOU4.01 Phase V
IOU4 Et0/0 Up L1L2 64/64 IOU4.01 Phase V
IOU5 Et0/0 Up L2 64 IOU5.01 Phase V
IOU1#
The sixth column in this output shows the circuit id. You know that the circuit id is used to address the interface in the router.
As already mentioned, if the interface type is LAN, the circuit ID refers to the system ID of the DIS router.
From this output we can understand that the DIS in the LAN network is router R4 for L1 adjacency and router R5 for L2 adjacency.