IS-IS DIS in Practice

In the previous post IS-IS Neighbor Discovery we have discussed how IS-IS automatically discovers neighbors, in this post we will discuss the DIS role in broadcast networks.

After the adjacency state reached the UP state the DIS election process take place, the router with the highest priority value (0-127 specified in the Priority field of the IIH PDU) win the election, if multiple routers have the same priority which is the case in most scenarios due to the default value "64" of most implementations, the router with the highest SNPA (MAC address discovered from the MAC header of the received IIH PDUs) win the election and become the DIS for this segment (in Some circumstances the System-ID is also used in the election process.

On a frame-relay network the L2 address is DLCI which is the same in both sides so in this case the System-ID of the origin routers (discovered from the Source-ID of the received IIH PDUs) is used instead and the router with highest System-ID win the election.

DIS Role

On LAN networks the DIS is used to minimize the link-state database size by using the concept of Pseudo-Node, and reduce the number of acknowledgment messages "PSNPs".

Since the IS-IS communication between routers on the broadcast networks happening through multicast MAC addressed all routers will form a full-mesh of adjacencies with each others, so if we have 3 routers on the same LAN each router will reports that he has adjacency with 2 routers which ultimately makes the link-state topology  appears like as 6 adjacency which complex the SPF task, as a solution for such scenario the DIS creates a logical router called Pseudo-node who makes the network appears like a star topology instead of full-mesh, then on behave the Pseudo-Node, the DIS sends Level-1 and Level-2 Pseudo-Node LSPs, each to the appropriate Level  destination MAC address which instructs the the IS-IS routers that the Pseudo-Node has adjacency to each router on the LAN including the DIS itself with metric 0, on other hand each router send in its LSPs that he has adjacency to the Pseudo-Node only with metric 10, so now the network is appeared like centralized router which is the Pseudo-Node and all routers are connected to this router which is ultimately reduce the link-state database size because visually instead of 3 routers and 6 adjacencies we have 3 routers with 3 adjacencies, this benefit become significant in a LAN network with over 20 routers running IS-IS, Calculate it :)

On broadcast networks  and even with the DIS once the adjacency reached the UP state all the routers will exchanging the LSPs directly with each others (remember the multicast MAC address which all of them listening to) the DIS doesn't send the LSP on behave any router in the flooding stage, the DIS sends CSNP which is carrying each LSP Sequence number, check-sum, Remaining-Lifetime  in small interval to make sure that all routers have synchronized databases,  the ordinary behavior on P2P links when a router send LSP it is expecting to receive ACK message "PSNP" which confirms that the LSP is successfully received, otherwise the same LSP will be generated within 5 seconds, but in broadcast networks this is not what is happening, as i mentioned above the DIS is there to minimize the database size and the number of messages on the segment, so instead of waiting for ACK for each LSP the router sent the routers check the regular CSNP send by the DIS for their LSP, if it is there with the latest sequence number so the LSP has been received successfully thus no need to retransmit it.

The last rule,  in the broadcast networks, if JR1 sends LSP but for some reason this LSP doesn't received by another router  let's say JR2, few seconds JR2 will discover the absence of this LSP in its database after see it in the DIS CSNP so JR2 will request the missing LSP by sending PSNP which is specifying the missing LSP, in turn only the DIS will response to this PSNP and send the requested LSP, otherwise if this rule wasn't there all the routers will response with the requested LSP which is wasting resources.

JUNOS Pseudo-Node and Level-1, Level-2 LSPs

[email protected]> show isis adjacency
Interface             System         L State        Hold (secs) SNPA
ge-0/0/0.0            JR2.core2      1  Up                   21  b0:c6:9a:23:7c:0
ge-0/0/0.0            JR2.core2      2  Up                   21  b0:c6:9a:23:7c:0
ge-0/0/0.0            JR3.core3      1  Up                    8  b0:c6:9a:23:80:0
ge-0/0/0.0            JR3.core3      2  Up                    8  b0:c6:9a:23:80:0

Hereunder is the Pseudo-node LSP which reports adjacency between
the Pseudo-Node and all routers.

[email protected]> show isis database JR3.core3.02-00 detail
IS-IS level 1 link-state database:

JR3.core3.02-00 Sequence: 0x3, Checksum: 0x4720, Lifetime: 1088 secs
   IS neighbor: JR1.core1.00                  Metric:        0
   IS neighbor: JR2.core2.00                  Metric:        0
   IS neighbor: JR3.core3.00                  Metric:        0
   IS neighbor: CR5.pe5.00                    Metric:        0

IS-IS level 2 link-state database:

JR3.core3.02-00 Sequence: 0x3, Checksum: 0x4720, Lifetime: 1088 secs
   IS neighbor: JR1.core1.00                  Metric:        0
   IS neighbor: JR2.core2.00                  Metric:        0
   IS neighbor: JR3.core3.00                  Metric:        0
   IS neighbor: CR5.pe5.00                    Metric:        0

Hereunder is a normal LSP which is reports adjacency between JR2 and
the Pseudo-Node only.

[email protected]> show isis database JR2.core2.00-00 detail
IS-IS level 1 link-state database:

JR2.core2.00-00 Sequence: 0x2, Checksum: 0xed9f, Lifetime: 971 secs
   IS neighbor: JR3.core3.02                  Metric:       10
   IP prefix: 2.2.2.2/32                      Metric:        0 Internal Up
   IP prefix: 150.0.0.0/24                    Metric:       10 Internal Up
   IP prefix: 160.1.1.1/32                    Metric:        0 Internal Up
   IP prefix: 202.202.202.202/32              Metric:        0 Internal Up

IS-IS level 2 link-state database:

JR2.core2.00-00 Sequence: 0x3, Checksum: 0x8b6a, Lifetime: 1004 secs
   IS neighbor: JR3.core3.02                  Metric:       10
   IP prefix: 1.1.0.0/23                      Metric:       10 Internal Up
   IP prefix: 1.1.1.1/32                      Metric:       10 Internal Up
   IP prefix: 2.2.2.2/32                      Metric:        0 Internal Up
   IP prefix: 150.0.0.0/24                    Metric:       10 Internal Up
   IP prefix: 160.1.1.1/32                    Metric:        0 Internal Up
   IP prefix: 202.202.202.202/32              Metric:        0 Internal Up

IOS Pseudo-Node and L1, L2 LSPs

CR4#show clns is-neighbors
System Id      Interface   State  Type Priority  Circuit Id         Format
0000.0000.0001 Gi0/1       Up     IS   0         0000.0000.0000.00  Phase V
CR6            Gi0/1       Up     L1   64        CR4.01         Phase V

CR1#show isis database CR4.01-00 detail 

IS-IS Level-1 LSP CR4.01-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
CR4.01-00           * 0x0000006E   0xE8C9        414               0/0/0
  Metric: 0          IS-Extended CR4.00
  Metric: 0          IS-Extended CR6.00
  Metric: 0          ES 0000.0000.0001

CR4#show isis database CR6.00 detail
IS-IS Level-1 LSP CR6.00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
CR6.00                0x000001B0   0x74A1        739               0/0/0
  Area Address: 49.0001
  NLPID:        0xCC
  Hostname: CR6
  IP Address:   6.6.6.6
  Metric: 10         IP 150.1.1.0/24
  Metric: 0          IP 6.6.6.6/32
  Metric: 0          IP 60.60.60.60/32
  Metric: 0          IP 160.160.160.160/32
  Metric: 10         IS-Extended CR4.01

Check Also

Best AI tools list