路由过滤是在大家上SE课程需要重点掌握的实验,而所有的动态路由协议过滤中,针对OSPF的路由过滤是其中相对复杂的路由过滤之一。SE课程中我们介绍过ABR在区域视图上配置filiter,在 import(export)方向阻止3类LSA的生成以达到过滤3类LSA的目的;另外一种是在OSPF进程视图使用filiter-policy import用来过滤本路由器路由表里的路由,这种过滤不阻止LSA的泛洪,不影响其他路由器的LSDB和路由表。
但是SE书上没有对OSPF进程视图使用filiter-policy export这条命令进行介绍。其实这条可以用来在ASBR上阻止5类LSA的生成,效果等同于聚合后不发布,达到过滤5类LSA的目的,这样所有OSPF域的路由器(包括ASBR)均不会存在这条被过滤的5类LSA,所以它使用的方向是出方向。下面就通过一个实验给大家介绍一下这条命令的作用。
如下图所示:三台路由器RT1、RT2和RT3互连,其中RT1和RT2左侧配置RIP协议,RT2的右侧和RT3配置OSPF协议,RT1上有两个loopback接口,两个loopback接口在RT1上通过rip进行宣告,此时在RT2上配置把RIP引入OSPF,这样RT3上就学习的两条5类外部路由的LSA,分别是192.168.0.1/32和192.168.1.1/32。
![]()
此时在RT2的OSPF进程视图配置filiter-policy export,让RT3的路由表中学习不到192.168.1.1/32的路由,其他的网段都正常学习到。
请输入标此时可以在配置路由过滤之前观察RT2的LSDB中的表项,如下图所示:
![]()
此时观察发现RT2产生了两条5类LSA。同样RT3上也会从RT2学习到两条5类LSA。这时可以在RT2上配置路由过滤,阻止5类LSA生成,配置命令如下:
[RT2]ip ip-prefix h3c index 10 deny 192.168.1.1 32------过滤掉192.168.1.1/32
[RT2]ip ip-prefix h3c index 20 permit 0.0.0.0 0 less-equal 32------其他所有网段允许通过
[RT2]ospf
[RT2-ospf-1]filter-policy ip-prefix h3c export-----配置阻止5类LSA生成
此时在RT3上查看LSDB如下图所示:
![]()
RT3上只能收到192.168.0.1/32的5类LSA,不能收到192.168.1.1/32的5类LSA。
同时查看RT3的路由表,如下图所示:
![]()
只看到一条外部路由,这样所有的OSPF路由器上都看不到5类LSA的生成。
我们可以与另外一个实验做比较,还是上面的图,配置rip引入OSPF,让RT3上学习到192.168.0.1/32和192.168.1.1/32两条外部路由。此时在RT3上执行如下配置:
[RT3]ip ip-prefix h3c index 10 deny 192.168.1.1 32
[RT3]ip ip-prefix h3c index 20 permit 0.0.0.0 0 less-equal 32
[RT3]ospf
[RT3-ospf-1]filter-policy ip-prefix h3c import
此时的这种方式也不是直接针对LSA的过滤,而是对LSA加入到路由表之前的表项做过滤,效果也是可以让RT3的路由表学习不到192.168.1.1/32的路由,如下图所示:
![]()
因为是针对加入到路由表之前的表项做过滤,所以RT3的LSDB中5类LSA还是存在的,没有被过滤。
![]()