filter-policy应用实验(华为设备)

概述:

filter-policy:过滤策略,该工具主要应用在路由协议的进程中,可以调用ACL、ip-prefix、route-policy 等工具来匹配路由,用于控制对路由的发布或接收,只有通过该策略的路由才可以被发布或者接收,未通过策略的路由则被过滤掉。应用场景比较广泛,在IGP和BGP协议中都能够使用,filter-policy分为import(入方向)和export(出方向)。

import:主要影响路由器接收路由,影响自身路由表的变化,适合于任何路由协议,但是不同类型的路由协议也是有差别的,如距离矢量协议(如RIP)与链路状态协议(如OSPF、IS-IS)利用该工具实现路由的控制时,实现的效果也不太一样。由于距离矢量协议基于自身路由表来通告,传递的是路由表信息,通过filter-policy import 可以过滤路由的接收。而链路状态协议基于链路状态数据库的信息来通告,传递的是LSA,并不是路由信息。而filter-policy import不能过滤1/2类LSA,而是阻止路由表的生成,该部分将在后续加以分析。

export:在距离矢量协议中用于向邻居发布路由时的控制,影响邻居路由器的路由表变化。在链路状态协议中往往用于自治系统边界路由器上,主要用来控制外部路由的引入。通常情况下,路由过滤只能过滤路由信息,不能过滤链路状态信息。对于OSPF,可以在出方向和入方向上过滤LSA3、LSA5、LSA 7。对于链路状态路由协议,如OSPF和IS-IS,在入方向过滤路由实际上并不能阻断链路状态信息的传递,过滤的效果仅仅是过滤的路由不能被加到本地路由表中,但是代表该路由的LSA仍然会在OSPF域或者IS-IS域内传递。

路由过滤还可以针对从其他协议引入的路由进行过滤,比如把RIP路由引入到OSPF, OSPF可以使用路由过滤把某些从RIP引入的路由过滤掉,只将满足条件的外部路由转换为Type-5 LSA (AS-external-LSA) 并发布出去,进而使其他OSPF路由器只有特定的从RIP引入的路由,这种配置只能用在出方向上。

配置命令:
filter-policy { acl-number I acl-name acl-name I ip-prefix ip-prefix-name [ gateway ip-prefix-name 1 } import [ interface-type interface-number 1 ]

filter-policy后面可以调用ACL、ip-prefix、 gateway 来过滤指定的路由,ACL 和ip-prefix 都用来匹配出路由条目,而gateway基于网关发布的路由进行控制,如某条路由的下一跳网关地址为192.168.1.1, 可以通过匹配gateway网关地址来控制其所发布的所有路由。import指定为入方向,interface-type 用来指定接口类型和接口号,基于接口来过滤路由。

场景一:RIP中的filter-policy应用

在这里插入图片描述
场景描述:
如图所示,R1有5个网段通告进RIP协议,要求R2过滤掉其中奇数路由。

步骤:
1.利用ACL使用最少命令来过滤路由。
[R2]acl number 2000
[R2-acl-basic-2000]rule deny source 172.16.1.0 0.0.6.0
[R2-acl-basic-2000]rule permit source any //ACL用于控制层面的过滤路由时,最后都会有一条隐含拒绝所有,因此需要匹配其他的流量,将其允许。

2.进入到进程中应用filter-policy,且在 import方向调用ACL。
[R2)rip 1
[R2-rip-1]filter-policy 2000 import
[R2]display ip routing-table
在这里插入图片描述

使用filter-policy 工具在import方向应用时, R2的路由表中无法看到被过滤的路由,由于R3的路由是R2传递过来的,R3的路由表信息应该与R2是一致的,也不会看到被过滤的路由。如果在后面携带接口参数,将只会过滤从该接口来的路由,没有携带接口参数将会过滤所有接口来的路由。

查看R3的路由表:
在这里插入图片描述
使用filter-policy工具在export方向应用时,目的是向邻居发布路由时进行过滤,但是不会影响本地路由表的变化。

场景二:OSPF中的filter-policy import应用

在这里插入图片描述
场景描述:
如图所示,路由协议运行OSPF,在R2.上使用filter-policy调用在import方向,观察一下路由表的有何区别。.

步骤:
1.在R2上使用ACL过滤172.16.X.0中的奇数路由:
[R2]acl number 2000
[R2-acl-basic 2000]rule 10 deny source 172.16.1.0 0.0.6.0
[R2- acl-basic 2000rule 20 permit source any
[R2-acl-basic-2000]quit
[R2] ospf 1
[R2-oppf-1]filter-policy 2000 import
在这里插入图片描述
可以看到,在R2的路由表中只有172.16.2.0/24、 172. 16.4.0/24两条偶数路由进入到路由表中,奇数路由已经被过滤了,已经实现目的了。

2.查看R3的路由表:
在这里插入图片描述

R3的路由表是正常的,奇数路由并没有被过滤。这是因为R3依然有R2发送过来的LSA,可以计算路由。

原因:如图所示,在一个区域中的OSPF路由器,通过泛洪机制在路由器间同步LSDB三台路由器在同一区域中有一样的LSDB,由于路由器间交互的是LSA,并非路由,所以无法在邻居间过滤路由,仅仅是不允许本地的LSA计算路由而已:
在这里插入图片描述
但是在ABR上,可以使用filter-policy imprort过滤3类或者5类LSA,原因是3类和5类LSA是路由信息,当不本地不加表后,由于路由的矢量性,不会传递给其他邻居。

场景二:OSPF中的filter-policy export应用

在这里插入图片描述
场景描述:
OSPF中使用filter-policy import 可以用来过滤路由,但是不能过滤LSA,而filter-policy export则是用于控制外部路由的引入。如图所示,要求R2将RIP引入进OSPF时仅引入前面三条路由。

步骤:

1.在R2上使用filter-policy export把图中172.16. 1.0~ 172.16.3.0路由引入OSPF。

[R2]ip ip-prefix R2O permit 172. 16.0.0 22 greater-equal 24 less-equal 24
[R2]ospf 1
[R2-ospf-1] import-route rip 1
[R2-ospf- 1] filter-policv ip-prefix R2O export rip 1

R2使用前缀列表匹配来自RIP的172.16.1.0/24、 172. 16.2.0/24、172.16.3.0/24 三个网段,将匹配到路由引入进OSPF。使用filter- policy工具调用前缀列表并且应用在export方向,后面携带了参数表示从RIP协议引入的路由,没有被匹配到的路由将不会被引入进来。

2.查看R3的路由表:
display ip routing-table
在这里插入图片描述

R3的路由表中只能看到被匹配到的路由,172.16.4.0/24、172.16.5.0/24 没有被引入进来,通过该方式可以精确地控制路由的引入。

总结:

filter-policy 工具是一种非常灵活的路由控制工具,主要用在矢量路由协议中对邻居间通告的路由执行过滤控制;或在链路状态路由协议中,在区域或路由域的边界设备上对路由表中的路由进行过滤(链路状态路由协议的矢量特性)。但它无法在链路状态路由协议阻止链路信息的泛洪(不能过滤1类、2类LSA、LSP等),因为一个区域内的拓扑技算不统一,会形成环路。

整理资料来源:《HCIE路由交换学习指南》

猜你喜欢

转载自blog.csdn.net/tushanpeipei/article/details/112908042
今日推荐