Skip to main content

4.4.3.9. Intra-Area-Prefix-LSAs (区域内前缀LSA)

区域内前缀-LSA 的 LS 类型设置为值 0x2009. 区域内前缀-LSA 具有区域泛洪范围 (Area Flooding Scope). 区域内前缀-LSA 具有两个功能之一. 它通过引用网络-LSA 将 IPv6 地址前缀列表与传输网络链路关联, 或通过引用路由器-LSA 将 IPv6 地址前缀列表与路由器关联. 末梢链路 (Stub Link) 的前缀与其连接的路由器相关联.

路由器可以 (MAY) 为给定区域产生多个区域内前缀-LSA. 每个区域内前缀-LSA 具有唯一的链路状态ID (Link State ID) 并包含整数个前缀描述.

指定路由器产生的区域内前缀-LSA

链路的指定路由器 (Designated Router) 产生一个或多个区域内前缀-LSA 以在整个区域内通告链路的前缀. 对于链路 L, L 的指定路由器按以下方式构建区域内前缀-LSA:

  • 为了指示前缀将与链路 L 关联, Referenced LS Type (引用的LS类型), Referenced Link State ID (引用的链路状态ID) 和 Referenced Advertising Router (引用的通告路由器) 字段设置为链路 L 的网络-LSA 中的相应字段. 这意味着引用的LS类型设置为 0x2002, 引用的链路状态ID设置为指定路由器在链路L上的接口ID, 引用的通告路由器设置为指定路由器的路由器ID.

  • 检查与链路 L 关联的每个链路-LSA. 如果链路-LSA 的通告路由器与指定路由器完全邻接且链路状态ID与邻居的接口ID匹配, 则将链路-LSA 中的前缀列表复制到正在构建的区域内前缀-LSA 中. 不应 (SHOULD NOT) 复制其选项字段中设置了 NU 位和/或 LA 位的前缀, 也不应复制链路本地地址. 每个前缀由 PrefixLength, PrefixOptions 和 Address Prefix 字段描述. 具有相同 PrefixLength 和 Address Prefix 的多个前缀被视为重复. 在这种情况下, 应对它们的 PrefixOptions 字段进行逻辑或运算, 并且应在区域内前缀-LSA 中包含重复前缀的单个实例. 所有前缀的度量 (Metric) 字段设置为 0.

  • "# prefixes" 字段设置为路由器复制到 LSA 中的前缀数量. 如果需要, 可以将前缀列表分散到多个区域内前缀-LSA 中, 以保持 LSA 大小较小.

路由器为其自身产生的区域内前缀-LSA

路由器构建区域内前缀-LSA 以通告其连接的末梢链路, 回环接口 (Looped-back Interfaces) 和主机的前缀. 路由器 RTX 将按以下方式构建其区域内前缀-LSA:

  • 为了指示前缀将与路由器 RTX 自身关联, RTX 将引用的LS类型设置为 0x2001, 引用的链路状态ID设置为 0, 引用的通告路由器设置为 RTX 自己的路由器ID.

  • 路由器 RTX 检查其到该区域的接口列表. 如果接口处于 Down 状态, 则不包括其前缀. 如果接口在 RTX 的路由器-LSA 中作为类型2链路描述 (到传输网络的链路) 报告, 则跳过将包含在链路的区域内前缀-LSA 中的前缀. 但是, 通常会设置 LA 位的任何前缀应 (SHOULD) 独立于接口是否作为传输链路通告而通告. 如果接口类型是点到多点 (Point-to-multipoint) 或接口处于回环 (Loopback) 状态, 则将与接口关联的全局范围 IPv6 地址 (如果有) 复制到区域内前缀-LSA 中, 并设置 LA 位, PrefixLength 设置为 128, 度量设置为 0. 否则, 将为链路在 RTX 中配置的全局前缀列表通过指定 PrefixLength, PrefixOptions 和 Address Prefix 字段复制到区域内前缀-LSA 中. 每个前缀的度量字段设置为接口的输出成本.

  • RTX 将属于该区域的任何直接连接的主机的 IPv6 前缀添加到区域内前缀-LSA 中.

  • 如果 RTX 通过该区域配置了一个或多个虚拟链路, 则它在 LSA 中包括其全局范围 IPv6 接口地址之一 (如果尚未包括), 在 PrefixOptions 字段中设置 LA 位, PrefixLength 设置为 128, 度量设置为 0. 此信息将在稍后的路由计算中使用, 以便虚拟链路的两端可以发现彼此的 IPv6 地址.

  • "# prefixes" 字段设置为路由器复制到 LSA 中的前缀数量. 如果需要, 可以将前缀列表分散到多个区域内前缀-LSA 中.

示例

例如, RT4 为网络 N3 产生的区域内前缀-LSA (假设 RT4 是 N3 的指定路由器) 和路由器 RT3 为其自己的前缀产生到区域1的区域内前缀-LSA 如下所示:

; RT4为网络链路N3的区域内前缀-LSA

LS age = 0 ; 新产生(重新产生)
LS type = 0x2009 ; 区域内前缀-LSA
Link State ID = 5 ; LSA类型/范围唯一标识符
Advertising Router = 192.0.2.4 ; RT4的路由器ID
# prefixes = 1
Referenced LS Type = 0x2002 ; 网络-LSA引用
Referenced Link State ID = 1
Referenced Advertising Router = 192.0.2.4
PrefixLength = 56 ; N3的前缀
PrefixOptions = 0
Metric = 0
Address Prefix = 2001:0db8:c001:0100 ; 填充

; RT3为其自己的前缀的区域内前缀-LSA

LS age = 0 ; 新产生(重新产生)
LS type = 0x2009 ; 区域内前缀-LSA
Link State ID = 177 ; LSA类型/范围唯一标识符
Advertising Router = 192.0.2.3 ; RT3的路由器ID
# prefixes = 1
Referenced LS Type = 0x2001 ; 路由器-LSA引用
Referenced Link State ID = 0
Referenced Advertising Router = 192.0.2.3
PrefixLength = 56 ; N4的前缀
PrefixOptions = 0
Metric = 2 ; N4接口成本
Address Prefix = 2001:0db8:c001:0400 ; 填充

当网络条件发生变化时, 路由器可能需要将前缀从一个区域内前缀-LSA 移动到另一个. 例如, 如果路由器是链路的指定路由器但链路没有其他连接的路由器, 则链路的前缀在引用指定路由器的路由器-LSA 的区域内前缀-LSA 中通告. 当链路上出现其他路由器时, 为链路产生网络-LSA, 并将链路的前缀移动到引用网络-LSA 的区域内前缀-LSA.

请注意, 在区域内前缀-LSA 中, Referenced Advertising Router 始终等于产生区域内前缀-LSA 的路由器 (即LSA的Advertising Router). Referenced Advertising Router 字段出现的原因是, 尽管它目前是冗余的, 但将来可能不是. 我们可能希望使用相同的 LSA 格式来通告其他协议套件的地址前缀. 在这种情况下, 指定路由器可能不会为这些其他协议套件产生相应的网络-LSA.