附录 C. 可配置常量
在 router-LSA 中,Link State ID 字段被设为路由器的 OSPF Router ID。
Router-LSA 只在单个区域内泛洪。
bit V
当置位时,表示该路由器是一条或多条以所描述区域为 Transit area
的、完全邻接的 virtual link 的端点(V 代表 virtual link
endpoint,虚链路端点)。
bit E
当置位时,表示该路由器是一台 AS boundary router(E 代表
external,外部)。
bit B
当置位时,表示该路由器是一台 area border router(B 代表
border,边界)。
# links
本 LSA 中所描述的路由器链路数量。这必须是路由器到该区域的
全部链路(即接口)集合。
以下字段用于描述每条路由器链路(即接口)。每条路由器链路都有类型
(见下面的 Type 字段)。Type 字段指示所描述链路的种类。它可以是
到 transit network 的链路、到另一台路由器的链路,或到 stub network
的链路。描述路由器链路的所有其他字段的取值都取决于该链路的 Type。
例如,每条链路都有一个关联的 32 位 Link Data 字段。对于到 stub
network 的链路,该字段指定该网络的 IP 地址掩码。对于其他链路类型,
Link Data 字段指定路由器接口的 IP 地址。
Type
对该路由器链路的简要描述。取以下之一。注意,主机路由被归类为
到 stub network 的链路,其网络掩码为 0xffffffff。
Type 描述
__________________________________________________
1 到另一台路由器的 point-to-point 连接
2 到 transit network 的连接
3 到 stub network 的连接
4 Virtual link
Link ID
标识该路由器链路所连接到的对象。取值取决于链路的 Type。当连接
到一个同样会始发 LSA 的对象时(即另一台路由器或一个 transit
network),Link ID 等于相邻 LSA 的 Link State ID。这提供了在
路由表计算过程中在链路状态数据库里查找相邻 LSA 的键。更多细节
见 12.2 节。
Type Link ID
______________________________________
1 相邻路由器的 Router ID
2 Designated Router 的 IP 地址
3 IP 网络/子网号
4 相邻路由器的 Router ID
Link Data
取值同样取决于链路的 Type 字段。对于到 stub network 的连接,
Link Data 指定该网络的 IP 地址掩码。对于无编号的 point-to-point
连接,它指定该接口的 MIB-II [Ref8] ifIndex 值。对于其他链路
类型,它指定路由器接口的 IP 地址。后一项信息在路由表构建过程中
计算下一跳 IP 地址时需要用到。更多细节见 16.1.1 节。
# TOS
为该链路给出的不同 TOS metric 的数量,不计入必需的链路 metric
(在 [Ref9] 中称为 TOS 0 metric)。例如,如果没有给出额外的
TOS metric,则该字段被设为 0。
metric
使用该路由器链路的代价。
为了与之前版本的 OSPF 规范([Ref9])向后兼容,还可以包含额外的
TOS 特定信息。在每条链路内部,对每个所需的 TOS,TOS 特定的链路信息
可按如下方式编码:
TOS 该 metric 所指的 IP Type of Service。OSPF LSA 中 TOS 的编码
在 12.3 节中描述。
TOS metric
TOS 特定的 metric 信息。
A.4.3 Network-LSA
Network-LSA 是 Type 2 LSA。为区域中每个支持两台或更多路由器的
broadcast 和 NBMA 网络始发一个 network-LSA。network-LSA 由该网络的
Designated Router 始发。该 LSA 描述连接到该网络的所有路由器,
包括 Designated Router 自身。该 LSA 的 Link State ID 字段列出
Designated Router 的 IP 接口地址。
从该网络到所有所连路由器的距离都为零。这就是为什么 network-LSA 中
不需要指定 metric 字段。关于 network-LSA 构造的细节,见 12.4.2 节。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Attached Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Network Mask
该网络的 IP 地址掩码。例如,一个 A 类网络的掩码为 0xff000000。
Attached Router
连接到该网络的每台路由器的 Router ID。实际上,只列出那些与
Designated Router 完全邻接的路由器。Designated Router 把自己
也包含在这个列表中。所包含的路由器数量可以从 LSA 头部的
length 字段推导得出。
A.4.4 Summary-LSA
Summary-LSA 是 Type 3 和 Type 4 LSA。这些 LSA 由 area border
router 始发。Summary-LSA 描述 inter-area 目的地。关于 summary-LSA
构造的细节,见 12.4.3 节。
当目的地是一个 IP 网络时使用 Type 3 summary-LSA。此时该 LSA 的
Link State ID 字段是一个 IP 网络号(必要时 Link State ID 也可以
置位该网络的一个或多个"主机"位;详见附录 E)。当目的地是一台 AS
boundary router 时,使用 Type 4 summary-LSA,此时 Link State ID
字段是该 AS boundary router 的 OSPF Router ID。(要了解为什么必须
通告每台 ASBR 的位置,请查阅 16.4 节。)除 Link State ID 字段的
差异外,Type 3 和 Type 4 summary-LSA 的格式是相同的。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 3 or 4 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 0 | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TOS | TOS metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
对于 stub 区域,Type 3 summary-LSA 也可以用来描述一条(按区域的)
默认路由。在 stub 区域中使用默认汇总路由,而不是泛洪一整套外部
路由。在描述默认汇总路由时,summary-LSA 的 Link State ID 总是被
设为 DefaultDestination(0.0.0.0),Network Mask 被设为 0.0.0.0。
Network Mask
对于 Type 3 summary-LSA,该字段指示目的网络的 IP 地址掩码。
例如,在通告一个 A 类网络的位置时会使用取值 0xff000000。
对于 Type 4 summary-LSA,该字段没有意义且必须为零。
metric
该路由的代价。以与 router-LSA 中接口代价相同的单位表示。
为了与之前版本的 OSPF 规范([Ref9])向后兼容,还可以包含额外的
TOS 特定信息。对每个所需的 TOS,TOS 特定信息按如下方式编码:
TOS 该 metric 所指的 IP Type of Service。OSPF LSA 中 TOS 的编码
在 12.3 节中描述。
TOS metric
TOS 特定的 metric 信息。
A.4.5 AS-external-LSA
AS-external-LSA 是 Type 5 LSA。这些 LSA 由 AS boundary router
始发,描述 AS 外部的目的地。关于 AS-external-LSA 构造的细节,
见 12.4.3 节。
AS-external-LSA 通常描述某个特定的外部目的地。对于这些 LSA,
Link State ID 字段指定一个 IP 网络号(必要时 Link State ID 也可以
置位该网络的一个或多个"主机"位;详见附录 E)。AS-external-LSA
也用于描述默认路由。当不存在通向目的地的具体路由时,就使用默认
路由。在描述默认路由时,Link State ID 总是被设为 DefaultDestination
(0.0.0.0),Network Mask 被设为 0.0.0.0。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS age | Options | 5 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Link State ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Advertising Router |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS sequence number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LS checksum | length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Network Mask |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| 0 | metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Forwarding address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| External Route Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|E| TOS | TOS metric |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Forwarding address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| External Route Tag |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
Network Mask
所通告目的地的 IP 地址掩码。例如,在通告一个 A 类网络时会使用
掩码 0xff000000。
bit E
外部 metric 的类型。如果 bit E 被置位,则所指定的 metric 是
Type 2 外部 metric。这意味着该 metric 被认为大于任何链路状态
路径。如果 bit E 为零,则所指定的 metric 是 Type 1 外部 metric。
这意味着它以与链路状态 metric 相同的单位表示(即与接口代价
相同的单位)。
metric
该路由的代价。其解释取决于外部类型指示(上面的 bit E)。
Forwarding address
发往所通告目的地的数据流量将被转发到该地址。如果 Forwarding
address 被设为 0.0.0.0,则数据流量将改为转发给该 LSA 的始发者
(即负责的 AS boundary router)。
External Route Tag
附加到每条外部路由上的一个 32 位字段。OSPF 协议本身并不使用它。
它可以用于在 AS boundary router 之间传递信息;这类信息的确切
性质超出了本规范的范围。
为了与之前版本的 OSPF 规范([Ref9])向后兼容,还可以包含额外的
TOS 特定信息。对每个所需的 TOS,TOS 特定信息按如下方式编码:
TOS 后续各字段所涉及的 Type of Service。OSPF LSA 中 TOS 的编码
在 12.3 节中描述。
bit E
为与 [Ref9] 向后兼容而保留。
TOS metric
TOS 特定的 metric 信息。
Forwarding address
为与 [Ref9] 向后兼容而保留。
External Route Tag
为与 [Ref9] 向后兼容而保留。
B. 体系结构常量(Architectural Constants)
若干 OSPF 协议参数具有固定的体系结构取值。这些参数在正文中以
LSRefreshTime 之类的名称被引用。可配置的协议参数也采用相同的命名
约定,它们在附录 C 中定义。
下面列出每个体系结构常量的名称,以及它的取值和其功能的简短描述。
LSRefreshTime
任何特定 LSA 的两次不同始发之间的最大时间。如果路由器某个
自始发 LSA 的 LS age 字段达到 LSRefreshTime 值,就会始发该
LSA 的一个新实例,即使该 LSA 的内容(除 LSA 头部外)保持不变。
LSRefreshTime 的取值被设为 30 分钟。
MinLSInterval
任何特定 LSA 的两次不同始发之间的最小时间。MinLSInterval 的
取值被设为 5 秒。
MinLSArrival
对于任何特定 LSA,在泛洪过程中接收其新实例之间必须经过的最小
时间。以更高频率接收到的 LSA 实例会被丢弃。MinLSArrival 的
取值被设为 1 秒。
MaxAge
LSA 所能达到的最大年龄。当某个 LSA 的 LS age 字段达到 MaxAge
时,它会被重新泛洪,以尝试把该 LSA 从路由域中清除(见第 14 节)。
年龄为 MaxAge 的 LSA 不用于路由表计算。MaxAge 的取值被设为
1 小时。
CheckAge
当链路状态数据库中某个 LSA 的年龄达到 CheckAge 的整数倍时,
会验证该 LSA 的校验和。此时校验和不正确表明出现了严重错误。
CheckAge 的取值被设为 5 分钟。
MaxAgeDiff
某个 LSA 在整个 AS 中泛洪时可能出现的最大时间离散度。这段时间
大部分是由于 LSA 在泛洪过程中停留在路由器输出队列上(因而不会
老化)所造成的。MaxAgeDiff 的取值被设为 15 分钟。
LSInfinity
表示某个 LSA 所描述的目的地不可达的 metric 取值。在
summary-LSA 和 AS-external-LSA 中用作提前老化的替代方案
(见 14.1 节)。它被定义为全 1 的 24 位二进制值:0xffffff。
DefaultDestination
表示默认路由的 Destination ID。当找不到其他匹配的路由表条目时
就使用该路由。默认目的地只能在 AS-external-LSA 以及 stub 区域
的 Type 3 summary-LSA 中通告。它的取值是 IP 地址 0.0.0.0。
其关联的 Network Mask 也总是 0.0.0.0。
InitialSequenceNumber
在始发任何 LSA 的第一个实例时用作 LS Sequence Number 的取值。
它的值是有符号 32 位整数 0x80000001。
MaxSequenceNumber
LS Sequence Number 所能达到的最大值。它的值是有符号 32 位整数
0x7fffffff。