利剑在手 上阵无忧   ——浅谈OSPF之路由过滤

  前段时间遇到一个OSPF区域间路由过滤问题:同一个进程下,区域0学到了区域1的网段A,同时区域0也向区域2发布了这个网段,现需要在区域0与区域2之间的ABR做配置,把网段A给过滤掉,让区域2学不到网段A,我采用的方法是在ABR上的区域0视图下做聚合网段A,并在聚合命令后加上字段not-advertise,配置完成后发现区域2仍然能学习到网段A的路由,查看相关资料后得到了想要的答案:聚合命令只对本区域的路由做聚合而不能对区域间路由做聚合,所以abr-summary not-advertise这条命令实际只是对本区域的区域内路由起过滤作用。

  进一步查找资料发现OSPF过滤根本上分二种,一种是对路由表的过滤,这种方式只对配置过滤的路由器起作用,不能阻止LSA的泛洪,因此也不能影响其他路由器生成路由,使用命令filter-policy import;另一种是对LSA的过滤,这种方式其实并不是对LSA过滤,只是阻止LSA的生成,没有了LSA,相应也会影响其它同区域或同自治域的路由器路由表的生成。

  OSPF过滤可以借用filter-policy、route-policy等工具实现,可以和ACL、Ip-prefix等一起使用,并在入方向或者出方向来控制路由,并且可以对五类或者七类LSA做过滤,因命令多,容易混淆,遂做此文,与大家分享。

  1 过滤工具汇总如下表所示


Acl

IP-Prefix

gateway

route-policy

过滤方式

备注

filter-policy import


路由表过滤

只能用来过滤OSPF有效路由表里的路由

filter-policy export



五、七类LSA过滤

用来在ASBR上对ASE/NSSA过滤

filter import/export



三类LSA过滤

用来在ABR上作summary lsa过滤

Import-route




五、七类LSA过滤

用来在ASBR上对ASE/NSSA过滤

Abr summary not-advertise





一、二、三类LSA过滤

只对本区域的路由做聚合而不对区域间路由做聚合

Asbr summary not-advertise





五、七类LSA过滤

用来在ASBR 上可以对自身产生的ASE/NSSA做过滤,在NSSA区域的ABR上可以对75LSA做过滤

  2 详解每条命令

  1、filter-policy import[acl/ip-prefix/gateway](OSPF)

  这条命令只能用来过滤OSPF有效路由表里的路由,并不能阻止LSA的泛洪,即路由表中没有目标网段的路由,但是用命令display ospf lsdb可以查看到目标网段对应的LSA(除此之外,以下的过滤方式均是对LSA的过滤),被过滤的路由在路由表中为inactive状态。

  2、filter-policy export/import-route

  以上两条命令用来在ASBR上对ASE/NSSA过滤,可以对本台路由器引入而产生的ASE/NSSA LSA做过滤,过滤彻底,所有OSPF域的路由器将不会收到被过滤的ASE/NSSA LSA。

  3、filter import/export[acl/ip-prefix](area)

  该命令用来在ABR上做summary lsa过滤, 如果是import,就防止从其他非骨干区域(骨干区域)转换到该区域符合特定条件的summary lsa生成,过滤彻底。如果是export,就阻止从该区域转换到其他非骨干区域(骨干区域)符合特定条件的summary lsa生成,过滤彻底。

  4、abr-summary not-advertise(area)

  此命令用来在ABR上对summary lsa做过滤,如果是骨干区域(非骨干区域),就防止从该区域转换到其它非骨干区域(骨干区域)符合特定条件的summary lsa生成,类似filter-policy export(area)命令的作用,但又有点区别,该命令只对本区域的区域内路由做过滤不对区域间路由做过滤。(原因是:这条命令是聚合命令,目前聚合命令的实现是只对本区域的路由做聚合而不对区域间路由做聚合,所以说abr-summary not-advertise这条命令实际只是对本区域的区域内路由起过滤作用。)

  5、asbr-summary not-advertise(OSPF)

  该命令用来在ASBR 上对自身产生的ASE/NSSA做过滤,阻止本路由器产生符合特定条件的ASE/NSSA,以及在NSSA区域的ABR上可以对7转5的LSA做过滤,阻止本路由器根据OSPF 路由及NSSA产生符合特定条件的ASE。



2016年01月