关键词:IS-IS、网络类型、DIS 选举、Broadcast、P2P、优先级、抢占式、CSNP

第74篇:IS-IS 网络类型与 DIS 选举

一、引言

IS-IS 支持多种网络类型,不同类型的网络对邻居建立、邻接关系和数据库同步机制有着不同的要求。在 IS-IS 中,指定中间系统(DIS, Designated Intermediate System)扮演着关键角色,负责在广播网络中协调 LSP 的泛洪和 LSDB 的同步。

理解 IS-IS 的网络类型和 DIS 选举机制,是正确部署 IS-IS 网络的基础。与 OSPF 的 DR/BDR 选举不同,IS-IS 的 DIS 选举采用抢占式策略,这使得网络行为在故障恢复时表现出不同的特征。

二、核心概念

2.1 IS-IS 网络类型

IS-IS 主要支持两种网络类型:

网络类型 说明 适用场景
广播(Broadcast) 多路访问网络,所有路由器在同一广播域内 以太网、交换机互联
点对点(Point-to-Point) 仅连接两台路由器 PPP、HDLC、专用链路

注意:IS-IS 没有 OSPF 中的 NBMA(非广播多路访问)和 P2MP(点到多点)网络类型。对于帧中继等非广播网络,IS-IS 将其配置为点对点类型。

2.2 DIS 的作用

DIS(Designated Intermediate System)在广播网络中的作用:

  1. 生成伪节点 LSP(Pseudonode LSP):代表广播网段,减少多路由器互联时的 LSP 数量
  2. 周期性泛洪 CSNP:DIS 定期发送 CSNP(Complete Sequence Number PDU),包含本地区域内所有 LSP 的摘要信息
  3. 控制 LSP 泛洪:在广播网络中,所有 LSP 通过 DIS 泛洪,避免重复泛洪
  4. 协调数据库同步:新加入的路由器通过 CSNP 快速同步 LSDB

2.3 DIS 选举规则

DIS 选举遵循以下优先级(按优先级递减顺序):

  1. 接口 IS-IS 优先级:数值越大优先级越高(范围 0~127,默认 64)
  2. System ID:优先级相同时,System ID 最大的路由器当选
特性 说明
抢占式 优先级更高的路由器随时可以抢占 DIS 角色
无备份 没有类似 OSPF 的 BDR,DIS 故障后立即重新选举
Level 独立 Level-1 和 Level-2 分别选举各自的 DIS
优先级 0 仍可以参选,但不会被选为 DIS

2.4 DIS 与 OSPF DR/BDR 的对比

对比维度 IS-IS DIS OSPF DR/BDR
角色数量 单一(DIS) 双重(DR + BDR)
选举方式 抢占式 非抢占式
优先级范围 0~127(默认 64) 0~255(默认 1)
优先级 0 可参选,不会被选中 不参与 DR/BDR 选举
备份机制 无 BDR 作为热备份
邻居关系 所有路由器间建立邻接(全互联) 仅 DR/BDR 与其他路由器建立邻接
LSP 数量 伪节点 LSP 减少泛洪 网络 LSA 减少泛洪

三、技术细节

3.1 广播网络中的 DIS 工作流程

广播网络中的 DIS 工作流程 - 图示

3.2 伪节点(Pseudonode)概念

在广播网络中,如果有多台路由器互联,每台路由器都需要知道网段上连接了哪些邻居。如果不使用伪节点,每两台路由器之间都需要一个邻接关系条目,LSP 数量会随路由器数量呈组合式增长。

伪节点 LSP 由 DIS 生成,代表整个广播网段。所有连接到该网段的路由器只需要在 LSP 中添加一条到伪节点的邻接关系,大幅减少了 LSP 条目数量。

路由器数量 无伪节点的邻接条目 有伪节点的邻接条目
4 台 C(4,2) = 6 条 4 × 1 = 4 条
8 台 C(8,2) = 28 条 8 × 1 = 8 条
16 台 C(16,2) = 120 条 16 × 1 = 16 条

伪节点 LSP 的格式:

LSP ID: <DIS System ID>.00.<Pseudonode ID>
示例: 0000.0000.0001.00-00 (L1 伪节点)
      0000.0000.0001.01-00 (L2 伪节点)

3.3 点对点网络中的行为

在点对点网络中,IS-IS 不进行 DIS 选举,直接建立邻接关系:

  1. 双方直接交换 IIIH(Point-to-Point IIH)报文
  2. 双方直接泛洪 LSP
  3. 不生成伪节点 LSP
  4. 使用 P2P Hello 报文(与广播网络的 IIH 格式不同)

3.4 DIS 抢占式选举的影响

DIS 的抢占式特性意味着:当一台优先级更高的路由器加入网络或从故障中恢复时,它会立即成为新的 DIS。这可能导致:

  1. 短暂的 DIS 切换期间,CSNP 泛洪暂时中断
  2. 伪节点 LSP 需要重新生成(LSP ID 变化)
  3. 所有路由器需要更新伪节点邻接关系

因此,在实际部署中,通常将核心路由器配置为高优先级,确保 DIS 角色稳定。

四、实战配置/案例分析

4.1 配置广播网络类型

# 默认以太网接口为 Broadcast 类型
sysname R1
isis 1
 net 49.0001.0000.0000.0001.00
#
interface GigabitEthernet0/0/0
 ip address 10.1.0.1 24
 isis enable 1
 isis network-type broadcast      # 默认即为 broadcast
 isis dis-priority 100            # 设置 DIS 优先级为 100
 isis dis-priority 100 level-2    # 仅设置 Level-2 优先级

4.2 配置点对点网络类型

# 将以太网接口强制配置为 P2P 类型
interface GigabitEthernet0/0/0
 ip address 10.1.0.1 30
 isis enable 1
 isis network-type p2p            # 强制 P2P
#
# PPP 接口自动为 P2P 类型
interface Serial1/0/0
 link-protocol ppp
 ip address 10.2.0.1 30
 isis enable 1

4.3 查看 DIS 信息

# 查看接口 DIS 信息
<Huawei> display isis interface GigabitEthernet0/0/0
 Interface              : GigabitEthernet0/0/0
 Circuit ID             : R1.GigabitEthernet0/0/0
 Network type           : Broadcast
 DisHoldTime            : 31s
 Level-1 DIS System Id  : 0000.0000.0003    # L1 DIS 为 R3
 Level-1 DIS Priority   : 100
 Level-1 DIS HoldTime   : 31s
 Level-2 DIS System Id  : 0000.0000.0003    # L2 DIS 为 R3
 Level-2 DIS Priority   : 100
 Level-2 DIS HoldTime   : 31s

4.4 案例分析:DIS 抢占导致的路由震荡

故障背景:某园区网络有三台路由器 R1、R2、R3 互联在同一广播网段。R1 的 DIS 优先级配置为 127(最高),R2 和 R3 使用默认优先级 64。当 R1 进行短暂重启后,网络出现路由震荡。

故障现象:

# R1 重启期间,R2 成为临时 DIS(优先级 64,System ID 较大)
# R1 恢复后,由于抢占式选举,R1 立即重新成为 DIS
# 伪节点 LSP 从 R2 切换到 R1,触发全网 SPF 重新计算

排查:

# 查看 IS-IS 事件日志
*Sep  1 14:20:00.000 +0800 R2 %%%-0262025 IsIsCircuitStateChange
  Circuit on interface GigabitEthernet0/0/0 changed to Up.

*Sep  1 14:20:05.000 +0800 R2 %%%-0262026 IsIsDISChange
  DIS changed from 0000.0000.0002 to 0000.0000.0001 on Level-2

根因:R1 重启后 DIS 角色从 R2 抢占回 R1,伪节点 LSP 重新生成,导致 Level-2 全网 SPF 重新计算。

优化方案:

# 方案1:降低 R1 的 DIS 优先级,避免抢占(不推荐)
# 方案2:配置 DIS 优先级的同时缩短 IS-IS Hello 间隔,加快收敛
interface GigabitEthernet0/0/0
 isis timer hello 1 level-2          # Hello 间隔缩短为 1 秒

# 方案3:配置 BFD 联动,快速感知邻居状态
isis 1
 bfd enable
#
interface GigabitEthernet0/0/0
 isis bfd enable

4.5 案例分析:P2P 网络误配为 Broadcast

故障背景:两台路由器通过点对点专线互联,但接口配置为 broadcast 类型,导致 IS-IS 邻居反复震荡。

排查:

# R1 和 R2 之间是专线(P2P 链路),但配置为 Broadcast
# R1 发送的 IIH 中携带 DIS 信息,但链路上只有两台路由器
# R1 和 R2 都认为自己应该是 DIS(优先级相同,比较 System ID)
# 虽然邻居最终能建立,但会生成不必要的伪节点 LSP

<R1> display isis interface
 Network type : Broadcast          # 实际应为 P2P
 Level-1 DIS  : 0000.0000.0001     # 自己当选 DIS(无意义)

修复:

# 修改为 P2P 类型
interface GigabitEthernet0/0/0
 isis network-type p2p

修复后:

<R1> display isis interface
 Network type : Point-to-Point     # 正确
 # 不再选举 DIS,也不再生成伪节点 LSP

五、总结

网络类型 DIS 选举 伪节点 LSP 推荐场景
Broadcast 是(抢占式) 是 以太网多路由器互联
Point-to-Point 否 否 PPP/HDLC/专线
DIS 设计要点 说明
抢占式选举 优先级高的路由器随时可以成为 DIS
无 BDR DIS 故障后需重新选举,存在短暂中断
L1/L2 独立 Level-1 和 Level-2 分别选举 DIS
伪节点优化 减少广播网络中的 LSP 邻接条目数量
优先级规划 核心设备配置高优先级确保 DIS 稳定
P2P 强制 点对点链路应配置为 P2P 避免无意义 DIS 选举

思考

  1. IS-IS 的 DIS 选举是抢占式的,如果网络中频繁有设备重启,DIS 角色会频繁切换。在这种情况下,如何设计 DIS 优先级来减少网络震荡?
  2. IS-IS 广播网络中所有路由器之间建立全互联邻接(Full-Mesh Adjacency),而 OSPF 广播网络中只有 DR 和其他路由器建立邻接。IS-IS 这种设计对邻接关系数量有什么影响?
  3. 为什么 IS-IS 没有 OSPF 那样的 BDR(备份指定路由器)角色?从协议设计角度看,这种简化带来了哪些利弊?

下篇预告:第75篇:IS-IS 报文类型:Hello、LSP、PSNP、CSNP