Ospf Forwarding address路由选路的影响

填充总结

 

 

作用

默认情况

非默认情况填充方式

5类LSA填充

能够更快捷地到达LSA 5所通告路由的下一跳地址

默认填充为0.0.0.0,

满足以下3个条件填充非0
1、OSPF在ASBR的下一跳接口被启动(ASBR引入的这条外部路由,其对应的出接口启用了OSPF)
2、ASBR的下一跳接口没有被设置为被动接口
3、ASBR的下一跳接口MA或NBMA

7类LSA填充

能够更快捷地到达LSA 5所通告路由的下一跳地址

默认填充非0.0.0.0 ,默认优先填充ASBR中启用OSPF的loopback接口

可以在ABR进行7转5时(ABR配置命令 NSSA suppress-forwarding-address)强制填充为0.0.0.0

 

 

 

摘要


本文介绍了OSPF协议中对于 AS-External-LSA 中的Forwarding Address如何处理以及Forwarding Address 如何影响OSPF路由选路包括Forwarding Address 可能导致的次优路径问题。

介绍


Forwarding Address 是OSPF AS-External-LSA(以下简称5类LSA)中携带的标识外部转发地址的信息。通常情况下Forwarding Address 填写为0.0.0.0,通告给其他OSPF 路由器达到这条外部路由需要经过自己,其他路由器通过OSPF路由计算可以得知如何到达该ASBR。在满足一定条件的情况下Forwarding Address 可以填写为非零的IP地址,其他路由器如果存在到达该IP地址的合法路由,则可以通过该地址到达目的地而不一定要经过ASBR,从而达到路径优选目的。

Forwarding Address路由合法性


如果OSPF 路由器通过Forwarding Address(以下简称FA)计算到达外部路由的路径,那么必须确保自身的路由表中存在到达该FA的OSPF AS 内部路由(OSPF intra-area route or OSPF inter-area route),否则该外部路由无效。

Forwarding Address填写原则


在满足如下所有条件的情况下FA设置为非0.0.0.0

OSPF在ASBR的下一跳接口被启动(ASBR引入的这条外部路由,其对应的出接口启用了OSPF)
ASBR的下一跳接口没有被设置为被动接口
ASBR的下一跳接口不是OSPF P2P或P2MP类型的
除此之外,其它情况FA都填为0.0.0.0


通过Forwarding Address 实现路径优选


考虑如下组网:

在这里插入图片描述
Router A同Router B、Router C通过多点访问的网络相连,Router A同Router B之间运行的是非OSPF的路由协议,Router B、Router C、Router D之间运行OSPF路由协议,假设Router B的2.2.2.1接口和Router C的2.2.2.3接口都没有启动OSPF路由协议,Router B 作为ASBR将Route a引入至OSPF域,在发布Route a时FA将填写为0.0.0.0,Router D在访问a时将查找到达ASBR Route B的路由,最终将通过Router C-Router B-Router A访问a。如果在Router B和Router C的2.2.2.1及2.2.2.3接口启动OSPF协议,那么Router B同样作为ASBR发布 a路由的5类LSA,这时Router B在填写FA时已经满足了非零FA的填写条件(见上文),因此FA填写为2.2.2.2,Router D在访问a网段,则会直接计算到达2.2.2.2的路由,最终通过Router C直接到达Router A,实现了路径优选的目的。那么如果 Router C的2.2.2.3网段并没有启动OSPF,Router D如何访问 a网段呢?这时Router B发布a时依然将FA填写为2.2.2.2,Router D依然会计算到达 2.2.2.2 的OSPF AS 内部路由,计算结果表明可以通过Router B到达2.2.2.2,因此最终的转发路径依然是Router C-Router B-Router A。

理解Forwading Address 路由合法性


如果OSPF路由器在计算到达 FA地址的路径时无法找到OSPF区域内或区域间的路由,那么相应的外部路由将不能被加入到路由表中,导致路由黑洞。
考虑如下组网:

在这里插入图片描述
Router A 同Router B、Router C运行非OSPF路由协议,Router B 作为 area N和area 0的ABR出于特殊原因不能向area 0发布2.2.2.0网段的路由信息,因此做了汇聚且不发布。Router C通过Router A学习到2.2.2.0的外部路由,并且发布到OSPF中。Router B 通过 Router A学习到外部路由Route a并且注入OSPF的时候将FA填写为2.2.2.2。位于area 0中的Router D能否到达Route a呢?Router D收到Route a的5类LSA,发现FA地址是2.2.2.2因此查找路由表中是否存在到达2.2.2.2的AS内部路由,因为Route C发布了2.2.2.2的外部路由,因此这时Router D是知道如何到达2.2.2.2的,但是由于这是一条外部路由,而不是AS 内部路由,与FA路由合法性相背,因此Router D最终还是不能将Route a加入到自己的路由表中,导致了路由黑洞。

Forwarding Address 导致次优路径


Forwarding Address 的设置本意是希望路由器能够选择一条最快捷的路径到达目的地,但是有时设置不当也可能导致次优路径的发生。
考虑如下组网:

在这里插入图片描述
Router B、Router C、Router D、Router E运行OSPF协议,并且Router B在2.2.2.1接口上没有启用OSPF,Router C在2.2.2.3接口上开启OSPF。Router A和Router B、Router C通过以太网相连,Router B和Router C通过外部路由学习到路由Route a,并且都作为ASBR将这条路由注入到OSPF域中。对于Router E,他将学习到两条关于Route a的5类LSA,所不同的是Router B发布的LSA中FA地址为全零,而Router C发布的LSA中FA地址为2.2.2.2 Router E 查找路由表后发现自己有到达2.2.2.2的AS 内部路由,也有到达ASBR Router B的路由,因此两条路由都是有效路由,通过比较路径cost,Router E发现到达2.2.2.2的cost为30而到达Router B的cost为25,因此Router E选择了到达Router B的路径。但是从网络实际拓扑来看,Router E选择了一条次优路径。

NSSA中Forwarding Address的处理


对于NSSA区域中ASBR产生的7类LSA,如果需要转换为5类LSA发布到其他OSPF区域,那么FA必须要填写非零的IP地址, RFC3101对此进行了明确要求:
NSSA AS boundary routers may only originate Type-7 LSAs into NSSAs.。An NSSA internal AS boundary router must set the P-bit in the LSA。header’s option field of any Type-7 LSA whose network it wants advertised into the OSPF domain’s full transit topology. The LSAs of these networks must have a valid non-zero forwarding address.
对于7类LSA中FA的填写分为两种情况:

如果发布该7类LSA的ASBR满足上文提到的非零FA填写规则,那么就按照该规则填写。
如果发布该7类LSA的ASBR不满足上述条件,那么需要从该路由器上启用OSPF协议的接口中选择一个进行填写。
对于情况2虽然RFC3101对FA的填写进行了要求,但是并未明确如何填写该FA。在某些组网环境中由于该FA地址的填写不当,有可能会产生次优路由。
考虑如下组网:

在这里插入图片描述

Router A、Router B、Router C形成NSSA区域,Router A引入外部路由Route a,通过7类LSA通告给Router B和Router C,因为RFC并未明确要求这种情况下该7类LSA中的FA如何填写,Router A可能会选择Int 1的IP地址填写FA,那么对于Router C来讲,到达Int 1有两条路径,一条是通过RouterA到达路径 Cost为100,令一条是通过Router B到达路径Cost为80,因此Router C将选择通过Router B的路径,很明显它实际上选择了一条次优路径。
如果在填写FA时,使用Loopback接口地址进行填写,可以解决上述问题。

参考资料:
RFC 2328 (OSPF)
RFC 3101 (NSSA)

ENSP实验

在这里插入图片描述
配置信息:
OSPF邻居信息:dis ospf pe br

 dis ospf pe br
 Area Id          Interface                        Neighbor id      State    
 0.0.0.1          GigabitEthernet0/0/0             1.1.1.1          Full        
 0.0.0.1          GigabitEthernet0/0/1             2.2.2.2          Full        


** OSPF接口信息 dis ospf int g0/0/1 **

Interface: 10.11.1.5 (GigabitEthernet0/0/1)
 Cost: 1       State: BDR       Type: Broadcast    MTU: 1500  
 Priority: 1
 Designated Router: 10.11.1.6
 Backup Designated Router: 10.11.1.5
 Timers: Hello 10 , Dead 40 , Poll  120 , Retransmit 5 , Transmit Delay 1 


静态路由配置:

[Area1R1-GigabitEthernet0/0/1]dis ip rou p 
Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

      222.2.2.2/32  Static  60   0          RD   10.11.1.6       GigabitEthernet0/0/1


OSPF进程引入静态路由配置

dis cu conf ospf
[V200R003C00]
#
ospf 1 
 import-route direct type 1
 import-route static type 1
 area 0.0.0.0 
 area 0.0.0.1 
#
return


查看通告的这条静态路由引入OSPF的5类LSA信息,有Forwarding Address : 10.11.1.6

<AR2>dis ospf lsdb ase 222.2.2.2

	 OSPF Process 1 with Router ID 1.1.1.2
		 Link State Database
  Type      : External
  Ls id     : 222.2.2.2
  Adv rtr   : 2.2.2.1  
  Ls age    : 67 
  Len       : 36 
  Options   :  E  
  seq#      : 80000002 
  chksum    : 0x444
  Net mask  : 255.255.255.255 
  TOS 0  Metric: 1 
  E type    : 1
  Forwarding Address : 10.11.1.6 
  Tag       : 1 
  Priority  : Medium


结论:
router 2.2.2.1 已成功生成5类LSA (222.2.2.2)中携带了Forwarding Address : 10.11.1.6 参数。

如果router 2.2.2.1 的GigabitEthernet0/0/1不启用OSPF,我们在看生成的5 LSA还有Forwarding Address没有?

<AR2>dis ospf lsdb ase 222.2.2.2

	 OSPF Process 1 with Router ID 1.1.1.2
		 Link State Database


  Type      : External
  Ls id     : 222.2.2.2
  Adv rtr   : 2.2.2.1  
  Ls age    : 11 
  Len       : 36 
  Options   :  E  
  seq#      : 80000003 
  chksum    : 0xadb5
  Net mask  : 255.255.255.255 
  TOS 0  Metric: 1 
  E type    : 1
  Forwarding Address : 0.0.0.0 
  Tag       : 1 
  Priority  : Medium

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值