6. 区域数据结构 (The Area Data Structure)
-
区域数据结构 (The Area Data Structure)
区域数据结构 (area data structure) 包含运行 OSPF 基本路由算法所使用的所有信息。每个区域维护它自己的链路状态数据库。一个网络属于单一区域,一个路由器接口连接到一个单一区域。每个路由器邻接 (adjacency) 也属于单一区域。
OSPF 主干是负责分发区域间路由信息的特殊 OSPF 区域。
区域链路状态数据库由源自该区域路由器的 router-LSA、network-LSA 和 summary-LSA 的集合组成。该信息仅泛洪 (flooded) 遍及单一区域。AS-external-LSA 列表(参见第 5 节)也被认为是每个区域链路状态数据库的一部分。
Area ID (区域 ID) 一个 32 位的数值,标识该区域。Area ID 0.0.0.0 保留给主干使用。
List of area address ranges (区域地址范围列表) 为了在区域边界聚合路由信息,可以采用区域地址范围 (area address ranges)。每个地址范围由一个 [address,mask] 对和一个状态指示 (status indication) 指定,状态为 Advertise 或 DoNotAdvertise(参见 12.4.3 节)。
+----+
|RT10|------+
+----+ \+-------------+
/ \ |Routing Table|
/ \ +-------------+
/ \
+------+ / \ +--------+
|Area 2|---+ +---|Backbone|
+------+***********+ +--------+
/ \ * / \
/ \ * / \+---------+ +---------+ +------------+ +------------+ |Interface| |Interface| |Virtual Link| |Interface Ib| | to N6 | | to N8 | | to RT11 | +------------+ +---------+ +---------+ +------------+ | / \ | | | / \ | | | +--------+ +--------+ | +-------------+ +------------+ |Neighbor| |Neighbor| | |Neighbor RT11| |Neighbor RT6| | RT8 | | RT7 | | +-------------+ +------------+ +--------+ +--------+ | | +-------------+ |Neighbor RT11| +-------------+
Figure 9: 路由器 RT10 的数据结构 (Router RT10's Data structures)Associated router interfaces (关联的路由器接口) 本路由器连接到该区域的接口。一个路由器接口属于且仅属于一个区域(或主干)。对于主干区域,此列表包含所有虚链路。一条虚链路由其另一端的 Router ID 标识;其代价是两台路由器之间通过 Transit area(传输区域)的最短区域内路径的代价。
List of router-LSAs (router-LSA 列表) 一个 router-LSA 由该区域中的每台路由器生成。它描述路由器到该区域的接口的状态。
List of network-LSAs (network-LSA 列表) 为该区域中的每个中转 (transit) 广播和 NBMA 网络生成一个 network-LSA。一个 network-LSA 描述当前连接到该网络的路由器集合。
List of summary-LSAs (summary-LSA 列表) summary-LSA 源自该区域的区域边界路由器。它们描述到 Autonomous System 内部、但区域外部(即区域间目的地)的目的地的路由。
Shortest-path tree (最短路径树) 以本路由器自身为根的区域最短路径树。由收集的 router-LSA 和 network-LSA 通过 Dijkstra 算法导出(参见 16.1 节)。
TransitCapability (中转能力) 此参数指示该区域能否承载既非源于、也非终结于该区域自身的数据流量。该参数在构建区域的 SPF 树时计算(参见 16.1 节,当且仅当存在一条或多条以该区域为 Transit area 的完全邻接 (fully adjacent) 虚链路时,TransitCapability 被设为 TRUE),并用作路由表构建过程后续步骤的输入(参见 16.3 节)。当某区域的 TransitCapability 被设为 TRUE 时,称该区域为 "transit area"(中转区域)。
ExternalRoutingCapability (外部路由能力) AS-external-LSA 是否会被泛洪进/遍及该区域。这是一个可配置参数。如果 AS-external-LSA 被排除在该区域外,该区域称为 "stub"(末梢)。在末梢区域内,到 AS 外部目的地的路由将仅基于一条默认汇总路由 (default summary route)。主干不能被配置为末梢区域。此外,虚链路不能被配置穿过末梢区域。更多信息请参见 3.6 节。
StubDefaultCost (末梢默认代价) 如果该区域已被配置为末梢区域,并且路由器自身是区域边界路由器,则 StubDefaultCost 指示路由器应当通告进该区域的默认 summary-LSA 的代价。更多信息请参见 12.4.3 节。
除非另有说明,本文档的其余部分指的是 OSPF 协议在单一区域内的运行。