5. 协议数据结构
-
协议数据结构
本文根据 OSPF 协议在各种协议数据结构上的操作来描述该协议. 以下列表 包含顶层 OSPF 数据结构. 其中注明了需要完成的任何初始化. OSPF areas, interfaces 和 neighbors 也有关联的数据结构, 这些结构将在本规范后续 部分描述.
Router ID 一个 32 位数字, 在 AS 中唯一标识该路由器. 一种可能的实现策略是 使用属于该路由器的最小 IP 接口地址. 如果路由器的 OSPF Router ID 发生变化, 在新的 Router ID 生效前应重启路由器的 OSPF 软件. 在 这种情况下, 路由器应在重启前从路由域中 flush (清除) 自己产生的 LSAs (见第 14.1 节), 否则它们最多会持续 MaxAge 分钟.
Area structures 路由器连接到的每个 area 都有自己的数据结构. 该数据结构描述基本 OSPF 算法的运行. 请记住, 每个 area 都运行一份独立的基本 OSPF 算法副本.
Backbone (area) structure OSPF backbone area 负责传播 inter-area routing information (区域间路由信息).
Virtual links configured 以该路由器作为一个端点配置的 virtual links. 为了配置 virtual links, 路由器自身必须是 area border router. Virtual links 由另一 端点的 Router ID 标识, 该端点也是另一个 area border router. 这两 个端点路由器必须连接到一个公共 area, 称为 virtual link 的 Transit area. Virtual links 是 backbone 的一部分, 行为就像两个路由器之间 的未编号点到点网络. Virtual link 使用其 Transit area 的 intra-area routing 来转发分组. Virtual links 通过为 Transit area 构建 shortest- path trees 来建立和关闭.
List of external routes 这些是到 Autonomous System 外部目的地的路由, 它们通过与另一种 路由协议 (如 BGP) 的直接交互, 或通过配置信息, 或通过二者组合获得 (例如由 OSPF 使用配置 metric 通告的动态外部信息). 任何拥有这些 external routes 的路由器都称为 AS boundary router. 这些路由通过 AS-external-LSAs 由该路由器通告到 OSPF routing domain.
List of AS-external-LSAs link-state database 的一部分. 这些 LSA 来自 AS boundary routers. 它们包含到 Autonomous System 外部目的地的路由. 注意, 如果路由器 自身就是 AS boundary router, 其中一些 AS-external-LSAs 是它自己 产生的.
The routing table 从 link-state database 派生. routing table 中每个条目以目的地为 索引, 并包含该目的地的 cost 以及用于向该目的地转发分组的一组 paths. path 由其类型和 next hop 描述. 更多信息见第 11 节.
图 9 显示典型路由器中存在的数据结构集合. 图中路由器是图 6 地图中的 RT10. 注意 Router RT10 配置了到 Router RT11 的 virtual link, Area 2 是该 link 的 Transit area. 图 9 中用虚线表示这一点. 当该 virtual link 通过为 Area 2 构建 shortest path tree 而变为 active 时, 它会成为 backbone 的一个接口 (见图 9 中描绘的两个 backbone interfaces).