5. 协议数据结构 (Protocol Data Structures)
-
协议数据结构 (Protocol Data Structures)
OSPF 协议在此通过其对各种协议数据结构的操作来描述。以下列表构成了 OSPF 的顶层数据结构。任何需要完成的初始化都加以注明。OSPF 区域、接口和邻居也有相关联的数据结构,在本规范的后面部分描述。
Router ID (路由器 ID) 一个 32 位的数值,在 AS 中唯一标识此路由器。一种可能的实现策略是使用属于该路由器的最小 IP 接口地址。如果路由器的 OSPF Router ID 被更改,路由器的 OSPF 软件应当先重启,新的 Router ID 才生效。在这种情况下,路由器应在重启前将其自始发的 LSA 从路由域 (routing domain) 中清除 (flush)(参见 14.1 节),否则它们将持续最多 MaxAge 分钟。
Area structures (区域结构) 路由器所连接的每个区域都有其自身的数据结构。该数据结构描述基本 OSPF 算法的运行。要记住,每个区域运行一个独立的 OSPF 基本算法副本。
Backbone (area) structure (主干(区域)结构) OSPF 主干区域 (backbone area) 负责区域间路由信息的分发。
Virtual links configured (已配置的虚链路) 以本路由器为一端配置的虚链路 (virtual links)。为了拥有已配置的虚链路,路由器自身必须是区域边界路由器 (area border router)。虚链路由另一端的 Router ID 标识——另一端是另一台区域边界路由器。这两个端点路由器必须连接到一个公共区域,称为该虚链路的 Transit area(传输区域)。虚链路是主干的一部分,其行为如同两台路由器之间的无编号 (unnumbered) 点到点网络。虚链路使用其 Transit area 的区域内路由 (intra-area routing) 来转发报文。虚链路通过构建 Transit area 的最短路径树来建立和拆除。
List of external routes (外部路由列表) 这些是到 Autonomous System 外部目的地的路由,它们或者通过与另一个路由协议(如 BGP)的直接经验获得,或者通过配置信息获得,或者通过两者结合获得(例如,要由 OSPF 通告的动态外部信息、其度量 (metric) 已配置)。任何拥有这些外部路由的路由器称为 AS 边界路由器 (AS boundary router)。这些路由由路由器通过 AS-external-LSA 通告进 OSPF 路由域。
List of AS-external-LSAs (AS-external-LSA 列表) 链路状态数据库的一部分。它们源自 AS 边界路由器。它们包含到 Autonomous System 外部目的地的路由。注意,如果路由器自身就是 AS 边界路由器,其中一些 AS-external-LSA 是被自始发的。
The routing table (路由表) 从链路状态数据库导出。路由表中的每一项以一个目的地为索引,并包含该目的地的代价 (cost) 以及一组用于在转发报文到该目的地时使用的路径。一条路径由其类型和下一跳 (next hop) 描述。更多信息请参见 11 节。
图 9 显示了典型路由器中存在的数据结构集合。图中所描绘的路由器是图 6 中地图里的 RT10。注意路由器 RT10 配置了一条到路由器 RT11 的虚链路,以 Area 2 作为该链路的 Transit area(传输区域)。这由图 9 中的虚线指示。当通过构建 Area 2 的最短路径树使虚链路变为活跃时,它成为到主干的一个接口(参见图 9 中描绘的两个主干接口)。