← Interview Prep

IS-IS — Theory

A link-state IGP from the OSI world that runs directly on Layer 2: levels, NET addressing, adjacencies, TLV-based PDUs, and why large ISP and DC cores favor it.

IS-IS (Intermediate System to Intermediate System, ISO 10589) is a link-state interior gateway protocol — the same SPF/Dijkstra family as OSPF — but it descends from the OSI protocol suite rather than TCP/IP. The single most important structural fact: IS-IS PDUs ride directly over Layer 2 (Ethernet, PPP), not over IP. It has no IP header, no port, no protocol number — routed IP prefixes are just data it carries.

IS-IS reputation in one line: the carrier/hyperscaler IGP. Because it runs on L2 and encodes everything in TLVs, it is exceptionally extensible (IPv6, MPLS-TE, Segment Routing all slotted in without a new protocol version) and scales to very large single areas — which is why most large ISP backbones and many DC fabrics run IS-IS instead of OSPF.

Overview & positioning

Levels and the area model

IS-IS builds a two-level hierarchy. The distinction from OSPF here is the classic interview trap.

Router typeRoleAnalogy
Level 1 (L1)Intra-area routing only. Knows the topology of its own area; reaches other areas via the nearest L1/L2 router (default route toward the attached bit).OSPF internal (non-backbone) router
Level 2 (L2)Inter-area backbone routing. The set of L2-capable routers forms a contiguous L2 backbone spanning areas.OSPF backbone (area 0)
Level 1/2 (L1L2)Runs both — an area's border, maintains an L1 LSDB for its area and an L2 LSDB for the backbone.OSPF ABR

KEY difference vs OSPF — area boundaries are on links, not routers

In OSPF, the boundary runs through a router: an ABR has interfaces in area 0 and interfaces in another area, so a single router straddles two areas. In IS-IS, an entire router lives in exactly one area; the boundary falls on the link between two routers in different areas. Two L1L2 routers in different areas form an L2 adjacency across that link, while each keeps its own L1 database internal. "Areas are on links, not on routers" is the one-sentence answer to give.

Addressing — NET / NSAP

An IS-IS router identifies itself with an OSI NSAP address; the specific form assigned to a router (with the N-selector 0) is the NET (Network Entity Title). It has nothing to do with IP — it names the router, not an interface.

NET:  49.0001.1921.6800.1001.00
      └┬─┘ └─┬─┘ └──────┬──────┘ └┬┘
   AFI+ Area  Area ID   System ID  NSEL
   (variable, 1–13 B)  (6 bytes)   (1 byte = 00)

  Area ID   : 49.0001   → AFI 49 = "private" (like RFC1918), area 0001
  System ID : 1921.6800.1001  (6 bytes, must be unique per router)
  NSEL      : 00        → identifies the router itself (Network entity)
ComponentLengthMeaning
Area ID (incl. AFI)1–13 bytesWhich area the router is in. 49 is the common private AFI. All routers in an area share the same Area ID; an L2 adjacency simply spans two different Area IDs.
System ID6 bytes (fixed)Uniquely identifies the router within the domain — like an OSPF Router-ID. Often derived from a loopback IP (e.g. 192.168.0.11921.6800.0001) or a MAC.
NSEL (N-selector)1 byteService selector; always 00 for a NET, meaning "this is the routing node itself."

How to read a NET: strip the last byte (NSEL = 00), take the 6 bytes before it as the System ID, and everything remaining at the front is the Area ID. So in 49.0001.1921.6800.1001.00 the area is 49.0001, the system is 1921.6800.1001.

Adjacencies, the DIS, and pseudonodes

Routers discover neighbors with IIH (IS-IS Hello) PDUs and form adjacencies per level. Two interface types behave differently:

Point-to-pointBroadcast / LAN
HelloP2P IIHL1 LAN IIH and/or L2 LAN IIH (separate per level)
HandshakeThree-way handshake (RFC 5303) — each side confirms it sees the other before the adjacency goes UpTwo-way; adjacency reported via neighbor TLV
Designated routerNoneDIS elected to represent the LAN

The DIS (Designated Intermediate System)

On a multi-access LAN, IS-IS elects a DIS — the analogue of OSPF's DR — to reduce flooding overhead. The DIS creates a virtual node representing the LAN, called the pseudonode: every router on the segment reports a single adjacency to the pseudonode instead of a full mesh of adjacencies, which keeps the LSDB O(n) instead of O(n²).

PropertyIS-IS DISOSPF DR (for contrast)
Election tiebreakHighest interface priority, then highest MAC/SNPAHighest priority, then highest Router-ID
BackupNo backup DIS — if the DIS dies, a new one is simply re-elected fastBDR pre-elected
PreemptionPreemptive — a higher-priority router that appears takes over the DIS roleNon-preemptive
AdjacenciesAll routers adjacent to all others (report via pseudonode); DIS floods CSNPs frequentlyDROTHERs are only FULL with DR/BDR

Because there is no backup and election is cheap and preemptive, IS-IS DIS behavior is simpler than OSPF's DR/BDR dance — losing the DIS just triggers a quick re-election, and a priority-0 interface still participates.

PDUs and TLV encoding

IS-IS uses four PDU types. The database-sync PDUs (CSNP/PSNP) are the reliable-flooding machinery; there is no separate ack/update pair as in OSPF — the SNPs are the acknowledgment and request mechanism.

PDUNameJob
IIHHelloDiscover neighbors, build/maintain adjacencies, elect the DIS. Sent per level.
LSPLink-State PDUThe actual link-state advertisement — a router's links, prefixes, and capabilities. Flooded through the level; each has a sequence number, remaining lifetime, and checksum.
CSNPComplete Sequence Number PDUA summary of the entire LSDB (all LSP IDs + sequence numbers). The DIS multicasts CSNPs periodically on a LAN so neighbors can spot anything they are missing — like an OSPF DBD.
PSNPPartial Sequence Number PDUTwo jobs: request an LSP a router is missing/stale, and acknowledge received LSPs (on P2P links). "Partial" = lists only some LSPs.

Why TLVs make IS-IS trivially extensible

Every piece of information inside an LSP (or IIH) is a TLV: Type–Length–Value. The fixed PDU header is tiny; all semantics live in a bag of TLVs (and nested sub-TLVs).

LSP body = [ TLV ][ TLV ][ TLV ] ...

  ┌──────┬────────┬──────────────────┐
  │ Type │ Length │ Value ...        │
  │ 1 B  │  1 B   │ (Length bytes)   │
  └──────┴────────┴──────────────────┘

  Type 128 : IP Internal Reachability
  Type 135 : Extended IP Reachability (wide metrics, sub-TLVs)
  Type 232 : IPv6 Reachability
  Type 22  : Extended IS Reachability (TE, SR sub-TLVs live here)

Metrics and SPF

SPF is Dijkstra over the LSDB, per level, using link metrics. IS-IS has two metric styles:

StyleRangeNotes
Narrow (original)Per-link 0–63, path max 1023The legacy 6-bit metric field. Far too coarse for modern networks; only default (interface) metric is widely used.
Wide (RFC 3784)Per-link up to 2^24−1 (24-bit), path 32-bitCarried in the Extended IS/IP Reachability TLVs. Required for TE and Segment Routing (they need the sub-TLV space) and is the recommended default everywhere.

IPv6 and multi-topology (MT)

A single IS-IS process handles IPv4 and IPv6 together — this is a headline advantage over OSPF, where v4 (OSPFv2) and v6 (OSPFv3) are separate protocol instances.

IS-IS vs OSPF

IS-ISOSPF
Origin / transportOSI (ISO 10589); runs directly on Layer 2, no IPTCP/IP; runs over IP (protocol 89)
Area boundaryOn the link — a whole router is in one areaOn the router — an ABR straddles two areas
HierarchyL1 (intra) / L2 (inter) backbone; contiguous L2Area 0 backbone + non-backbone areas
EncodingTLV-based — new features = new TLVs, no version changeFixed LSA types; IPv6 needed OSPFv3 (new protocol)
IPv4 + IPv6One instance (optionally MT)Separate: OSPFv2 (v4) + OSPFv3 (v6)
LAN electionDIS + pseudonode; no backup, preemptiveDR/BDR; backup pre-elected, non-preemptive
Router identityNET / System ID (6-byte OSI address)32-bit Router-ID (IP-like)
MetricNarrow 0–63 / wide 24-bit; not bandwidth-derived by defaultCost = reference-bw / bandwidth
Scalability / reputationVery large flat areas; ISP/DC coresEnterprise standard; more numerous, smaller areas

Interview one-liner: same link-state math, different packaging — IS-IS is the more extensible, L2-native, carrier-scale option (areas on links, everything in TLVs, one process for v4/v6), while OSPF is the more common, IP-native enterprise choice (areas on routers, LSA types, separate v6 protocol).

Likely follow-up questions

Related: Life of a Packet · TCP — Theory & Mechanisms.