在 OSPF 协议中,5 类 LSA(AS-External-LSA)与 7 类 LSA(NSSA LSA)的处理是理解 OSPF 区域类型和协议操作的核心。根据 RFC 3101(OSPF NSSA Option),这种转换机制旨在平衡“自治系统外部路由引入”与“区域拓扑保护”之间的矛盾。

以下是关于 5 类与 7 类 LSA 在 NSSA 区域转换的底层细节:


1. 7 类 LSA 的产生与传播限制

在 NSSA(Not-So-Stubby Area)区域中,为了允许存在 ASBR,OSPF 定义了 7 类 LSA。

  • 产生背景 :NSSA 区域不允许 5 类 LSA 进入。因此,当 NSSA 区域内的 ASBR 引入外部路由时,它会生成 7 类 LSA。
  • 泛洪范围 :7 类 LSA 的泛洪范围严格限制在 产生它的 NSSA 区域内部
  • 关键字段 - P-bit (Propagate bit)
  • 这是 7 类 LSA 头部 Options 字段中的关键位。
  • 只有 P-bit 置位为 1 的 7 类 LSA 才有资格在 ABR 处被转换成 5 类 LSA。
  • 如果 ABR 兼任 ASBR 并在 NSSA 内部引入路由,其生成的 7 类 LSA 的 P-bit 通常置为 0,防止环路。

2. 7 转 5 (Translator) 的转换细节

当 7 类 LSA 到达 NSSA 区域的 ABR 时,由 ABR 执行 7-to-5 Translator 动作,将其转换为 5 类 LSA 并向 Area 0 及其他普通区域泛洪。

谁负责转换?

  • 如果 NSSA 区域有多个 ABR,为了避免重复生成 5 类 LSA,系统会选举 Router ID 最大的 ABR 作为 Translator。
  • 通过 display ospf nssa 可以观察到当前的 Translator 状态。

转换过程中的字段变化

在转换过程中,报文内容会发生以下精确映射:

字段名称7 类 LSA (NSSA)转换后的 5 类 LSA (AS-External)
Link State ID外部网络的 IP 地址保持不变
Advertising RouterASBR的 Router ID**ABR(Translator)**的 Router ID
Network Mask外部网络的掩码保持不变
Forwarding Address (FA)必须是非 0 地址 (通常是 ASBR 的接口地址)继承 7 类的 FA 地址
External Route Tag路由标记保持不变

3. Forwarding Address (FA) 的核心作用

在 7 转 5 的过程中,FA 地址的处理是防止次优路径的关键:

  • 7 类 LSA 的 FA 原则 :7 类 LSA 的 FA 字段通常不为 0。如果 ASBR 满足特定条件(如接口开启 OSPF 且非 P2P 链路),FA 会指向 ASBR 的具体接口地址。
  • 5 类 LSA 的计算依赖 :当 5 类 LSA 进入骨干区域后,其他路由器在计算路径时,会优先查找如何到达该 FA 地址 ,而不是查找如何到达 Advertising Router(ABR)。
  • 注意 :如果 7 类 LSA 的 FA 为 0.0.0.0,ABR 将不会对其进行 7 转 5 操作。

4. 为什么没有 5 转 7?

这是一个常见的概念误区。

  • 5 类 LSA 无法进入 NSSA 区域 :这是 NSSA 的定义决定的。
  • 替代方案 :ABR 会通过 3 类 LSA(由 nssa default-information-originate 触发)或特殊的 7 类 LSA 向 NSSA 区域下发一条 缺省路由 (0.0.0.0/0) ,以允许 NSSA 内部节点访问外部网络,而不是将成千上万条 5 类 LSA 转换回 7 类。

总结

7 类转 5 类的过程本质上是 ABR 代理了 ASBR 的通告职责。在 HCIE 故障排查中,如果发现外部路由无法进入骨干区域,应重点检查:

  1. ABR 是否成功选举为 Translator
  2. 7 类 LSA 的 P-bit 是否为 1。
  3. FA 地址是否在 OSPF 路由表中可达(如果 FA 不可达,路由将不会加入本地 IP 路由表)。