IS-IS DIS and Pseudonode

IS-IS as a link-state routing protocol requires that all routers in the same area (or backbone) have a synchronized link-state database. When a router floods its LSP carrying its prefixes, it’s important that all routers that receive it somehow acknowledge this. This introduces a problem on multi-access networks like a LAN. Let me give you an example:

is-is r1 sending lsp on lan

Above we have four routers connected to a LAN segment. These routers will send hello packets to each other and when they see other routers, they will become neighbors. In IS-IS, all routers establish a full neighbor adjacency with each other (unlike OSPF where routers only form a full neighbor adjacency with the DR/BDR). Once the routers are neighbors, they will flood their LSP to a multicast destination; all other routers will receive this LSP and add it to their database. Above we see that R1 floods its LSP on the LAN.

is-is r1 clueless

The LSP from R1 might make it to R2, R3, and R4 but there is no way for R1 to know. We need an acknowledgment so that R1 knows that its LSP made it to the other routers. We could let R2, R3, and R4 send a unicast acknowledgment to R1 but that’s not how IS-IS works.

Another issue is that the link-state database can grow exponentially. With four routers on a LAN, each router will have three neighbor adjacencies. There will be six neighbor adjacencies to consider in total.

To solve the acknowledgment problem and to reduce the size of the link-state database, we use a special mechanism. When IS-IS routers become neighbors, they also do an election to decide who becomes the DIS (Designated IS). The decision which becomes the DIS is based on certain criteria:

  1. Interface priority (default 64)
  2. highest SNPA (Subnetwork Point of Attachment)
    1. On a LAN, this is the MAC address.
    2. On frame-relay, this is the DLCI number.
      1. If the DLCI number is the same, the system ID is the tie-breaker.

We can change the priority, but by default, on a LAN the router with the highest MAC address will become the DIS. There is only one DIS, there is no backup router, and the election is preemptive. If you configure a router with a better priority or one that has a higher MAC address, it will become the new DIS immediately.

is-is dis election

The DIS is responsible for creating a pseudonode. This is a virtual node created by the DIS. The pseudonode will do two things:

  • Create and update a pseudonode LSP that reports links to all neighbors.
  • Create a CSNP (Complete Sequence Numbers Protocol).

The pseudonode will send the pseudonode LSP that contains a list of all neighbors that it is connected to with a metric of 0. This pseudonode LSP is sent to a multicast address, all IS-IS routers receive it. This turns the multi-access network into a “point-to-point” topology where the pseudonode sits in the middle:

is-is pseudonode dis point-to-point

This simplifies the link-state topology There are now only four neighbor adjacencies to consider:

  • R1-Pseudonode
  • R2-Pseudonode
  • R3-Pseudonode
  • R4-Pseudonode

Which is far less than the six neighbor adjacencies we would have without the pseudonode where each router would report three neighbor adjacencies.

The second task of the pseudonode is to create a CSNP:

is-is pseudonode lan

In the CSNP we will find a summary of each LSP that was flooded in the area:

  • LSP ID
  • LSP sequence number
  • LSP remaining lifetime
  • LSP checksum

You won’t find any prefixes in the CSNP. It’s just a simple overview with the latest LSPs. Why do we use this? Here’s an example:

is-is R1 sees own lsp pseudonode csnp

Previously, R1 has flooded its LSP on the LAN but didn’t know if R2, R3 or R4 received it or not. It now sees the CSNP from the pseudonode which includes a summary of the LSP from R1. This acts like an acknowledgment, R1 now knows that the pseudonode has seen its LSP.

What if R1 doesn’t see its own LSP in the CSNP? That tells R1 that the LAN doesn’t know about its LSP and it will flood its LSP again.

If one of the routers receives the CSNP and sees that one of the LSPs in the CSNP has a higher sequence number than the one in its own database, then it will send a PSNP (Partial Sequence Numbers PDU), requesting the newer information. The PSNP is sent with multicast so all routers receive it. Only the DIS will respond to this message. We do this because if all routers would respond, we would waste network resources.

The CSNP is sent every 10 seconds so there will be plenty of opportunities for the routers to check if their latest LSP is known on the LAN and if their current information is up-to-date.

The DIS is elected for each level. If your routers run both level 1 and level 2, you will have two separate DIS elections and two pseudonodes.

Configuration

Let’s take a look at the DIS and pseudonode in action. I will use the following topology for this example:

is-is area 1234 topology lan

Above we have four routers that are connected to a single switch. We use the 192.168.1.0/24 subnet. R1 has a loopback that I will use to trigger it to update its LSP. I will configure all routers as level 1 routers.

Configurations

Want to take a look for yourself? Here you will find the startup configuration of each device.

R1

hostname R1
!
ip cef
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
 ip router isis 
!
interface GigabitEthernet0/1
 ip address 192.168.1.1 255.255.255.0
 ip router isis 
!
router isis
 net 49.1234.0000.0000.0001.00
 is-type level-1
 log-adjacency-changes
!
end

R2

hostname R2
!
ip cef
!
interface GigabitEthernet0/1
 ip address 192.168.1.2 255.255.255.0
 ip router isis 
!
router isis
 net 49.1234.0000.0000.0002.00
 is-type level-1
 log-adjacency-changes
!
end

R3

hostname R3
!
ip cef
!
interface GigabitEthernet0/1
 ip address 192.168.1.3 255.255.255.0
 ip router isis 
!
router isis
 net 49.1234.0000.0000.0003.00
 is-type level-1
 log-adjacency-changes
!
end

R4

hostname R4
!
ip cef
!
interface GigabitEthernet0/1
 ip address 192.168.1.4 255.255.255.0
 ip router isis 
!
router isis
 net 49.1234.0000.0000.0004.00
 is-type level-1
 log-adjacency-changes
!
end

Verification

Let’s start by looking at the neighbor adjacencies:

R1#show isis neighbors

System Id       Type Interface     IP Address      State Holdtime Circuit Id
R2              L1   Gi0/1         192.168.1.2     UP    9        R2.01              
R3              L1   Gi0/1         192.168.1.3     UP    28       R2.01              
R4              L1   Gi0/1         192.168.1.4     UP    27       R2.01
R2#show isis neighbors

System Id       Type Interface     IP Address      State Holdtime Circuit Id
R1              L1   Gi0/1         192.168.1.1     UP    22       R2.01              
R3              L1   Gi0/1         192.168.1.3     UP    28       R2.01              
R4              L1   Gi0/1         192.168.1.4     UP    27       R2.01 
R3#show isis neighbors

System Id       Type Interface     IP Address      State Holdtime Circuit Id
R1              L1   Gi0/1         192.168.1.1     UP    22       R2.01              
R2              L1   Gi0/1         192.168.1.2     UP    9        R2.01              
R4              L1   Gi0/1         192.168.1.4     UP    27       R2.01
R4#show isis neighbors

System Id       Type Interface     IP Address      State Holdtime Circuit Id
R1              L1   Gi0/1         192.168.1.1     UP    21       R2.01              
R2              L1   Gi0/1         192.168.1.2     UP    9        R2.01              
R3              L1   Gi0/1         192.168.1.3     UP    28       R2.01 

In the output above, we see that we have a full-mesh of neighbor adjacencies. Each router has become neighbors with all other routers. The other thing we see is the circuit ID. The circuit ID is a one octet value that uniquely identifies the interface that IS-IS runs on. On a multi-access network, the circuit ID is concatenated with the system ID of the DIS. Looking at the value (R2.01), this tells us that R2 must be the DIS.

Once the routers are neighbors, they will flood their LSPs. Here’s an example of the LSP that R1 floods:

is-is r1 lsp

Above you can see that the LSP gets flooded to 01:80:c2:00:00:14, the multicast address for all level 1 IS-IS routers.

IS-IS R1 LSP

Here’s the pseudonode LSP that R2, our DIS floods:

is-is pseudonode lsp

Above you can see an overview of all neighbors that are connected (including R2) to the pseudonode with a metric of 0.

IS-IS Pseudonode LSP

Let’s take a look at the databases of our routers:

R1#show isis database 

IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00            * 0x0000000E   0x6CFB        1151              0/0/0
R2.00-00              0x0000000B   0x9ACD        430               0/0/0
R2.01-00              0x00000009   0x7BAF        935               0/0/0
R3.00-00              0x0000000C   0xC0A3        624               0/0/0
R4.00-00              0x0000000C   0xE878        643               0/0/0
R2#show isis database 

IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00              0x0000000E   0x6CFB        1149              0/0/0
R2.00-00            * 0x0000000B   0x9ACD        434               0/0/0
R2.01-00            * 0x00000009   0x7BAF        938               0/0/0
R3.00-00              0x0000000C   0xC0A3        625               0/0/0
R4.00-00              0x0000000C   0xE878        644               0/0/0
R3#show isis database 

IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00              0x0000000E   0x6CFB        1149              0/0/0
R2.00-00              0x0000000B   0x9ACD        434               0/0/0
R2.01-00              0x00000009   0x7BAF        937               0/0/0
R3.00-00            * 0x0000000C   0xC0A3        629               0/0/0
R4.00-00              0x0000000C   0xE878        646               0/0/0
R4#show isis database 

IS-IS Level-1 Link State Database:
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00              0x0000000E   0x6CFB        1149              0/0/0
R2.00-00              0x0000000B   0x9ACD        432               0/0/0
R2.01-00              0x00000009   0x7BAF        936               0/0/0
R3.00-00              0x0000000C   0xC0A3        626               0/0/0
R4.00-00            * 0x0000000C   0xE878        647               0/0/0

The database of each router is the same. We can see an LSP for R1, R2, R3, and R4. The second LSP that you see (R2.01-00) is the pseudonode LSP, generated by R2 our DIS. Let’s take a look at one of the regular LSPs. For example, the LSP of R1:

R1#show isis database R1.00-00 detail


IS-IS Level-1 LSP R1.00-00
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime      ATT/P/OL
R1.00-00            * 0x0000000E   0x7CF3        637               0/0/0
  Area Address: 49.1234
  NLPID:        0xCC 
  Hostname: R1
  Metric: 10         IS R2.01
  IP Address:   192.168.1.1
  Metric: 10         IP 192.168.1.0 255.255.255.0

Above we see two entries:

  • Prefix 192.168.1.0/24 with a metric of 10.
  • One entry for the pseudonode, with a metric of 10.

Let’s now take a look at the LSP of the pseudonode:

We're Sorry, Full Content Access is for Members Only...

If you like to keep on reading, Become a Member Now!

  • Learn any CCNA, CCNP and CCIE R&S Topic. Explained As Simple As Possible.
  • Try for Just $1. The Best Dollar You’ve Ever Spent on Your Cisco Career!
  • Full Access to our 800 Lessons. More Lessons Added Every Week!
  • Content created by Rene Molenaar (CCIE #41726)
517 Sign Ups in the last 30 days
satisfaction-guaranteed

  • 100% Satisfaction Guaranteed!
  • You may cancel your monthly membership at any time.
  • No Questions Asked!

Tags:


Forum Replies

  1. Hi Rene,
    Is there any way to make it P2P like OSPF ? Thanks

    br//zaman

  2. Hello Zaman,

    There is yes, you can use this command:

    R1(config-if)#isis network ?
      point-to-point  Specify ISIS point-to-point network

    You can use this on broadcast networks (like Ethernet) when you only have two routers. This disables the creation/election of a DIS so it’s more efficient.

    Rene

  3. Hello Rene
    i have Problem with understanding that DIS / PSN
    please explain it to me more simple

  4. Hello BGP

    With the pseudonode, there are a total of four adjacencies in the whole topology. If there were no pseudonode, each router would have to create an adjacency with every other router. That means:

    1. R1 - R2
    2. R1 - R3
    3. R1 - R4
    4. R2 - R3
    5. R2 - R4
    6. R3 - R4

    So by using the pseudonode you reduce the number of adjacencies, you reduce the complexity of the topology, and you reduce the number of updates that have to be exchanged between particular routers.

    ... Continue reading in our forum

  5. Hello Kevin

    When implementing OSPF, if there are many routers connected to the same broadcast domain, a DR and BDR election takes place. All routers in the broadcast domain create two neighbor adjacences: One to the DR and one to the BDR. There is also an adjacency between the DR and BDR.

    When implementing IS-IS, there is a similar mechanism. The Designated IS (DIS) is elected and it creates a virtual router called a pseudonode. This pseudonode plays the corresponding role of the DR in OSPF. However, in this case, each router will create a single neighbor

    ... Continue reading in our forum

5 more replies! Ask a question or join the discussion by visiting our Community Forum