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 才会填充为非零(即外部路由的下一跳地址):
- 接口激活 OSPF: ASBR 上连接外部网络的接口必须已经通过
network或ospf enable宣告进 OSPF 进程。 - 非静默接口: 该接口不能被配置为
silent-interface(Passive)。 - 网络类型限制: 该接口的网络类型必须是 Broadcast 或 NBMA (P2P 和 P2MP 不会产生非零 FA)。
- 下一跳可达: 该接口的下一跳地址必须在 OSPF 宣告的网段范围内。
逻辑推演: 如果满足上述条件,说明该网段是一个共享介质。其他 OSPF 路由器理论上可以像 ASBR 一样直接访问该下一跳。此时填充 FA,可以将流量引导至真正的出口。
3. Type-7 LSA 的 FA 选举规则
不同于 Type-5, Type-7 LSA 的 FA 通常不能为空(非 0.0.0.0) ,这是 RFC 3101 的强制性要求,以便 ABR 能够正确执行 7 转 5。其选举顺序如下:
- 条件触发: 如果满足上述 Type-5 的四个条件,FA 填充为外部路由的 下一跳地址 。
- 默认选举(重点): 如果不满足上述条件(例如外部路由是直连或静态且下一跳不在 OSPF 范围内),ASBR 会按以下顺序在属于该 NSSA 区域的接口中挑选一个:
- Loopback 接口: 优先选择该区域内 Loopback 接口的 IP 地址(多个则选最后配置的或 IP 最大的,取决于厂商实现)。
- 物理接口: 如果没有 Loopback,则选择该区域内第一个激活 OSPF 的物理接口 IP。
4. 关键差异点对比
| 特性 | Type-5 LSA | Type-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 自身产生的缺省路由)。