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.
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: 220.127.116.11/32 Metric: 0 Internal Up IP prefix: 18.104.22.168/24 Metric: 10 Internal Up IP prefix: 22.214.171.124/32 Metric: 0 Internal Up IP prefix: 126.96.36.199/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: 188.8.131.52/23 Metric: 10 Internal Up IP prefix: 184.108.40.206/32 Metric: 10 Internal Up IP prefix: 220.127.116.11/32 Metric: 0 Internal Up IP prefix: 18.104.22.168/24 Metric: 10 Internal Up IP prefix: 22.214.171.124/32 Metric: 0 Internal Up IP prefix: 126.96.36.199/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: 188.8.131.52 Metric: 10 IP 184.108.40.206/24 Metric: 0 IP 220.127.116.11/32 Metric: 0 IP 18.104.22.168/32 Metric: 0 IP 22.214.171.124/32 Metric: 10 IS-Extended CR4.01