Home / Notes / IS-IS Neighbor Troubleshooting
NOTES · IS-IS TROUBLESHOOTING

IS-IS Neighbor Won't Form: MTU, Levels and Route Import Pitfalls

An IS-IS neighbor that refuses to come up, or a route that never shows up where you expect it, almost always traces back to one of a handful of parameter mismatches — not a protocol bug. This is the diagnostic order that isolates which one: interface state first, then System ID / Level / area, then MTU counted at the right layer, then route import scope — plus three real field cases and the display commands to run at each step.

By the AtlasCommTech engineering team — 13 years of carrier & enterprise network deployments · Updated July 2026

Why the Same Six Checks Keep Solving It

IS-IS neighbors don't fail in creative ways — they fail in the same six or seven ways, in a predictable order.

An IS-IS neighbor that won't form, or a route that quietly refuses to travel where it should, is one of the most common tickets in multi-vendor IS-IS deployments — precisely because the protocol packs several independent checks (System ID uniqueness, MTU, Level, area address, authentication) into a single Hello exchange, and any one of them silently blocks the rest. The instinct is to start comparing full running-configs side by side; it's faster to walk the checks in the order the router itself evaluates them.

What follows is the diagnostic flow this is built on, the exact commands for each stage, three field cases — a route-import cost mismatch that silently prefers the wrong path, an MTU value that means something different on each vendor's box, and an IS-IS Hello load that broke reachability to a device that was never supposed to run IS-IS — and answers to the questions that come up constantly once you're past the basics.

Read the Fault Tree Before You Compare Configs Line by Line

IS-IS trouble splits the same way most L2/L3 adjacency trouble does: the neighbor never forms, or it forms and something downstream is still wrong.

Placing the symptom on this tree first tells you whether you're chasing an interface/Hello problem or a route-level problem — the two don't share a root cause.

IS-IS Fault Neighbor Never Forms Neighbor Up, Route Still Wrong Stage 0 · Interface / Hello never exchangedlink/IP down · missing NET · subnet mismatch Stage 1 · System ID or Level mismatchRepeated System ID / Mismatched Level counters Stage 2 · MTU counted at the wrong layerL3 vs L2 overhead across vendors Stage 3 · Area address / authentication mismatchLevel-1 area check · isis authentication-mode Route import cost-type mismatchwrong path silently preferred, cost-style narrow Imported route never reaches Level-1import-route defaults to Level 2 only Hello load breaks a non-router neighborserver/encoder ARP & ICMP degrade under Hello

Diagram labels are kept in English for engineering clarity.

System ID, Level and MTU failures are read directly off display isis interface and display isis error counters — they're IS-IS's own protocol machinery. Route import behavior (cost-type, level scope) is a separate configuration choice layered on top, and it's worth checking on its own even after the neighbor itself is healthy.

Working Through Each Stage

Four checks, one command each, and a shortcut list of exactly what to look at when display isis error blames a specific counter.

Stage 0 — Confirm the Interface Actually Sees Hello Packets

display isis interface's state field tells you whether this is a link problem before you even open the IS-IS configuration.

  1. Run display isis interface and read the state field. Mtu:Up/Lnk:Dn/IP:Dn means the physical link or IP layer isn't up yet — chase that first, not IS-IS.
  2. If the interface itself is Up but the process still shows Down, run display current-configuration configuration isis and confirm a network-entity (NET) is actually configured — a missing NET keeps IS-IS from ever starting on the box, which is a different fault from a Hello mismatch.
  3. Confirm the two directly connected interfaces sit in the same IP subnet with display ip interface — IS-IS Hello won't adjacency across a subnet mismatch.
  4. Run display isis statistics packet interface <if> twice, at least 10 seconds apart (the default Hello interval), and confirm the Hello counter is actually incrementing. On P2P interfaces every Hello is counted under L2 IIH regardless of level; on broadcast interfaces it's split into L1 IIH and L2 IIH.
<Huawei> display isis interface
 IS-IS(1) Interface Information
 Interface       Id      IPV4.State  IPV6.State  MTU    Type    DIS
 GE0/0/1         001     Up          Down        1497   L1/L2   No/No
// Lnk:Dn or IP:Dn instead of Up -> chase the interface/route layer, not IS-IS

<Huawei> display current-configuration configuration isis
isis 1
 network-entity 49.0001.0000.0000.0001.00
// no network-entity line at all -> IS-IS never actually started on this box

<Huawei> display isis statistics packet interface GigabitEthernet0/0/1
 L1 IIH: 0    L2 IIH: 42
// counter not increasing over a 10s+ window -> Hello isn't reaching this interface

Stage 1 — System ID and Level Have to Match Exactly

display isis error turns a guess into a specific counter — Repeated System ID and Mismatched Level are two completely different fixes.

  1. Run display isis error interface <if> twice, at least 10 seconds apart, and read which counter is climbing.
  2. If Repeated System ID climbs, both ends configured the identical System ID under network-entity — change one of them; IS-IS treats this as if the router were talking to itself.
  3. If Mismatched Level climbs, compare is-level under the IS-IS process and isis circuit-level on the interface at both ends. A Level-1 interface only forms with a Level-1 or Level-1-2 peer; Level-2 only with Level-2 or Level-1-2.
  4. For a Level-1 adjacency specifically, also confirm both ends' network-entity area address portion actually matches — Level-2 adjacencies skip that check entirely.
<Huawei> display isis error interface GigabitEthernet0/0/1
 Repeated System ID: 0    Mismatched Level: 17    Bad Area Addr TLV: 0
// Mismatched Level climbing -> compare is-level / isis circuit-level on both ends

<Huawei> display current-configuration configuration isis | include is-level
 is-level level-1
// peer's interface is configured level-2-only -> the two will never adjacency

Stage 2 — MTU Is Being Counted at a Different Layer on Each Vendor's Box

The single most common cross-vendor IS-IS failure isn't a bad MTU value — it's the same number meaning two different things.

  1. If none of the display isis error counters above are climbing but the neighbor still won't form on a cross-vendor link, suspect MTU before anything else.
  2. Confirm what layer each vendor's mtu command actually configures: on this platform, interface mtu is the Layer 3 payload size; on some other vendors' equivalent command, the same default configures the Layer 2 frame size instead, so an identical configured number leaves a different amount of real headroom.
  3. Capture the Hello packet header, or compare the two ends' effective frame size, to confirm which side is silently dropping oversized Hello packets.
  4. Either lower the configured MTU by the Ethernet frame header length (14 bytes) so both ends agree on the real wire size, or configure isis small-hello on this side and hello-padding disable level 2 on the peer so Hello exchange stops depending on MTU matching at all.
# Huawei-side IS-IS configuration
isis 1
 is-level level-2
 cost-style wide
 network-entity 49.X.X.X.X.00
#
interface Vlanif1001
 mtu 9126                      // this device: mtu is the Layer 3 payload size
 ip address X.X.X.150 255.255.255.252
 isis enable 1

# Other-vendor IS-IS configuration
router isis XXXX
 net 49.X.X.X.X.00
 metric-style wide
#
interface XXXX
 mtu 9126                      // peer: same command, but this is the Layer 2 frame size
 circuit-type level-2-only
// peer's real L3 ceiling is 9126 - 14 (Ethernet header) = 9112, below Huawei's Hello size
[Huawei-Vlanif1001] mtu 9112
// or, to stop Hello depending on MTU matching at all:
[Huawei-Vlanif1001] isis small-hello
[Peer-interface] hello-padding disable level 2

Stage 3 — Neighbor Is Up, But Route Import Behaves Unexpectedly

A healthy neighbor doesn't mean imported routes land where you expect, or get preferred the way you expect.

  1. Run display isis route on the upstream device and confirm which path is actually preferred when two edge devices import the same prefix.
  2. Compare import-route cost-type on both edge devices — internal keeps the route's original cost, external adds a flat +64; two devices importing the same routes with different cost-type will out-compete each other even though both configs look correct individually. This is only actually visible when the process runs cost-style narrow.
  3. If an imported route isn't showing up in a Level-1 area at all, remember import-route defaults to Level 2 only unless a level is explicitly specified.
  4. Rule out a similarly-shaped but unrelated problem: an IS-IS-enabled interface facing a non-router device (a server, an encoder) can make that device's ARP/ICMP handling degrade under ordinary Hello traffic — isis silent on that interface stops it from sending or accepting IS-IS packets at all.
[DeviceA-isis-1] import-route direct cost-type internal
[DeviceA-isis-1] import-route static cost-type internal
// align cost-type on every device importing the same prefixes

<DeviceB> display isis route
// after aligning cost-type, DeviceB and DeviceC learn two equal-cost paths
// via DeviceA and DeviceD instead of only ever preferring one

[Huawei] interface vlanif 3005
[Huawei-Vlanif3005] isis silent
// suppresses IS-IS Hello toward a directly connected non-router device

5 Root Causes That Show Up Again and Again

Once the checks above have told you where the problem sits, these five account for most of what's actually wrong.

1. Route Import Cost-Type Mismatch Silently Picks the Wrong Path

SYMPTOMTwo edge devices both import the same directly-connected or static routes into IS-IS, but the core devices only ever learn the route through one of them — the other path is never used, with no error anywhere.

CAUSEimport-route defaults to cost-type external (adds +64 to the original cost) unless told otherwise. If one device is set to internal and the peer left at external, the lower-cost path always wins even when both paths should be viable for load sharing. This only actually surfaces when the IS-IS process is running cost-style narrow.

FIXSet import-route direct cost-type internal and import-route static cost-type internal identically on every edge device importing the same prefixes, so cost reflects only the original metric on both sides.

[DeviceD-isis-1] import-route static cost-type internal
// DeviceD's default (external, +64) was what made DeviceB/C always prefer it

2. MTU Means a Different Layer on Each Vendor's Interface

SYMPTOMInterface is Up, IP is reachable, IS-IS parameters all check out individually, but the neighbor never forms across a link aggregation to another vendor's device.

CAUSEThis platform's mtu command sets the Layer 3 payload size; the other vendor's default sets a Layer 2 frame size instead. Both sides configured mtu 9126 believing they matched — but the peer's real Layer 3 ceiling was 9126 minus the 14-byte Ethernet header, i.e. 9112, so the oversized Hello never got through.

FIXConfigure this side's MTU as the peer's Layer 2 MTU minus 14, or bypass the check entirely with isis small-hello on this side and hello-padding disable level 2 on the peer.

3. Level Mismatch or a Missing Area Address Blocks the Adjacency Before Hello Even Finishes

SYMPTOMdisplay isis error shows Mismatched Level climbing, or the neighbor state machine never advances past Init.

CAUSEA Level-1 interface only adjacencies with a peer configured Level-1 or Level-1-2; Level-2 only with Level-2 or Level-1-2. For Level-1 adjacencies specifically, the network-entity's area address also has to match on both ends — Level-2 adjacencies skip that check entirely.

FIXAlign is-level under the IS-IS process (or isis circuit-level on the interface) on both ends, and for Level-1 links confirm both devices' network-entity area portion is identical.

4. Import-Route Defaults to Level 2 Only — the Route Just Never Reaches Level-1

SYMPTOMA route was clearly imported — it shows in the local routing table, import-route is configured — but it never appears at all on a Level-1-only device in a different area.

CAUSEimport-route without an explicit level keyword only injects the route into Level 2. Nothing about this fails loudly — the route simply isn't advertised into Level 1 unless told to be.

FIXSpecify the level explicitly — import-route direct level-1 (or level-1-2) — wherever the route needs to reach a Level-1-only area.

[Huawei-isis-1] import-route direct level-1-2
// without level-1 / level-1-2, the route only ever reaches Level 2

5. An IS-IS Hello Load Can Break a Non-Router Neighbor That Was Never Supposed to Run the Protocol

SYMPTOMA directly connected device that isn't a router — an encoder/decoder box, a server — starts out pingable, then goes intermittent, then stops responding entirely, despite nothing changing on the network side.

CAUSEThe Huawei-side interface has IS-IS enabled and sends periodic Hello packets by design. Some non-router devices handle unexpected IS-IS Hello traffic poorly enough that it crowds out their own ARP/ICMP request processing, degrading and eventually blocking basic reachability — with nothing on the IS-IS side to point at.

FIXConfigure isis silent on interfaces facing servers, encoders, or any device that was never meant to peer at Layer 3 routing protocols — it suppresses both sending and receiving IS-IS packets on that interface without disabling the interface itself.

Related solution designs

Six Questions That Come Up Constantly

Pulled straight from the field — the ones worth having an answer ready for.

Why does display isis interface show MTU 1497 on a broadcast interface but 1500 on a P2P interface, on the same box?

Ethernet's physical MTU is 1500 bytes either way. On a P2P (PPP-encapsulated) link, IS-IS reports the full 1500. On a broadcast (802.3) link, the LLC header IS-IS rides on top of adds 3 bytes inside that same 1500-byte frame, so the usable payload IS-IS actually gets is 1497 — it's not a misconfiguration, just different encapsulation overhead.

What's the actual matching rule between Level-1, Level-2 and Level-1-2 interfaces?

A Level-1 interface only forms an adjacency with a peer that's Level-1 or Level-1-2. A Level-2 interface only forms with Level-2 or Level-1-2. A Level-1-2 interface will adjacency with any of the three. If this one rule isn't satisfied, nothing else about the configuration matters.

Why do routes imported into IS-IS often seem to "not work" even though import-route is clearly configured?

The most common reason is scope, not syntax: import-route with no level keyword only injects the route into Level 2 by default. If the destination area is Level-1-only, the route was never sent there in the first place — add level-1 or level-1-2 explicitly to import-route to fix it.

Two devices ended up with the identical System ID — what actually breaks?

IS-IS relies on System ID to uniquely identify every device in the routing domain. Two devices sharing one look, from the protocol's perspective, like the same router appearing on two interfaces at once — display isis error's Repeated System ID counter climbs, the adjacency never completes, and the fix is simply to change one device's network-entity so the System ID portion is unique.

Does cost-style (narrow vs wide) actually change how import-route cost-type behaves?

The interaction between import-route's internal/external cost-type and the resulting path preference is really only visible under cost-style narrow, where the +64 penalty for external and the pass-through cost for internal genuinely change which path wins. Under wide cost-style the metric range is large enough that this specific mismatch is far less likely to flip the preferred path on its own — but it's still worth setting cost-type identically on every device importing the same prefixes regardless.

What actually decides which router becomes the DIS on a broadcast network?

Priority first — the interface with the highest isis dis-priority wins; on a tie, the highest SNPA (MAC address) on the interface wins. Unlike OSPF's DR, IS-IS's DIS has no BDR backup and re-runs this election immediately if a higher-priority router joins the segment, which is worth knowing before assuming a DIS change means something is actually broken.

Honest Limits of This Note

Honest Limits of This Note

This note is built around the Huawei AR-series router's IS-IS fault-classification model and its display isis interface / isis error / isis statistics packet commands, plus the field cases behind them. If your device is a different vendor, the exact commands change, but the underlying adjacency logic — interface state, System ID uniqueness, Level and area matching, MTU layer counting, route import scope — carries over directly. It doesn't cover DIS election edge cases on large multi-access LANs in depth, or IPv6 (M-ISIS) address-family specifics.

Stuck on a specific IS-IS neighbor?

Tell us which check display isis error is failing on — Repeated System ID, Mismatched Level, or something else — plus the interface state, and we'll help you read it.

WhatsApp an engineer →

Related Reading