Skip to main content

4. Implementation Details (实现细节)

当从 IPv4 过渡到 IPv6 时, 基本的 OSPF 机制与 [OSPFV2] 中记录的机制保持不变. 这些机制在 [OSPFV2] 的第 4 节中进行了简要概述. IPv6 和 IPv4 都有一个由 LSA 组成的链路状态数据库 (Link-State Database), 并在相邻路由器之间进行同步. 初始同步通过数据库交换 (Database Exchange) 过程执行, 该过程包括数据库描述 (Database Description)、链路状态请求 (Link State Request) 和链路状态更新 (Link State Update) 数据包的交换. 此后, 通过泛洪 (Flooding) 来维护数据库同步, 使用链路状态更新和链路状态确认 (Link State Acknowledgment) 数据包. IPv6 和 IPv4 都使用 OSPF Hello 数据包来发现和维护邻居关系 (Neighbor Relationships), 以及在广播 (Broadcast) 和 NBMA 链路上选举指定路由器 (Designated Routers) 和备份指定路由器 (Backup Designated Routers). 关于哪些邻居关系成为邻接关系 (Adjacencies) 的决策, 以及区域间路由 (Inter-Area Routing)、在 AS 外部 LSA 中导入外部信息和各种路由计算背后的基本思想也是相同的.

特别是, [OSPFV2] 中描述的以下 IPv4 OSPF 功能对于 IPv6 完全保持不变:

  • IPv4 和 IPv6 都使用 [OSPFV2] 的第 4.3 节中描述的 OSPF 数据包类型, 即: Hello、数据库描述 (Database Description)、链路状态请求 (Link State Request)、链路状态更新 (Link State Update) 和链路状态确认 (Link State Acknowledgment) 数据包. 虽然在某些情况下 (例如, Hello 数据包) 它们的格式有所改变, 但各种数据包类型的功能保持不变.

  • OSPF 实现的系统要求保持不变, 尽管 IPv6 的 OSPF 需要 IPv6 协议栈 (从网络层向下), 因为它直接在 IPv6 网络层上运行.

  • 邻居关系的发现和维护, 以及邻接关系的选择和建立保持不变. 这包括在广播和 NBMA 链路上选举指定路由器和备份指定路由器. 这些机制在 [OSPFV2] 的第 7、7.1、7.2、7.3、7.4 和 7.5 节中进行了描述.

  • OSPF 支持的链路类型 (或等效地, 接口类型) 保持不变, 即: 点对点 (Point-to-Point)、广播 (Broadcast)、NBMA、点对多点 (Point-to-Multipoint) 和虚拟链路 (Virtual Links).

  • 接口状态机 (Interface State Machine), 包括 OSPF 接口状态和事件列表, 以及指定路由器和备份指定路由器选举算法保持不变. 这些在 [OSPFV2] 的第 9.1、9.2、9.3 和 9.4 节中进行了描述.

  • 邻居状态机 (Neighbor State Machine), 包括 OSPF 邻居状态和事件列表保持不变. 邻居状态机在 [OSPFV2] 的第 10.1、10.2、10.3 和 10.4 节中进行了描述.

  • 链路状态数据库的老化 (Aging), 以及通过提前老化 (Premature Aging) 过程从路由域中刷新 LSA, 与 [OSPFV2] 的第 14 和 14.1 节中的描述保持不变.

然而, 一些 OSPF 协议机制已如本文档第 2 节所述发生了变化. 这些变化在以下子章节中进行了详细说明, 并引用了 [OSPFV2] 的相应章节.

以下子章节提供了将 IPv4 OSPF 实现转换为 IPv6 OSPF 实现的方法.