关键词:IS-IS、LSP 泛洪、LSDB 同步、CSNP、PSNP、数据库一致性、收敛
第76篇:IS-IS LSP 泛洪与 LSDB 同步
一、引言
LSP(Link State PDU)泛洪和 LSDB(Link State Database)同步是 IS-IS 协议的核心机制。LSP 泛洪确保网络中每一台路由器都能获取完整的拓扑信息,而 LSDB 同步保证所有路由器的链路状态数据库保持一致。
理解 LSP 泛洪的路径和 LSDB 同步的机制,对于分析 IS-IS 收敛行为和排查数据库不一致问题至关重要。
二、核心概念
2.1 LSP 泛洪的基本流程
LSP 泛洪是一个确保全网路由器最终获得相同链路状态信息的过程:
- 起源:当本地链路状态发生变化时,路由器生成新的 LSP
- 泛洪:将新 LSP 发送(泛洪)给所有 IS-IS 邻居
- 确认:邻居收到后发送确认(PSNP 或 CSNP 机制)
- 转发:邻居将 LSP 继续泛洪给其他邻居
- 存储:每个路由器将 LSP 存入自己的 LSDB
2.2 泛洪范围
| LSP 类型 | 泛洪范围 | 说明 |
|---|---|---|
| Level-1 LSP | 仅在同一 Area 内泛洪 | Level-1 路由器可见 |
| Level-2 LSP | 在所有 Level-2 域内泛洪(跨 Area) | Level-2 和 Level-1-2 路由器可见 |
| 伪节点 LSP | 与起源 LSP 相同的泛洪范围 | 由 DIS 生成 |
2.3 LSDB 同步机制
IS-IS 通过三种机制确保 LSDB 一致:
| 机制 | 描述 | 触发时机 |
|---|---|---|
| CSNP 摘要比对 | DIS 周期性发送 CSNP,路由器比对本地 LSDB | 周期性(广播网络) |
| PSNP 请求缺失 | 路由器发现缺少某 LSP 时发送 PSNP 请求 | 发现缺失 LSP 时 |
| 新邻居建立同步 | 新邻居建立时交换 CSNP 完成全量同步 | 邻居状态变为 Up 时 |
2.4 LSP 的更新与刷新
| 事件 | LSP 操作 | 序列号变化 |
|---|---|---|
| 本地链路变化 | 生成新 LSP 并泛洪 | +1 |
| 周期性刷新 | 重新生成 LSP(内容不变) | +1 |
| LSP 到期 | 生成 Purge 标记 LSP(剩余时间 = 0) | +1 |
| 接收更新 | 对比序列号,接受更新并转发 | 不变(本地不生成) |
2.5 LSP 新旧判断规则
路由器收到 LSP 时,按以下规则判断是否接受:
- 序列号更大 → 新 LSP,接受并转发
- 序列号更小 → 旧 LSP,丢弃
- 序列号相同,校验和相同 → 相同 LSP,丢弃
- 序列号相同,校验和不同 → 冲突,接受新的并转发
- 剩余时间更短 → 丢弃(已有更新的副本)
三、技术细节
3.1 广播网络中的 LSP 泛洪

3.2 点对点网络中的 LSP 泛洪

3.3 新路由器加入网络时的 LSDB 同步
当新路由器 R_new 加入 IS-IS 网络时,需要通过 CSNP 快速同步完整的 LSDB:

3.4 LSP 泛洪抑制(Flooding Suppression)
为防止泛洪风暴,IS-IS 实现了泛洪抑制机制:
| 抑制机制 | 描述 |
|---|---|
| 序列号去重 | 已接收过的 LSP(相同序列号)不重复泛洪 |
| 泛洪延迟 | 收到 LSP 后短暂延迟再转发,避免瞬间泛洪 |
| 泛洪队列 | LSP 放入队列按序处理,防止队列溢出 |
| 最大 LSP 数限制 | 限制单台路由器生成的 LSP 数量(默认 512) |
| LSP 大小限制 | 限制单个 LSP 大小,超限时分页 |
3.5 Level-1 和 Level-2 泛洪隔离
Level-1-2 路由器虽然同时维护 L1 和 L2 LSDB,但 LSP 泛洪严格隔离:
| 来源 | Level-1 泛洪 | Level-2 泛洪 |
|---|---|---|
| Level-1 LSP | ✓(区域内) | ✗ |
| Level-2 LSP | ✗ | ✓(跨区域) |
| Level-1-2 路由器生成的 L1 LSP | ✓(本区域) | ✗ |
| Level-1-2 路由器生成的 L2 LSP | ✗ | ✓(全网) |
注意:Level-1 和 Level-2 的 LSP 不会自动交叉传播。如果需要在 Level-1 中引入 Level-2 路由,必须通过路由泄露(Route Leaking)手动配置。
四、实战配置/案例分析
4.1 泛洪参数调优
# 调整 LSP 相关参数
isis 1
# LSP 生命周期(秒)
lsp-life-time 1200
# LSP 刷新间隔(秒),默认为生命周期的 75%
lsp-refresh-time 900
# 最大 LSP 数量
lsp-max-num 512
# LSP 最大大小(字节)
lsp-max-splittings 4
4.2 案例分析:LSP 泛洪不完整
故障背景:R1 的链路状态变化后,R3 未能及时学习到新的路由,导致流量转发错误。
排查过程:
# R1 生成了新 LSP
<R1> display isis lsdb
0000.0000.0001.00-00 SeqNum: 0x00000005
# R2 已学习到(R1 的直连邻居)
<R2> display isis lsdb
0000.0000.0001.00-00 SeqNum: 0x00000005
# R3 未学习到(R2 的邻居)
<R3> display isis lsdb
0000.0000.0001.00-00 SeqNum: 0x00000004 # 仍为旧版本
根因分析:
# R2 和 R3 之间的 Level 不匹配
<R2> display isis peer
System-id : 0000.0000.0003
Level : Level-1 # 仅 L1 邻居
# R1 生成的是 L2 LSP,R2 与 R3 只有 L1 邻居关系
# L2 LSP 无法通过 L1 邻居关系泛洪
修复:
# R2 与 R3 之间需要建立 Level-2 邻居
interface GigabitEthernet0/0/1
isis circuit-level level-2
4.3 案例分析:CSNP 周期导致的同步延迟
故障背景:广播网络中,新加入的路由器需要较长时间才能完成 LSDB 同步。
排查:
# 查看 DIS 的 CSNP 发送间隔
<R3> display isis interface
CSNP Timer : 90s # 9 倍 Hello(10s) = 90s
# 新路由器需要等待下一个 CSNP 周期才能发现缺失的 LSP
优化:
# 缩短 Hello 间隔,间接缩短 CSNP 周期
interface GigabitEthernet0/0/0
isis timer hello 3 level-2 # Hello 3 秒
# CSNP 间隔变为 27 秒
# 或者直接缩短 CSNP 间隔(部分平台支持)
isis 1
isis csnp-timer 15 level-2 # CSNP 15 秒
4.4 案例分析:LSP 数量超限
故障背景:某大型网络中 R1 频繁生成新的 LSP,达到最大 LSP 数量限制后,新的链路状态变化无法被记录和泛洪。
排查:
<R1> display isis lsdb
Total: 512 # 已达上限
# 检查 LSP 分页情况
<R1> display isis lsdb verbose
# 发现多个 LSP 被分页,说明单台路由器链路信息过多
# 0000.0000.0001.00-0001
# 0000.0000.0001.00-0002
# 0000.0000.0001.00-0003
# ... (大量分页)
根因:R1 连接了过多的接口,每个接口都生成可达性 TLV,导致 LSP 容量不足。
修复:
# 增加最大 LSP 数量
isis 1
lsp-max-num 1024
#
# 增加 LSP 分页上限
isis 1
lsp-max-splittings 8
#
# 优化:对非关键接口进行 IS-IS 接口路由策略过滤
isis 1
filter-policy export default deny level-2
五、总结
| 机制 | 广播网络 | 点对点网络 |
|---|---|---|
| LSP 泛洪路径 | 通过 DIS 集中泛洪 | 逐跳直接泛洪 |
| LSP 确认 | CSNP 周期性比对 | PSNP 逐包确认 |
| 数据库同步 | CSNP 周期性 + PSNP 请求 | CSNP 建立时 + PSNP 请求 |
| 新路由器加入 | 等待 CSNP 发现缺失 | 立即交换 CSNP 同步 |
| 调优建议 | 说明 |
|---|---|
| Hello 间隔 | 核心链路缩短 Hello 以加快收敛 |
| LSP 生命周期 | 根据网络稳定性调整刷新频率 |
| 最大 LSP 数 | 大规模网络适当增加上限 |
| CSNP 间隔 | 广播网络可适当缩短以加快同步 |
思考
- 在广播网络中,LSP 通过 DIS 泛洪。如果 DIS 故障,LSP 泛洪会中断吗?新的 DIS 选举期间如何保证 LSP 不丢失?
- IS-IS 的 LSP 泛洪在广播网络中依赖 DIS,而 OSPF 的 LSA 泛洪通过 DR 协调。两种机制在可靠性和效率上有什么差异?
- LSP 序列号溢出问题在长期运行的网络中不可避免。除重启外,是否有平滑的序列号回收机制?
下篇预告:第77篇:IS-IS 邻居建立条件:Area、SystemID、MTU