OSPF的type 5的外部路由中的Forwarding Address有什么用?是如何填写的?
和RIPv2,EIGRP,BGPv4等其它比较"聪明"的路由协议一样,OSPF type 5 LSA中的Forwarding Addres的作用是通告本路由域内部路由器如何能到达Type5 LSA描述的引入的AS外部网络的更快捷的下一跳,以免内部路由器在广播网络上以自己为下一跳路由到自己,自己再转发到同一广播网络上的外部路由域的路由器上,而产生"额外"的一跳.
ASBR引入外部路由产生的Type 5 LSA中,FA可能是0,也可能是非0的.
规则如下:
如果ASBR引入路由,但OSPF没有在这些路由的下一跳接口上启动(Enable),FA设置为0.0.0.0.
而在满足如下所有条件的情况下FA设置为非0.0.0.0:
1.OSPF在ASBR的下一跳接口被启动;(ASBR外部接口up)
2.ASBR的下一跳接口没有被设置为被动接口
3.ASBR的下一跳接口不是OSPF P2P或P2MP类型的;
4.ASBR的下一跳接口地址落在OSPF协议配置的network命令范围内,除此之外,其它情况FA都填为0.0.0.0
OSPF的FA地址的metric在0.0.0.0的情况下计算:
1.和ASBR在同一区域,forward metric通过一类,二类LSA计算得出。 1(广域网)/1 2(MA)
2.和ASBR不在同一区域的时候,forward metric通过一类,二类LSA计算到ABR的metric,加上本区域ABR通告的去往ASBR的四类LSA的metric。(1 4(ABR到ASBR)/(1 2) 4(ABR到ASBR))
OSPF的FA地址metric在非0.0.0.0的情况下计算:
1.和ASBR在同一区域,forward metric通过一类,二类LSA计算得出。 1(广域网)/1 2(MA)
2.和ASBR不在同一区域,forward metric通过一类,二类LSA,加上本区域的ABR通告的去往FA所在的网段的三类LSA的metric计算出。(因为FA地址非0.0.0.0的第四条,ASBR的外部接口必须被宣告进OSPF,这样就形成了一条三类LSA进入OSPF区域。非0.0.0.0的第四条是影响forward metric计算的比较关键的点。OSPF的FA地址如果非0的话,forward metric是到达FA的metric因为FA的一个必要的条件就是你连接外部路由的接口也要宣告进OSPF,OSPF会入方向累加这个接口的cost值。才会造成forward metric的这种现象。)
注:FA地址的路由必须是OSPF的路由才能影响FA的metric,才能影响FA是否非0.0.0.0(O或O IA。或者直连但是直连必须要宣告进OSPF进程。)
在RFC中规定,当收到5类LSA并做路由计算时,要求首先看引入该5类LSA的ASBR是否路由可达,否则就不对该LSA做处理.当FA非0时,存在类似的问题,需要查找覆盖FA的区域内或者区域间路由,如果存在才进行处理.
有一个专门的ABR&ASBR路由表.show ip ospf border-routers
相信对于ASBR可达性的查询是以这个表为依据的.
7类LSA在产生的时候会强制把FA地址设置为非0,7-5的时候,NSSA区域的ABR也会将FA地址带入到5类LSA中转换。FA地址的选举规则(7类):
15.0以上的IOS是:在NSSA区域的ASBR中,后network进OSPF进程的物理接口地址。
15.0以下的IOS是:在NSSA区域的ASBR中,先network进OSPF进程的物理接口地址。
如果ASBR有环回口宣告进OSPF进程,则FA地址是第一个宣告进OSPF进程的环回口的IP地址。
7类FA特例:
按协议规定,对于NSSA的ABR,在将type 7的LSA转换成Type 5的LSA时要填写一个非0的Forwarding address,(哪怕ASBR重分布的时候FA为0.0.0.0 ABR做7-5转换的时候也会填写非0的FA)本特性可以强制使得转换的LSA中Forwarding address填为0.0.0.0.
特性优点:
本特性使得NSSA ABR向OSPF骨干区发出的Type 5 LSA配置强制产生0.0.0.0的Forwarding address,以便使流量直接流到ABR.
router ospf 1
router-id 1.1.1.1
log-adjacency-changes
area 10 nssa translate type7 suppress-fa
迭代FA路由的问题
当ASBR可达性查找完成了后,就会看5类LSA的FA是否为0,当非0时,要在routing table中查找是否有合法的表项来迭代FA(合法的intra&inter).这里的routing table很显然也并非全局路由表.细心的人可能已经注意到这问题,在1.2小节中的例子里,路由器RouterB使用了FA项作为转发ASE(属于引入的外部路由协议的路由信息)的下一跳.但是在RouterB的路由表中覆盖FA的只有一条直连路由而已!
R4重分布直连接口进NSSA区域,7-5是RID大的设备去做。。。怎么去走,还是去比较FA地址的距离,forward metric是关键,12.4的IOS中,在R4上后宣告的接口,会成为FA,更高的IOS中,新宣告的会成为FA。这样去看forward metric。 当forward metric一样,seed metric也一样的时候。会负载均衡。。在R4上起一个环回口宣告进OSPF进程,环回口会成为FA地址,这样Forward metric和 seed metric都一样,才会负载均衡。
R4中,后宣告的是24.0.0.0。这样FA地址就是24.0.0.4,虽然5类LSA是R3发出的,但是seed metric一样的情况下,R2的forward metric是128,R3的forward metric是192。所以路由表中,R4宣告进的外部路由的下一跳在R1上,是R2的下一跳。这是根据Forward metric来看的,如果R4上起一个环回口,宣告进OSPF。这时候R1上的FA地址会优选为环回口的IP地址。
负载均衡。
LSA是最原始的数据。每台路由器收到以后放入自己的LSDB中,然后根据自己的实际情况去进行计算。
OSPF7-5有多个ABR的时候,需要注意实际上是多个ABR都会产生5类LSA。最后根据收到的及自己的RID来比对,ADV最大的留存在LSDB中,如果执行7-5的设备出现故障,R1通过收敛向R2发送一类LSA,让R2知晓变动,R2进行7-5的工作。
PS:视频仅供内部学员开放。不外传,定期会有文档分享,谢谢了。。