在 OSPF 中,很多人只关注 LSA 的 Cost 值,但在 Type-5 (ASE) 和 Type-7 (NSSA) LSA 中,Forwarding Address (FA) 字段才是真正决定数据流向的“幕后黑手”。它是 OSPF 解决共享网段次优路径的关键机制,也是导致路由选路“不符合预期”的高频原因。
- 核心机制深度解析
正常情况下,引入外部路由时,ASBR 会将 FA 字段置为 0.0.0.0。此时,其他路由器计算路径时,目标是 ASBR 的 Router-ID。
但是,如果 FA 字段 不为 0,路由器在计算路径时,目标就不再是 ASBR,而是 FA 地址本身。这会导致计算出的下一跳和 Cost 值完全不同。
- FA 字段不为 0 的触发条件(必须同时满足)
这是 HCIE 面试中的经典“死亡五问”之一。ASBR 在生成 Type-5 LSA 时,若要填充真实的下一跳 IP 到 FA 字段,必须同时满足:
ASBR 连接外部网络的接口已在 OSPF 协议中宣告(Enabled)。
该接口未被配置为静默接口(Not Passive)。
该接口的网络类型是 Broadcast 或 NBMA(非 P2P/P2MP)。
该接口的 IP 地址在转发范围内(下一跳地址可达)。
- 专家级排错场景:NSSA 区域的 FA 陷阱
在 NSSA 区域,Type-7 LSA 转 Type-5 LSA 时,FA 的处理尤为复杂:
Type-7 LSA 的 FA 永远不为 0:为了保证骨干区域能够通过 Type-5 LSA 访问到 NSSA 内部的外部路由,NSSA ASBR 生成 Type-7 时,FA 必须指向 ASBR 自己的 Loopback 接口或连接外部的物理接口 IP。
转换时的转发地址保留:当 NSSA ABR 执行 7-to-5 转换时,它会将 Type-7 中的 FA 直接复制到 Type-5 中。
路由黑洞风险:如果区域 0 的路由器虽然学到了这条 Type-5 路由,但查路由表发现去往该 FA 地址(通常是 NSSA 内部某个 IP)不可达(例如该 FA 地址没有被宣告进 Area 0),那么这条外部路由即使在 LSDB 中存在,也无法进入路由表。
专家视点:在做 MPLS VPN PE-CE 场景(OSPF Sham-link)时,FA 的值至关重要。如果 FA 为 0,Sham-link 才能生效;如果 FA 不为 0,流量可能会绕过 Sham-link 走后门链路。


评论