OSPF FA地址

0 阅读4分钟

理论知识

FA地址 只在外部路由存在 5/7LSA 查询外部路由FA地址 其主要作用就是通告外部路由最快捷的下一跳地址

Pasted image 20260418230716.png

按照常规处理,RTA 会通过 RTB 生成的 OSPF LSA 学习到该路由,其下一跳指向 RTB。此时,RTA 访问 192.168.3.0/24 的流量必须经过 RTB 中转,导致次优路径——因为 RTA 与 RTC 处于同一 MA 网络,本可直接通信。

在重发布时,RTB 将 RTC 的接口地址设置为转发地址(Forwarding Address,FA)。RTA 收到该 LSA 后,发现 FA 地址非零,便会直接将该地址作为下一跳,将数据报文直接发送给 RTC,从而避免了经过 RTB 的绕行,实现最优路径转发。

FA = 0.0.0.0 下一跳为ASBR地址
FA ≠ 0.0.0.0 下一跳为外部路由的下一跳地址

image.png

  • PS:FA地址 必须有OSPF路由(域内或域间) 例如 RTA 或 RTB 都将 10.1.123.0/24 宣告路由(域内)
  • ≠0 条件 : 外部路由的出接口激活了OSPF(被宣告了)、非OSPF边缘端口、网络类型为MA 三个条件必须同时满足

7类LSA的 FA规则
FA = 0.0.0.0 条件 ABR手动引入外部路由 P不置位
FA ≠ 0.0.0.0 条件 ASBR引入外部路由 P置位

P(Propagate bit)置位 用于告知转化路由器该条Type 7 LSA是否需要转化

注意

  • 默认情况下,转换路由器的是NSSA区域中Router ID最大的ABR
  • NSSA区域引入外部路由的时候,优先选择环回口作为FA,不然可能会存在次优问题。

相关命令:nssa zero-address-forwarding 此命令含义是 必须填充FA地址

  • 满足 “非0条件(ASBR引入外部路由)”,FA地址=外部路由的下一跳地址 ASBR引入外部路由,FA地址为外部路由下一跳
  • 不满足 “非0条件(ASBR引入外部路由)”,FA地址=回环口地址 > 物理口地址 ABR引入外部路由,且必须填充FA地址 那么填充为回环口或者物理口地址

默认选择的Router-ID大的ABR路由器一侧链路不一定为最优:
image.png

解决方案: R2、R3 同时转换 则在R2 OSPF 区域视图下 nssa translate-always

NSSA 7类LSA FA地址 实验

网络拓扑

image.png

设备配置

R1

#
ospf 1 router-id 1.1.1.1
 area 0.0.0.0
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
#
interface GigabitEthernet0/0
 ip address 12.1.1.1 255.255.255.0
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet0/1
 ip address 14.1.1.1 255.255.255.0
 ospf 1 area 0.0.0.0

R2

#
ospf 1 router-id 2.2.2.2
 area 0.0.0.0
 area 0.0.0.1
  nssa
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
interface GigabitEthernet0/0
 ip address 12.1.1.2 255.255.255.0
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet0/1
 ip address 23.1.1.2 255.255.255.0
 ospf 1 area 0.0.0.1
#
interface GigabitEthernet0/2
 ip address 24.1.1.2 255.255.255.0
 ospf 1 area 0.0.0.1

R3

#
ospf 1 router-id 3.3.3.3
 import-route static type 1
 area 0.0.0.1
  nssa
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet0/1
 ip address 23.1.1.3 255.255.255.0
 ospf 1 area 0.0.0.1
#
ip route-static 8.8.8.8 32 NULL0

R4

#
ospf 1 router-id 4.4.4.4
 area 0.0.0.0
 area 0.0.0.1
  nssa
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255
#
interface GigabitEthernet0/1
 ip address 14.1.1.4 255.255.255.0
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet0/2
 ip address 24.1.1.4 255.255.255.0
 ospf 1 area 0.0.0.1

FA正常产生

  1. NSSA区域 Route-ID 大的 R4 将 8.8.8.8 七类外部路由 转为五类LSA 到 R1。
  2. R4 LSA报文含有 FA地址 23.1.1.3
  3. 故R1 去往 8.8.8.8 的下一跳 为 23.1.1.3
[R1]dis ospf lsdb ase

         OSPF Process 1 with Router ID 1.1.1.1
                 Link State Database


    Type      : External
    LS ID     : 8.8.8.8
    Adv Rtr   : 2.2.2.2
    LS age    : 127
    Len       : 36
    Options   : O E 
    Seq#      : 80000001
    Checksum  : 0x4b81
    Net Mask  : 255.255.255.255
    TOS 0  Metric: 1
    E Type    : 1
    Forwarding Address : 23.1.1.3
    Tag       : 1
[R1]dis ospf routing

         OSPF Process 1 with Router ID 1.1.1.1
                  Routing Table

 Routing for network
 Destination        Cost     Type    NextHop         AdvRouter       Area
 24.1.1.0/24        2        Inter   12.1.1.2        2.2.2.2         0.0.0.0
 24.1.1.0/24        2        Inter   14.1.1.4        4.4.4.4         0.0.0.0
 12.1.1.0/24        1        Transit 0.0.0.0         2.2.2.2         0.0.0.0
 14.1.1.0/24        1        Transit 0.0.0.0         1.1.1.1         0.0.0.0
 23.1.1.0/24        2        Inter   12.1.1.2        2.2.2.2         0.0.0.0

 Routing for ASEs
 Destination        Cost     Type    Tag         NextHop         AdvRouter
 8.8.8.8/32         3        Type1   1           12.1.1.2        2.2.2.2

 Total nets: 6  
 Intra area: 2  Inter area: 3  ASE: 1  NSSA: 0 
[R1]

次优路径

Router-ID大的ABR路由器 执行nssa suppress-forwarding-address 其核心作用是强制将NSSA区域的ABR在转换7类LSA为5类LSA时,将转发地址(Forwarding Address, FA)设置为0.0.0.0
本次实验现象 就是将R4 执行此命令,导致R1去往3.3.3.3的流量必须经过R4,产生次优路径。

[R4]
[R4]ospf 1
[R4-ospf-1] area 0.0.0.1
[R4-ospf-1-area-0.0.0.1]  nssa suppress-fa
[R4-ospf-1-area-0.0.0.1]dis this
#
 area 0.0.0.1
  nssa suppress-fa
#
return

此时R1再看现象

[R1]dis ospf lsdb ase

         OSPF Process 1 with Router ID 1.1.1.1
                 Link State Database


    Type      : External
    LS ID     : 8.8.8.8
    Adv Rtr   : 4.4.4.4
    LS age    : 3
    Len       : 36
    Options   : O E 
    Seq#      : 80000001
    Checksum  : 0xcd13
    Net Mask  : 255.255.255.255
    TOS 0  Metric: 1
    E Type    : 1
    Forwarding Address : 0.0.0.0
    Tag       : 1
[R1]
[R1]dis ospf routing

         OSPF Process 1 with Router ID 1.1.1.1
                  Routing Table

 Routing for network
 Destination        Cost     Type    NextHop         AdvRouter       Area
 24.1.1.0/24        2        Inter   12.1.1.2        2.2.2.2         0.0.0.0
 24.1.1.0/24        2        Inter   14.1.1.4        4.4.4.4         0.0.0.0
 12.1.1.0/24        1        Transit 0.0.0.0         2.2.2.2         0.0.0.0
 14.1.1.0/24        1        Transit 0.0.0.0         1.1.1.1         0.0.0.0
 23.1.1.0/24        2        Inter   12.1.1.2        2.2.2.2         0.0.0.0

 Routing for ASEs
 Destination        Cost     Type    Tag         NextHop         AdvRouter
 8.8.8.8/32         2        Type1   1           14.1.1.4        4.4.4.4

 Total nets: 6  
 Intra area: 2  Inter area: 3  ASE: 1  NSSA: 0 
[R1]