ospfv3报文交互流程
OSPFv3(Open Shortest Path First version 3)是专为IPv6设计的链路状态路由协议,其报文交互流程与OSPFv2类似,但存在一些关键差异。以下是OSPFv3的报文交互流程详解:
1. 邻居发现与Hello报文
-
多播地址:
- OSPFv3路由器通过发送Hello报文到链路本地多播地址
FF02::5
(所有OSPFv3路由器)和FF02::6
(指定路由器DR/备份指定路由器BDR)来发现邻居。 - 源地址为接口的链路本地IPv6地址。
- OSPFv3路由器通过发送Hello报文到链路本地多播地址
-
参数协商:
- Hello报文中包含Router ID、区域ID、实例ID(Instance ID)、接口优先级、邻居列表等。
- 关键条件:双方必须匹配以下参数才能建立邻居:
- 相同的区域ID和实例ID。
- 一致的网络类型(如广播、点对点)。
- 兼容的认证配置(OSPFv3依赖IPv6的IPsec认证,而非协议内认证字段)。
-
邻居状态:
- Down → Init:收到Hello报文但未在邻居列表中。
- Init → 2-Way:收到包含自己Router ID的Hello报文,双方进入
2-Way
状态。
2. DR/BDR选举(仅广播网络)
在广播网络(如以太网)中,OSPFv3选举DR和BDR以减少邻接关系数量:
- 选举规则:
- 比较接口优先级(默认1),优先级高者胜出。
- 优先级相同则选择Router ID更大者。
- 结果:
- 非DR/BDR的路由器仅与DR/BDR建立邻接关系(
Full
状态),非DR/BDR之间保持2-Way
状态。
- 非DR/BDR的路由器仅与DR/BDR建立邻接关系(
3. 数据库同步与邻接关系建立
邻接关系建立需完成链路状态数据库(LSDB)同步,流程如下:
3.1 ExStart状态(主从协商)
- DD报文(Database Description):
- 路由器交换空的DD报文,携带
I
(Init)、M
(More)、MS
(Master/Slave)标志位。 - 主从选举:Router ID更大的路由器成为Master,控制DD报文序列号。
- 路由器交换空的DD报文,携带
3.2 Exchange状态(摘要交换)
- DD报文交换:
- Master发送携带LSDB摘要的DD报文(每个LSA的头部信息)。
- Slave按序列号确认并响应。
- 双方通过
M
位标记是否还有更多DD报文。
3.3 Loading状态(请求缺失LSA)
- LSR(Link State Request):
- 双方比较摘要,发送LSR请求缺失的LSA。
- LSU(Link State Update):
- 接收方回复LSU报文,携带完整的LSA内容。
- LSAck(Link State Acknowledgment):
- 接收方通过单播或多播
LSAck
确认LSU。
- 接收方通过单播或多播
3.4 Full状态(邻接完成)
- 双方LSDB完全同步,进入
Full
状态,开始基于SPF算法计算路由。
4. 链路状态更新与泛洪
- 触发条件:
- 网络拓扑变化(如接口状态变更)。
- 新LSA生成(如路由变化)。
- 泛洪过程:
- 更新LSA的序列号,设为旧值+1。
- 发送LSU报文到多播地址
FF02::5
(或单播给DR/BDR)。 - 邻居收到LSU后:
- 若LSA较新,更新本地LSDB并泛洪。
- 回复LSAck确认。
- 老化机制:
- LSA生存时间(Age)达到
MaxAge
(1小时)后,通过泛洪MaxAge LSU移除旧LSA。
- LSA生存时间(Age)达到
5. 维护与可靠性
- Hello保活:
- 默认每10秒发送Hello报文,超时40秒未收到则置邻居为
Down
。
- 默认每10秒发送Hello报文,超时40秒未收到则置邻居为
- LSA刷新:
- 每30分钟刷新LSA(序列号+1,重新泛洪)。
- 重传机制:
- 未收到LSAck时,重传LSU(最大重传间隔5秒)。
OSPFv3与OSPFv2的关键差异
特性 | OSPFv3 (IPv6) | OSPFv2 (IPv4) |
---|---|---|
地址依赖 | 使用链路本地地址,独立于IPv6全局地址 | 依赖IPv4接口地址 |
LSA类型 | 新增Link-LSA、Intra-Area-Prefix-LSA等 | 传统Router-LSA、Network-LSA等 |
认证 | 依赖IPv6 IPsec,无协议内认证字段 | 支持明文/MD5认证 |
实例ID | 支持多实例(通过Instance ID区分) | 无实例概念 |
多播地址 | FF02::5(所有路由器)、FF02::6(DR/BDR) | 224.0.0.5、224.0.0.6 |
总结
OSPFv3的报文交互流程在邻居发现、数据库同步和泛洪机制上与OSPFv2相似,但其设计充分适配IPv6特性(如链路本地地址、多实例支持),并通过移除协议内认证简化了安全性实现。正确理解其报文交互流程,有助于排查网络中的邻接关系故障和路由收敛问题。