1. FA 地址的核心作用

FA 地址存在的本质是为了 解耦“路由通告者”与“报文转发者”

  • 优化次优路径: 当 ASBR 发现去往外部路由的下一跳在同一个多路访问网络(Broadcast/NBMA)中,且该下一跳也在运行 OSPF 时,ASBR 会通过 FA 告诉其他路由器“直接把包发给那个下一跳”,而不要先发给我再中转。
  • NSSA 环路预防与选路: 在 NSSA 区域,Type-7 转换为 Type-5 时,FA 地址用于在多个 ABR 之间进行选路决策(如 P-bit 置位后的转换逻辑)。

2. Type-5 LSA 的 FA 选举规则

在传统的 Type-5 LSA 中,FA 默认通常为 0.0.0.0。只有当满足以下所有条件时,FA 才会填充为非零(即外部路由的下一跳地址):

  1. 接口激活 OSPF: ASBR 上连接外部网络的接口必须已经通过 networkospf enable 宣告进 OSPF 进程。
  2. 非静默接口: 该接口不能被配置为 silent-interface(Passive)。
  3. 网络类型限制: 该接口的网络类型必须是 BroadcastNBMA (P2P 和 P2MP 不会产生非零 FA)。
  4. 下一跳可达: 该接口的下一跳地址必须在 OSPF 宣告的网段范围内。

逻辑推演: 如果满足上述条件,说明该网段是一个共享介质。其他 OSPF 路由器理论上可以像 ASBR 一样直接访问该下一跳。此时填充 FA,可以将流量引导至真正的出口。


3. Type-7 LSA 的 FA 选举规则

不同于 Type-5, Type-7 LSA 的 FA 通常不能为空(非 0.0.0.0) ,这是 RFC 3101 的强制性要求,以便 ABR 能够正确执行 7 转 5。其选举顺序如下:

  1. 条件触发: 如果满足上述 Type-5 的四个条件,FA 填充为外部路由的 下一跳地址
  2. 默认选举(重点): 如果不满足上述条件(例如外部路由是直连或静态且下一跳不在 OSPF 范围内),ASBR 会按以下顺序在属于该 NSSA 区域的接口中挑选一个:
    • Loopback 接口: 优先选择该区域内 Loopback 接口的 IP 地址(多个则选最后配置的或 IP 最大的,取决于厂商实现)。
    • 物理接口: 如果没有 Loopback,则选择该区域内第一个激活 OSPF 的物理接口 IP。

4. 关键差异点对比

特性Type-5 LSAType-7 LSA
默认值通常为 0.0.0.0几乎总是非零(Non-zero)
0.0.0.0 的含义流量必须发往通告该 LSA 的 ASBR不允许出现在 7 转 5 的过程中 (否则转换失败)
选举偏好下一跳地址 (需满足强条件)下一跳地址 > Loopback > 物理接口
计算逻辑路由计算指向 ASBR路由计算指向 FA 地址 (递归查询)

5. HCIE 级别的注意事项 (Troubleshooting Tips)

  • FA 地址的递归可达性: 如果 Type-7 的 FA 被填成了一个 Loopback 地址,但该 Loopback 在骨干网或其他区域不可达,那么整个外部路由在路由表中将 无法激活 。这是 NSSA 组网中常见的“有 LSA 但无路由”的原因。
  • 7 转 5 的抑制: 在华为设备上,可以使用 nssa suppress-flushed-exp7 或在 ABR 上使用 nssa suppress-fa 强制将 FA 置零,这通常用于特定的流量吸引策略,但需谨慎防止次优路径。
  • P-bit (Propagate): 只有 P-bit 置位的 Type-7 LSA 才会由 ABR 转换成 Type-5。如果 FA 为 0,ABR 不会进行转换(除非是 ABR 自身产生的缺省路由)。