Skip to main content
  1. Network Articles/
  2. IS-IS Articles/

The DIS and the Pseudonode

Table of Contents

The DIS and the Pseudonode

When several routers sit on one broadcast segment, IS-IS elects one of them as the representative: the DIS (Designated Intermediate System). The role corresponds to OSPF’s DR, but the resemblance stops at the name and the idea of electing a representative — the mechanics differ considerably.

The DIS’s central job is to build, on everyone’s behalf, a fictitious node in the database called the pseudonode. This article looks at what the pseudonode solves, how the DIS is elected, and where it parts company with OSPF’s DR, checking each point on real equipment.

Where the Priority and LAN ID fields sit inside a LAN IIH is covered in IS-IS Packet Types and Header Format. This article is about what they are for: how the DIS gets decided, and how the pseudonode is built.

What the Pseudonode Solves

A broadcast segment is a place where everyone reaches everyone directly. Represented literally in a link-state database, that is n routers in a full mesh, which is n(n−1)/2 links: 6 for four routers, 45 for ten. It grows fast.

To avoid that, clause 3.6.7 of ISO/IEC 10589:2002 treats the segment itself as a single node.

Where a broadcast subnetwork has n connected Intermediate systems, the broadcast subnetwork itself is considered to be a pseudonode. The pseudonode has links to each of the n Intermediate and End systems. Each of the ISs has a single link to the pseudonode (rather than n-1 links to each of the other Intermediate systems).

The link count drops from n(n−1)/2 to n. Clause 7.2.3 then states that each router reports only its link to the pseudonode, and the DIS constructs the pseudonode’s own LSPs on its behalf.

That is what the DIS fundamentally does. Not “speak for the others” so much as ghost-write the LSP of a fictitious node called the LAN — reading it that way makes the rest of the behaviour follow naturally.

The Pseudonode LSP Carries a Metric of Zero

Introducing a pseudonode creates a risk of counting a path’s cost twice, since getting from R2 to R3 now traverses two links: R2 to the pseudonode, and the pseudonode to R3.

ISO/IEC 10589:2002 resolves this by making every metric in the pseudonode’s LSP zero. The footnote to clause 7.2.3 gives the reason.

They are set to zero metric values since they have already been assigned metrics by the link to the pseudonode. Assigning a non-zero metric in the pseudonode LSP would have the effect of doubling the actual value.

In other words the cost is paid only in the router-to-pseudonode direction; pseudonode-to-router is free. That asymmetry is what lets a broadcast segment count correctly as a single hop.

Electing the DIS

The rule is in clause 8.4.5 of ISO/IEC 10589:2002, and it is very short.

A LAN Designated Intermediate System is the highest priority Intermediate system in a particular set on the LAN, with numerically highest MAC source SNPAAddress breaking ties.

OrderCondition
1The IS with the highest priority. IOS XR defaults to 64, configurable from 0 to 127
2On a tie, the IS with the numerically highest SNPA (MAC address)

The standard adds that a router must not declare itself DIS until it has at least one Up adjacency — a guard against a box with a broken receiver deciding it is the DIS while hearing nobody.

Level 1 and Level 2 elect their DIS separately. On one LAN the Level 1 DIS and the Level 2 DIS can be different routers, in which case two pseudonodes exist.

Differences from OSPF’s DR

The names are alike; the designs are not. These three points prevent most of the confusion.

AspectOSPF DRIS-IS DIS
BackupThere is a BDR, ready to take over instantlyThere is none. ISO/IEC 10589 has no concept of a backup DIS; when one goes, the election simply re-runs
Raising a priorityDoes not take over (non-preemptive). The existing DR staysTakes over (preemptive). Clause 8.4.5 says a router resigns because “some other Intermediate system of higher priority has taken over that function”
AdjacenciesFull adjacency only with the DR and BDRAdjacency with everyone. What is collapsed is the database representation, not the adjacencies

The third is the one most often misread. The pseudonode is purely a database representation; it does not reduce IIH exchanges or the number of adjacencies. On real equipment, each router on a four-router LAN holds three adjacencies.

Re-election is quick because the election re-runs on every IIH sent or received (8.4.5). With no need to decide a successor in advance, nothing like a BDR is required.

Verification on Real Equipment

The test environment

Four routers were placed on a single broadcast segment (10.1.0.0/24). All are in area 49.0001, all are level-1-2, and none of the LAN interfaces carries point-to-point.

RouterNETSNPA (MAC address)
R149.0001.0010.0100.1001.005254.00a3.a6fa
R249.0001.0020.0200.2002.005254.0075.d9dc
R349.0001.0030.0300.3003.005254.003a.d413
R449.0001.0040.0400.4004.005254.0089.cc01

Every priority is the default 64, so R1, with the highest SNPA, should become the DIS.

The test STEPs

STEPActionPurpose
0Initial stateThe election result and the contents of the pseudonode LSP
1Set R3’s priority to 100Preemption. Can R3, with the lowest MAC, take the role?
2Set R2’s priority to 110 for Level 2 onlyA per-level DIS. Do two pseudonodes appear on one LAN?
3shutdown R3’s LAN interfaceRe-election. Confirming there is no backup
4Restore the priorities and the shutdown (final state)Same as the initial state

Two IOS XR commands proved useful.

CommandWhat it shows
show isis trace all | include ELECTDIS_RUN_ELECTION / DIS_TRIGGER_ELECTION / DIS_ELECTION_RESULT_*the election itself
show isis trace all | include PSEUDOLOCAL_PSEUDO_BUILD_START to LOCAL_PSEUDO_NARROW_LINK_ADD to LOCAL_PSEUDO_BUILD_ENDthe pseudonode LSP being assembled

show isis trace selects by severity (all / detailed / only / severe / standard); all runs to nearly 4000 lines, so narrow it on the device with | include. Note that | include DIS matches the unrelated DIST_ distribution entries and is not usable.

The Initial DIS (STEP 0)

STEP 0: show isis interface GigabitEthernet0/0/0/0 on R1 (excerpt)
  Level-1                   
    Adjacency Count:        3
    Adjacency Flaps:        0
    LAN ID:                 R1.01
    Priority (Local/DIS):   64/64
    Next LAN IIH in:        1 s
    LSP Pacing Interval:    33 ms
    PSNP Entry Queue Size:  0
    Hello Interval:         10 s
    Hello Multiplier:       3
  Level-2                   
    Adjacency Count:        3
    Adjacency Flaps:        0
    LAN ID:                 R1.01
    Priority (Local/DIS):   64/64

LAN ID: R1.01 is the same at both levels, so R1 is the DIS for Level 1 and Level 2 alike. With every priority at 64, R1 won on having the highest SNPA. Priority (Local/DIS): 64/64 reads “our priority / the DIS’s priority”, and both are 64.

Note Adjacency Count: 3 as well. A pseudonode does not reduce the number of adjacencies. On a four-router LAN each router is adjacent to all three others.

Inside the pseudonode LSP

STEP 0: show isis database detail on R1 (excerpt)
R1.01-00              0x00000008   0xb492        636  /*            0/0/0
  Metric: 0          IS R4.00
  Metric: 0          IS R3.00
  Metric: 0          IS R2.00
  Metric: 0          IS R1.00
R2.00-00              0x00000006   0x8090        619  /1200         0/0/0
  Area Address:   49.0001
  LSP MTU:        1492
  NLPID:          0xcc
  IP Address:     2.2.2.2
  Hostname:       R2
  Metric: 0          IP 2.2.2.2/32
  Metric: 10         IP 10.1.0.0/24
  Metric: 10         IS R1.01

The first part is the pseudonode LSP R1.01-00. It lists all four routers on the LAN, and every metric is zero.

The second part is R2’s own LSP, whose only reference to an intermediate system is the single line Metric: 10 IS R1.01. There is no direct link to R3 or R4. Each router reports only its one link to the pseudonode, exactly as 7.2.3 requires.

Put together, the cost from R2 to R3 is 10 (R2 to the pseudonode) plus 0 (pseudonode to R3), giving 10. Had the pseudonode LSP carried a metric of 10, the answer would be 20 — twice the real cost, exactly as the standard’s footnote warns.

Taking the Role by Priority (STEP 1)

R3’s priority was raised to 100. R3 has the lowest SNPA of the four, which makes it plain whether priority alone can win the role.

STEP 1: configuration applied to R3
router isis 1
 interface GigabitEthernet0/0/0/0
  priority 100
STEP 1: show isis database on R1 (Level-1)
IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000007   0x24d2        1100 /*            0/0/0
R1.01-00              0x00000009   0x9aef        0 (1099)/*         0/0/0
R2.00-00              0x00000008   0xa228        1100 /1200         0/0/0
R3.00-00              0x00000007   0x257b        1099 /1200         0/0/0
R3.01-00              0x00000001   0x60a9        1099 /1200         0/0/0
R4.00-00              0x00000008   0xa3d0        1100 /1200         0/0/0

The old DIS’s pseudonode LSP R1.01-00 now shows a Holdtime of 0 — it has been purged. In its place R3.01-00 has appeared with sequence number 0x00000001, freshly created.

This is the behaviour clause 7.2.3 of ISO/IEC 10589:2002 prescribes.

When an Intermediate system resigns as Designated Intermediate System, it shall initiate a network wide purge of its pseudonode Link State PDU(s) by setting their Remaining Lifetime to zero.

A single screen shows both that priority overrides the lowest MAC and that a change of DIS entails rebuilding the pseudonode LSP.

The handover in the capture

STEP 1: LSPs seen in the R2-SW capture (excerpt)
  No type   LSP-ID                    life seq
  23 L1 LSP 0010.0100.1001.01-00         0 0x00000008
  24 L2 LSP 0010.0100.1001.01-00         0 0x00000008
  ...
  41 L1 LSP 0030.0300.3003.01-00      1200 0x00000001
  43 L2 LSP 0030.0300.3003.01-00      1199 0x00000001

0010.0100.1001.01-00 is R1.01 and 0030.0300.3003.01-00 is R3.01. The old DIS’s pseudonode is purged with life=0 and the new one is born with seq=1, right there on the wire.

Download the capture taken during preemption, STEP 1 (isis-dis-preempt.pcap)

The router re-running the election

STEP 1: show isis trace all | include ELECT on R1 (excerpt)
Sep  9 06:51:42.059 isis/1/det ... isis_dis_run_election:778      DIS_ELECTION_RESULT_DIS_EXISTS L1 Gi0/0/0/0
Sep  9 06:51:42.059 isis/1/det ... isis_dis_run_election:778      DIS_ELECTION_RESULT_DIS_EXISTS L2 Gi0/0/0/0
Sep  9 06:51:43.049 isis/1/det ... isis_dis_trigger_election:964  DIS_TRIGGER_ELECTION L1 Gi0/0/0/0 0030.0300.3003
Sep  9 06:51:43.049 isis/1/det ... isis_dis_trigger_election:964  DIS_TRIGGER_ELECTION L2 Gi0/0/0/0 0030.0300.3003

DIS_TRIGGER_ELECTION ends with 0030.0300.3003 (R3): a record that receiving R3’s IIH is what made R1 re-run the election. The commit on R3 happened at 06:51:41, so the reaction came two seconds later.

On R3, the new DIS, the assembly of the pseudonode LSP was recorded.

STEP 1: show isis trace all | include PSEUDO on R3 (excerpt)
Sep  9 06:51:42.103 isis/1/lsp ... LOCAL_PSEUDO_BUILD_START L1 Gi0/0/0/0 Node Num: 1
Sep  9 06:51:42.103 isis/1/std ... LOCAL_PSEUDO_NARROW_LINK_ADD L1 Gi0/0/0/0 Node Num: 1 0030.0300.3003.00
Sep  9 06:51:42.103 isis/1/std ... LOCAL_PSEUDO_NARROW_LINK_ADD L1 Gi0/0/0/0 Node Num: 1 0010.0100.1001.00
Sep  9 06:51:42.103 isis/1/std ... LOCAL_PSEUDO_NARROW_LINK_ADD L1 Gi0/0/0/0 Node Num: 1 0020.0200.2002.00
Sep  9 06:51:42.103 isis/1/std ... LOCAL_PSEUDO_NARROW_LINK_ADD L1 Gi0/0/0/0 Node Num: 1 0040.0400.4004.00
Sep  9 06:51:42.103 isis/1/lsp ... LOCAL_PSEUDO_BUILD_END L1 Gi0/0/0/0 Node Num: 1 1

BUILD_START is followed by NARROW_LINK_ADD four times — the four routers on the LAN, R3 included — and closed by BUILD_END. The pseudonode LSP being assembled as “links to everyone on the LAN” is recorded step by step.

A Different DIS per Level (STEP 2)

IOS XR can set the priority per level. R2’s Level 2 priority alone was raised to 110.

STEP 2: configuration applied to R2
router isis 1
 interface GigabitEthernet0/0/0/0
  priority 110 level 2
STEP 2: show isis interface GigabitEthernet0/0/0/0 on R1 (excerpt)
  Level-1                   
    Adjacency Count:        3
    Adjacency Flaps:        0
    LAN ID:                 R3.01
    Priority (Local/DIS):   64/100
  Level-2                   
    Adjacency Count:        3
    Adjacency Flaps:        0
    LAN ID:                 R2.01
    Priority (Local/DIS):   64/110

The Level 1 DIS is now R3 (priority 100) and the Level 2 DIS is R2 (priority 110). The right-hand number of Priority (Local/DIS) is the priority of that level’s DIS.

The database shows two pseudonodes on the same LAN.

STEP 2: show isis database on R1
IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000007   0x24d2        839  /*            0/0/0
R1.01-00              0x00000009   0x9aef        0 (838)/*          0/0/0
R2.00-00              0x00000008   0xa228        839  /1200         0/0/0
R3.00-00              0x00000007   0x257b        838  /1200         0/0/0
R3.01-00              0x00000001   0x60a9        838  /1200         0/0/0
R4.00-00              0x00000008   0xa3d0        839  /1200         0/0/0

 Total Level-1 LSP count: 6     Local Level-1 LSP count: 1

IS-IS 1 (Level-2) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x0000000f   0xfa2b        1097 /*            0/0/0
R1.01-00              0x00000009   0x9aef        0 (838)/*          0/0/0
R2.00-00              0x0000000f   0x807e        1096 /1200         0/0/0
R2.01-00              0x00000001   0xd556        1096 /1200         0/0/0
R3.00-00              0x0000000d   0x0acf        1097 /1200         0/0/0
R4.00-00              0x0000000e   0x8d24        1097 /1200         0/0/0

The Level 1 database holds R3.01-00, the Level 2 database R2.01-00. One physical LAN, represented by a different pseudonode at each level — a vivid illustration of the Level 1 and Level 2 databases being entirely separate (levels are covered in Level 1 and Level 2).

Note that R3.01-00 has disappeared from the Level 2 database. R3 stopped being the Level 2 DIS, so it purged only its Level 2 pseudonode LSP. Resignation happens per level.

Download the capture taken while splitting the DIS per level, STEP 2 (isis-dis-level.pcap)

When the DIS Goes Away (STEP 3)

R3, the Level 1 DIS, had its LAN interface shut down.

STEP 3: configuration applied to R3
interface GigabitEthernet0/0/0/0
 shutdown
STEP 3: show isis interface GigabitEthernet0/0/0/0 on R1 (excerpt)
  Level-1                   
    Adjacency Count:        2
    LAN ID:                 R1.01
    Priority (Local/DIS):   64/64
  Level-2                   
    Adjacency Count:        2
    LAN ID:                 R2.01
    Priority (Local/DIS):   64/110

The Level 1 DIS moved to R1. The remaining R1, R2 and R4 all sit at priority 64 (R2’s 110 applies only to Level 2), so the highest SNPA won again. The Level 2 DIS is still R2, untouched.

STEP 3: show isis database on R1 (Level-1)
IS-IS 1 (Level-1) Link State Database
LSPID                 LSP Seq Num  LSP Checksum  LSP Holdtime/Rcvd  ATT/P/OL
R1.00-00            * 0x00000008   0xfb3e        1092 /*            0/0/0
R1.01-00              0x0000000a   0xe651        1092 /*            0/0/0
R2.00-00              0x0000000a   0x7894        1093 /1200         0/0/0
R3.00-00              0x00000007   0x257b        594  /1200         0/0/0
R3.01-00              0x00000001   0xe16c        0 (1092)/*         0/0/0
R4.00-00              0x0000000a   0x793d        1093 /1200         0/0/0

R3.01-00 is purged and R1.01-00 is back.

What this STEP set out to confirm is that no backup had been prepared. OSPF would have had a BDR decided in advance and ready to promote; IS-IS has no such thing. Once R3 was gone, the remaining three re-ran the election on the spot and settled on R1. Because the election runs on every IIH sent or received, there is no need to nominate a successor ahead of time.

The lost adjacency is in the log as well.

STEP 3: show isis adjacency-log on R1 (Level 1, tail)
07:00:00.552  R3              Gi0/0/0/0          u -> d  Holdtime expired
                                                         IPv4 Unicast Down

STEP 4 restored the priorities and the shutdown, and the DIS returned to R1 at both levels, matching the initial state.

Download the capture taken during re-election, STEP 3 (isis-dis-reelect.pcap)

Verification Config and show Output

At every STEP the following three files were collected from all four routers, separately per router. The verification config is the ..._run.txt file (the final state being the STEP 4 one).

FileContent
..._show.txtshow version / show interface description / show route / show route isis / show isis / show isis hostname / show isis interface / show isis interface brief / show isis neighbors / show isis neighbors detail / show isis database / show isis database detail / show isis topology / show isis adjacency / show isis adjacency detail / show isis adjacency-log / show isis trace all | include ELECT / show isis trace all | include PSEUDO / show isis spf-log / show isis lsp-log / show isis statistics / show cef
..._log.txtshow logging narrowed to that STEP (STEP 0 holds the full history since boot)
..._run.txtshow running-config at that STEP (that is, the verification config for the STEP)

In the final configuration none of the four routers has a priority configured, leaving the default of 64. The priority from STEPs 1 and 2 and the shutdown from STEP 3 were all removed in STEP 4.

STEP 0: initial state

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun

STEP 1: R3’s priority set to 100

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun

STEP 2: R2’s Level 2 priority set to 110

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun

STEP 3: R3’s LAN interface shut down

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun

STEP 4: priorities and the shutdown restored (final state)

Routershow outputsyslogrunning-config
R1showlogrun
R2showlogrun
R3showlogrun
R4showlogrun
There are three capture files.

Download the capture from preemption, STEP 1 (isis-dis-preempt.pcap)

Download the capture from splitting the DIS per level, STEP 2 (isis-dis-level.pcap)

Download the capture from re-election, STEP 3 (isis-dis-reelect.pcap)

References

StandardTitleSummary
ISO/IEC 10589:2002 (Second Edition)Intermediate System to Intermediate System intra-domain routeing information exchange protocolThe IS-IS specification itself. This article draws on 3.6.6 / 3.6.7 (definitions of the DIS and the pseudonode), 7.2.3 (how a broadcast subnetwork is handled, and the zero metric), 7.3.8 (generating pseudonode LSPs), 7.3.16.4 (purging an LSP), 8.4.5 (electing the DIS), 9.5 / 9.6 (the Priority and LAN ID fields of a LAN IIH) and 11.3 (management-parameter defaults).
RFC 1142OSI IS-IS Intra-domain Routing ProtocolA republication of the ISO 10589 Draft Proposal (1990), now Historic. It must not be referenced in place of ISO/IEC 10589 (see RFC 7142).
RFC 7142Reclassification of RFC 1142 to HistoricStates that references should be to ISO/IEC 10589:2002, Second Edition.
RFC 1195Use of OSI IS-IS for Routing in TCP/IP and Dual EnvironmentsThe extension that carries IP routes.

Related Articles