FA(Forwarding Address)转发地址为非0的情况:
同时满足如下条件时,ASBR会在ASE的FA域内填写转发地址。
OSPF在ASBR与外部网络连接的下一跳接口启动;
ASBR与外部网络连接的下一跳接口没有被设置为被动接口;
ASBR与外部网络连接的下一跳接口不是OSPF P2P或P2MP类型的;
ASBR与外部网络连接的下一跳接口地址是落在OSPF协议中发布的网络范围之内;
当一个ASE中的FA为非0时,就不考虑Adv Rtr了,而是用FA来计算该ASE的下一跳。
FA的重点有两个部分,一个是ASBR与外部路由器的连接必定是通过一个多点可达的网络(NBMA或者以太网);另一个重点是,FA非0时,SPF计算会根据FA来计算目标网络的下一跳,因此需要对覆盖FA的路由信息做检查。从下面这个例子中可以看到FA的作用。
见下图。RouterC为OSPF区域外部的路由器,它通过一个多点可达的网络与ASBR-1和RouterB连接。ASBR-1将RouterC的网络引入OSPF。当OSPF区域内部的路由器RouterA访问外部网络时,流量会达到RouterB并转发给ASBR-1,然后到达RouterC,也就是图中红线路径。很显然,这样的转发路径在RouterB这里走了一个弯路,因为RouterB完全可以将数据直接通过多点可达网络转发给RouterC,也就是蓝色的路径。当出现这样的情况时,ASBR-1在引入RouterC的外部网络时,将FA项填写为RouterC的接口地址2.2.2.2,这样RouterB会通过SPF计算,将2.2.2.2作为这些外部网络的下一跳,就避免了数据多传一跳情况的发生。当然在实际情况中可能ASBR-1和RouterB之间有多台设备,虽然只有一个ASBR,但是FA使OSPF区域中不同设备访问外部网络时,可以根据FA计算出更合理的下一跳。