< Home

IS-IS Fundamentals

IS-IS is a link-state routing protocol. Each router generates an LSP that contains link state information about all the IS-IS interfaces on the router. The router can establish IS-IS neighbor relationships with neighboring devices and update its LSDB to synchronize the local LSDB with the LSDBs of all the other devices on the IS-IS network. Based on the local LSDB, the router uses the SPF algorithm to calculate IS-IS routes. If the router finds that an IS-IS route is the optimal route to a destination, the router adds the route to the local IP routing table to guide packet forwarding.

Establishment of IS-IS Neighbor Relationship

Two IS-IS routers need to establish a neighbor relationship before exchanging packets to implement routing. On different networks, the modes for establishing IS-IS neighbors are different.

  • Establishment of a neighbor relationship on a broadcast link

    Figure 1 uses Level-2 routers as an example to describe the process of establishing a neighbor relationship on a broadcast link. The process of establishing a neighbor relationship between Level-1 routers is the same as the process of establishing a neighbor relationship between Level-2 routers.

    Figure 1 Process of establishing a neighbor relationship on a broadcast link

    1. RouterA broadcasts a Level-2 LAN IS-IS Hello PDU (IIH) with no neighbor ID specified.
    2. RouterB receives this packet and sets the status of the neighbor relationship with RouterA to Initial. RouterB then responds to RouterA with a Level-2 LAN IIH, indicating that RouterA is a neighbor of RouterB.
    3. RouterA receives this packet and sets the status of the neighbor relationship with RouterB to Up. RouterA then sends RouterB a Level-2 LAN IIH indicating that RouterB is a neighbor of RouterA.
    4. RouterB receives this packet and sets the status of the neighbor relationship with RouterA to Up. RouterA and RouterB establish a neighbor relationship successfully.

    The network is a broadcast network, so a DIS needs to be elected. After the neighbor relationship is established, routers wait for two intervals before sending Hello packets to elect the DIS. The IIH packets exchanged by the routers contain the Priority field. The router with the highest priority is elected as the DIS. If the routers have the same priority, the router with the largest interface MAC address is elected as the DIS.

  • Establishment of a neighbor relationship on a P2P link

    Unlike the establishment of a neighbor relationship on a broadcast link, the establishment of a neighbor relationship on a P2P link is classified into two modes: two-way mode and three-way mode.

    • Two-way mode

      Upon receiving a P2P IIH from a neighbor, a router considers the neighbor Up and establishes a neighbor relationship with the neighbor.

    • Three-way mode

      A neighbor relationship is established after P2P IIHs are sent three times. The establishment of a neighbor relationship on a P2P link is similar to that on a broadcast link.

    The two-way mode has distinct disadvantages. For example, when two or more links exist between two routers, the two routers can still establish a neighbor relationship if one link is Down and the other is Up in the same direction. The parameters of the link in Up state are used in SPF calculation. As a result, the router that does not detect the fault of the link in Down state still tries to forward packets over this link. The three-way mode addresses such problems on unreliable P2P links. In three-way mode, a router considers the neighbor Up only after confirming that the neighbor receives the packet sent by it, and then establishes a neighbor relationship with the neighbor.

Basic rules for establishing an IS-IS neighbor relationship are as follows:
  • Only neighboring routers of the same level can set up the neighbor relationship with each other.

  • Level-1 routers must have the same area IDs.

  • Network types of IS-IS interfaces on both ends of a link must be consistent.

    Ethernet interfaces can be simulated as P2P interfaces to establish a neighbor relationship on a P2P link.
  • IP addresses of IS-IS interfaces on both ends of a link must be on the same network segment.

    IS-IS runs on the data-link layer and was initially designed for CLNP. Therefore, the establishment of IS-IS neighbor relationships is not related to IP addresses. In the implementation of a device, IS-IS runs only over IP. Therefore, IS-IS needs to check the IP address of its neighbor. If secondary IP addresses are assigned to the interfaces, the routers can still set up the IS-IS neighbor relationship, but only when either the primary IP addresses or secondary IP addresses are on the same network segment.

    When IP addresses of IS-IS interfaces on both ends of a link are on different network segments, a neighbor relationship can still be established on the two interfaces if the interfaces are configured not to check the IP addresses in received Hello packets. You can configure P2P interfaces not to check the IP addresses in received Hello packets. Before configuring Ethernet interfaces not to check the IP addresses, simulate Ethernet interfaces as P2P interfaces.

Process of Exchanging IS-IS LSPs

Causes of LSP generation

All routers in the IS-IS routing domain can generate LSPs. The following events trigger the generation of a new LSP:

  • Neighbor is Up or Down.

  • Related interface goes Up or Down.

  • Imported IP routes change.

  • Inter-area IP routes change.

  • Interface is assigned a new metric value.

  • Periodic updates occur.

Processing of a new LSP received from a neighbor
  1. The router installs the LSP to its LSDB and marks it for flooding.

  2. The router sends the LSP to all interfaces except the interface that initially received the LSP.

  3. The neighbors flood the LSP to their neighbors.

LSP flooding

In LSP flooding, a router sends an LSP to its neighbors and then the neighbors send the received LSP to their respective neighbors except the router that first sends the LSP. In this manner, the LSP is flooded among the routers of the same level. LSP flooding allows each router of the same level to have the same LSP information and synchronize its LSDB with each other.

Each LSP has a 4-byte sequence number. When a router is started, the sequence number of the first LSP sent by the router is 1. When a new LSP is generated, the sequence number of the LSP is equal to the sequence number of the previous LSP plus 1. Therefore, newer LSPs have larger sequence numbers.

Process of synchronizing LSDBs between a newly added router and DIS on a broadcast link
Figure 2 Process of updating LSDBs on a broadcast link

In Figure 2

  1. A new router (RouterC) sends a Hello packet to establish neighbor relationships with the other routers in the broadcast domain.
  2. RouterC establishes neighbor relationships with RouterA and RouterB, waits for the timeout of the LSP refresh timer, and then sends its LSP to a multicast address (01-80-C2-00-00-14 in a Level-1 area and 01-80-C2-00-00-15 in a Level-2 area). All neighbors on the network can receive the LSP.
  3. The DIS on the network segment adds the received LSP to its LSDB. After the CSNP timer expires, the DIS sends CSNPs to synchronize the LSDBs on the network.
  4. RouterC receives the CSNPs from the DIS, checks its LSDB, and sends a PSNP to request the LSPs it does not have.
  5. The DIS receives the PSNP and sends RouterC the required LSPs for LSDB synchronization.
The process of updating the LSDB of the DIS is as follows:
  1. When the DIS receives an LSP, it searches the LSDB to check whether the same LSP exists. If the DIS does not find the same LSP in its LSDB, the DIS adds the LSP to its LSDB and broadcasts the content of the new LSDB.
  2. If the sequence number of the received LSP is greater than that of the corresponding LSP in the LSDB, the DIS replaces the existing LSP with the received LSP and broadcasts the contents of the new LSDB. If the sequence number of the received LSP is smaller than that of the corresponding LSP in the LSDB, the DIS sends its LSP in the LSDB through the inbound interface of the received LSP.
  3. If the sequence number of the received LSP is the same as that of the corresponding LSP in the LSDB, the DIS compares the remaining lifetime of the two LSPs. If the remaining lifetime of the received LSP is smaller than that of the corresponding LSP in the LSDB, the DIS replaces the existing LSP with the received LSP and broadcasts the contents of the new LSDB. If the remaining lifetime of the received LSP is greater than that of the corresponding LSP, the DIS sends its LSP in the LSDB through the inbound interface of the received LSP.
  4. If the sequence number and remaining lifetime of the received LSP are the same as those of the corresponding LSP in the LSDB, the DIS compares the checksum of the two LSPs. If the checksum of the received LSP is greater than that of the corresponding LSP in the LSDB, the DIS replaces the existing LSP with the received LSP and broadcasts the content of the new LSDB. If the checksum of the received LSP is smaller than that of the corresponding LSP, the DIS sends its LSP in the LSDB through the inbound interface of the received LSP.
  5. If the sequence number, remaining lifetime, and checksum of the received LSP are the same as those of the corresponding LSP in the LSDB, the DIS does not forward the received LSP.
Process of synchronizing the LSDB on a P2P link
Figure 3 Process of updating LSDBs on a P2P link

  1. RouterA establishes a neighbor relationship with RouterB.

  2. RouterA and RouterB send a CSNP to each other. If the LSDB of the neighbor and the received CSNP are not synchronized, the neighbor sends a PSNP to request the required LSP.

  3. Figure 3 assumes that RouterB requests the required LSP from RouterA. RouterA sends the required LSP to RouterB, starts the LSP retransmission timer, and waits for a PSNP from RouterB as an acknowledgement for the received LSP.

  4. If RouterA does not receive a PSNP from RouterB after the LSP retransmission timer expires, RouterA resends the LSP until it receives a PSNP from RouterB.

A PSNP on a P2P link is used as:
  • A request packet to acquire LSPs

  • An ACK packet to acknowledge the received LSP

The process of updating LSDBs on a P2P link is as follows:
  1. If the sequence number of the received LSP is greater than the sequence number of the corresponding LSP in the LSDB, the router adds the LSP to its LSDB. The router then sends a PSNP packet to acknowledge the received LSP. At last, the router sends the LSP to all its neighbors except the neighbor that sends the LSP.

  2. If the sequence number of the received LSP is smaller than the sequence number of the corresponding LSP, the router directly sends its LSP to the neighbor and waits for a PSNP from the neighbor as the acknowledgement.

  3. If the sequence number of the received LSP is the same as the sequence number of the corresponding LSP in the LSDB, the router compares the Remaining Lifetime of the two LSPs. If Remaining Lifetime of the received LSP is 0, the router adds the LSP to its LSDB. The router then sends a PSNP to acknowledge the received LSP. If Remaining Lifetime of corresponding LSP is 0, the router directly sends its LSP to the neighbor and waits for a PSNP from the neighbor.

  4. If the sequence number of the received LSP and the corresponding LSP in the LSDB are the same, and neither Remaining Lifetime is 0, router compares the checksum of the two LSPs. If the received LSP has a greater checksum than that of the corresponding LSP, the router adds the LSP to its LSDB. The router then sends a PSNP to acknowledge the received LSP. If the received LSP has a smaller checksum than that of the corresponding LSP, the router directly sends its LSP to the neighbor and waits for a PSNP from the neighbor. At last, the router sends the LSP to all its neighbors except the neighbor that sends the LSP.

  5. If the checksum of the received LSP and that of the corresponding LSP are the same, the LSP is not forwarded.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic Next topic >