第76篇:IS-IS LSP 泛洪与 LSDB 同步
关键词
IS-IS、LSP 泛洪、LSDB 同步、CSNP、PSNP、Reliable Flooding
一、IS-IS 泛洪机制概述
与 OSPF 一样,IS-IS 使用可靠泛洪(Reliable Flooding)确保全网 LSDB 一致。但实现方式有所不同。
1.1 泛洪的基本原则
- 每台路由器产生自己的 LSP,描述直连链路状态
- LSP 被泛洪到所有邻居
- 邻居收到后,继续泛洪给自己的其他邻居
- 最终全网所有路由器的 LSDB 一致
- 从不将 LSP 泛洪回发送者
二、广播网络上的泛洪
2.1 DIS 的作用
在广播网络上,DIS 是 LSP 泛洪的中心节点。
非 DIS 路由器产生 LSP:
RouterA ── LSP ──→ DIS
RouterB ── LSP ──→ DIS
RouterC ── LSP ──→ DIS
DIS 泛洪 LSP 到所有非 DIS 路由器:
DIS ── LSP ──→ RouterA
DIS ── LSP ──→ RouterB
DIS ── LSP ──→ RouterC
2.2 CSNP 的周期性同步
DIS 每 10 秒发送 CSNP:
DIS ── CSNP(完整的 LSDB 摘要)──→ 所有非 DIS 路由器
非 DIS 路由器收到 CSNP 后:
├─ 与自己的 LSDB 对比
├─ 如果缺少某条 LSP → 发送 PSNP 请求
└─ 如果全部一致 → 不做操作
2.3 完整过程
RouterA 产生新 LSP(路由发生变化):
Step 1: RouterA 组播 LSP 到 01-80-C2-00-00-15
Step 2: DIS 收到 LSP,更新自己的 LSDB
Step 3: DIS 组播 CSNP(包含更新后的摘要)
Step 4: RouterB 收到 CSNP,对比后发现需要请求缺失 LSP
Step 5: RouterB 单播 PSNP 到 DIS
Step 6: DIS 单播 LSP 到 RouterB
Step 7: RouterB 更新 LSDB,流程结束
三、P2P 网络上的泛洪
P2P 网络上的泛洪更简单:
RouterA ──── P2P ──── RouterB
RouterA 产生新 LSP:
A ── LSP ─────────────→ B (发送 LSP)
A ←─ PSNP(ACK)─────── B (B 确认收到)
RouterB 产生新 LSP:
B ── LSP ─────────────→ A (发送 LSP)
B ←─ PSNP(ACK)─────── A (A 确认收到)
P2P 上没有 DIS,LSDB 同步通过双方的 CSNP+PSNP 完成:
A ── CSNP ─────→ B (A 发送完整摘要)
A ←─ PSNP ────── B (B 请求缺失的 LSP)
A ── LSP ───────→ B (A 发送缺失的 LSP)
A ←─ PSNP ────── B (B 确认)
(双方角色互换)
B ── CSNP ─────→ A (B 发送完整摘要)
...
四、LSP 的刷新与老化
4.1 刷新机制
每台路由器每 900 秒(15 分钟)刷新自己的 LSP:
T0:RouterA 产生 LSP,序列号=0x00000001
T900:RouterA 刷新 LSP,序列号=0x00000002
T1800:RouterA 刷新 LSP,序列号=0x00000003
...
即使路由没有变化,LSP 也会周期刷新。
4.2 老化机制
- 每条 LSP 包含一个 Remaining Lifetime(剩余寿命) 字段
- 初始值:1200 秒(20 分钟)
- 路由器收到 LSP 后,开始倒计时
- 在寿命耗尽前需要收到刷新后的 LSP
- 寿命到 0 → LSP 从 LSDB 中删除
4.3 异常老化
如果路由器故障,邻居会在 Hold Time 超时后将故障路由器的 LSP "归零":
1. RouterA 故障
2. RouterB 检测到 Hold Time 超时
3. RouterB 将 RouterA 的 LSP 的 Remaining Lifetime 设为 0
4. RouterB 泛洪该 LSP(寿命=0,即"死亡通告")
5. 全网收到后,删除 RouterA 的所有 LSP
五、LSP 分片
5.1 为什么需要分片
一条 LSP 的大小有上限(通常 1492 字节)。当一台路由器需要宣告的路由数量超过单条 LSP 的容量时,需要进行 LSP 分片。
LSP ID: 1111.1111.1111.00-00 ← 主 LSP(分片 00)
LSP ID: 1111.1111.1111.00-01 ← 分片 01
LSP ID: 1111.1111.1111.00-02 ← 分片 02
...
5.2 最大分片数
| 级别 | 最大分片数 |
|---|---|
| L1 | 256 个分片 |
| L2 | 256 个分片 |
5.3 分片配置
# 增加 LSP 分片数量
isis 1
lsp-fragments-extend 1 # 启用分片扩展
六、LSP 泛洪的控制
6.1 泛洪范围控制
# 限制 LSP 泛洪的接口
interface GigabitEthernet0/0/0
isis silent # 静默接口(不发送任何 IS-IS 报文)
6.2 LSP 生成间隔
# 控制 LSP 生成间隔(避免频繁变化导致泛洪风暴)
isis 1
lsp-gen-interval 2 # 最小 LSP 生成间隔 2 秒
lsp-gen-interval level-1 3
lsp-gen-interval level-2 3
6.3 LSP 泛洪间隔
# 控制 LSP 泛洪间隔
isis 1
flooding-throttle 10 50 100 # 最小 10ms,最大 50ms,超过 100 条 LSP 时限速
七、OSPF 与 IS-IS 的 LSDB 同步对比
| 同步机制 | OSPF | IS-IS |
|---|---|---|
| 初始同步 | DD/ LSR / LSU | CSNP / PSNP / LSP |
| 周期性同步 | 无 | CSNP(DIS 每 10 秒) |
| 确认机制 | 隐式确认 + LSU ACK | PSNP 显式确认 |
| 刷新间隔 | 30 分钟 | 15 分钟 |
| 老化时间 | 60 分钟 | 20 分钟 |
| 分片机制 | LSA 本身无分片 | LSP 支持分片 |
| 泛洪控制 | 定时器控制 | 更精细的节流控制 |
八、总结
| 知识点 | 核心要点 |
|---|---|
| 泛洪方式 | 广播网络通过 DIS,P2P 直接交互 |
| CSNP | DIS 每 10s 发送,完整的 LSDB 摘要 |
| PSNP | 请求缺失 LSP 或确认收到 |
| LSP 刷新 | 每 15 分钟刷新一次 |
| LSP 老化 | 20 分钟寿命,归零即删除 |
| LSP 分片 | 超出容量时自动分片(最多 256) |
九、思考
- 在广播网络上,LSP 是如何从非 DIS 路由器泛洪到全网其他路由器的?
- PSNP 在 P2P 和广播网络上的角色有什么不同?
- 如果一台路由器故障,它的 LSP 如何从全网 LSDB 中删除?
- 什么情况下会出现 LSP 分片?如何查看分片?
- CSNP 在广播网络上的发送周期是多少?它有什么作用?
下篇预告:第77篇《IS-IS 邻居建立条件——Area、SystemID、MTU》——排查 IS-IS 邻居建立失败的常见原因。