第77篇:IS-IS 邻居建立条件——Area、SystemID、MTU

关键词

IS-IS、邻居建立、Area、System ID、MTU、3 路握手、认证


一、IS-IS 邻居建立的条件

IS-IS 的邻居建立比 OSPF 简单——只有 3 个状态:Down → Init → Up。

但要使邻居成功建立到 Up,必须满足以下条件:

条件 说明
同一区域 L1 邻接要求 Area Address 匹配
接口 UP 物理链路正常
同一级别 接口级别配置一致(L1/L2)
MTU 一致 两端接口 MTU 必须相同或大于最小要求
认证一致 如果配置认证,两端必须匹配
3 路握手完成 双方都在对方的 Hello 中看到自己

二、条件一:Area 匹配(仅 L1)

2.1 L1 邻接要求

L1 邻接要求双方属于同一区域:

RouterA (Area 49.0001) ── L1 ── RouterB (Area 49.0001) ✅
RouterA (Area 49.0001) ── L1 ── RouterB (Area 49.0002) ❌

L2 邻接不要求区域匹配:

RouterA (Area 49.0001) ── L2 ── RouterB (Area 49.0002) ✅

2.2 配置多个 Area Address

一台路由器可以配置多个 Area Address:

isis 1
 network-entity 49.0001.1111.1111.1111.00
 area-address 49.0002              # 额外配置的区域地址

多个 Area Address 的作用:在区域合并或拆分时,允许路由器"同时属于两个区域",实现平滑过渡。

2.3 排查命令

# 查看区域地址
display isis

  Area Address(es):
    49.0001           ← 本路由器的区域地址

# 查看邻居信息(可以看到邻居的区域)
display isis peer verbose
  Area Address(es):
    49.0001           ← 邻居的区域地址

三、条件二:System ID 唯一

3.1 要求

全网每个 System ID 必须唯一。 与 OSPF 的 Router ID 全网唯一是同样的原则。

3.2 冲突检测

如果两台路由器 System ID 相同:

RouterA: System ID = 1111.1111.1111
RouterB: System ID = 1111.1111.1111

结果:邻居无法建立,或建立后立刻断开
display isis error

  System ID conflict: 5           ← System ID 冲突计数

3.3 配置 System ID

# System ID 通过 NET 地址配置
isis 1
 network-entity 49.0001.1921.6800.1001.00
                       └──────┬──────┘
                          System ID(12 个十六进制字符)

四、条件三:MTU 一致

4.1 为什么 MTU 重要

IS-IS 报文直接封装在二层。如果接口的 MTU 小于 IS-IS 报文长度,报文会被丢弃。

4.2 最小 MTU 要求

场景 最小 MTU
默认 Hello 128 字节
带认证的 Hello 约 250 字节
正常的 LSP 1492 字节(通常)

4.3 MTU 问题排查

# 查看接口 MTU
display interface GigabitEthernet0/0/0
  MTU: 1500              ← 标准以太网 MTU

# 查看 IS-IS MTU(发送 IS-IS 报文时使用的最大长度)
display isis interface

  Interface: GE0/0/0
  LSP MTU: 1497          ← IS-IS LSP 最大长度

4.4 常见场景

场景 问题 解决
默认以太网 MTU=1500,正常 ✅ -
VLAN 子接口 MTU=1500,正常 ✅ -
隧道/GRE MTU 变小,可能小于 1500 调整隧道 MTU
PPPoE MTU=1492 确保 IS-IS MTU ≤ 1492

五、条件四:3 路握手

5.1 3 路握手过程

状态机:

Down: 还没收到任何 Hello

Init: 收到对端的 Hello,但自己的 System ID 不在对方的邻居列表中
      (单向通信)

Up:   自己的 System ID 出现在对方的邻居列表中
      (双向通信 → 邻接建立)

5.2 示例

RouterA                    RouterB
  │                          │
  │── Hello(邻居列表为空)──→│  B 看到 A,但 A 还不知道 B
  │                          │  B 的状态:Init
  │←─ Hello(邻居列表= A)───│  A 看到自己,状态变为 Init→Up
  │                          │  A 再将 B 加入邻居列表
  │── Hello(邻居列表= B)──→│  B 看到自己,状态变为 Up
  │                          │  
  邻接建立 ✅                 邻接建立 ✅

六、条件五:认证一致

6.1 认证类型

认证方式 说明
接口认证 针对单个接口的认证
区域认证 L1 区域级别的认证
域认证 L2 骨干级别的认证

6.2 配置

# 接口认证
interface GigabitEthernet0/0/0
 isis authentication-mode md5 cipher Huawei123

# 区域认证(L1)
isis 1
 area-authentication-mode md5 cipher AreaKey456

# 域认证(L2)
isis 1
 domain-authentication-mode md5 cipher DomainKey789

注意:认证必须两端一致,否则邻居无法建立。


七、综合排查流程

IS-IS 邻居建立失败排查:

1. 接口 UP 了吗?
   ├─ No → 排查物理层
   └─ Yes → 继续

2. 检查 IS-IS 是否在接口上启用?
   display isis interface
   ├─ 没有该接口 → interface xx isis enable 1
   └─ 有接口 → 继续

3. 检查邻接级别配置
   display isis interface xx
   ├─ L1 vs L2 不匹配 → 修改 isis circuit-level
   └─ 一致 → 继续

4. 查看邻居状态
   display isis peer
   ├─ 没有邻居 → 排查网络连通性
   ├─ Init → 检查是否是单向链路或 Area 不匹配
   └─ Up → ✅

5. 检查 Area 匹配(仅 L1)
   display isis | include Area
   ├─ 不匹配 → 修改 Area Address
   └─ 匹配 → 继续

6. 检查 MTU
   ├─ 两端不一致 → 统一 MTU
   └─ 一致 → 继续

7. 检查认证配置
   ├─ 不匹配 → 统一认证
   └─ 无认证 → 继续

8. 检查 System ID 冲突
   display isis error | include conflict

八、常用排查命令

# 查看所有邻居
display isis peer

# 查看邻居详细信息
display isis peer verbose

# 查看接口 IS-IS 信息
display isis interface

# 查看 IS-IS 错误统计
display isis error

# 查看 LSDB
display isis lsdb

# 调试(生产环境慎用)
debugging isis adjacency

九、总结

条件 L1 邻接 L2 邻接 排查命令
Area 匹配 ✅ 必须 ❌ 不必须 display isis peer verbose
System ID 唯一 display isis error
MTU 一致 display interface
3 路握手 display isis peer
认证一致 display current-configuration

十、思考

  1. L1 邻接和 L2 邻接在 Area 匹配方面有什么不同要求?
  2. IS-IS 的 3 路握手是如何工作的?什么状态下表示邻接已经建立?
  3. 如果两台路由器的 MTU 不匹配,IS-IS 邻居能否建立?
  4. 一台路由器可以配置多个 Area Address 吗?什么场景下需要这样做?
  5. 如果 IS-IS 邻居状态一直卡在 Init,可能是什么原因?

下篇预告:第78篇《IS-IS 路由泄露——Level-2 向 Level-1 注入》——理解 IS-IS 区域间路由的核心机制。