●OSPF过滤的困难<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />



作为链路状态路由协议,OSPF在区域内路由过滤上遇到了不小的挑战,这是因为:



1)链路状态协议不广播路由,而是广播拓扑信息。



2)SPF的环路预防要求同一区域的每台路由器都有相同的LSDB,而过滤会造成路由器的LSDB出现差别,从而导致不正常的路由。



●OSPF过滤类型



近似地看,IOS可算支持三种过滤类型:



1)过滤路由,而不是LSA:使用distribute-list in命令,路由器可以过滤SPF试图添加到路由表的路由,这不会影响到LSDB。



2)ABR上3类型LSA的过滤:阻止ABR创建特定的3类型汇总LSA。



3)使用area range no-advertise选项:也可以用来阻止ABR创建特定的3类型汇总LSA。


●使用distribute-list命令过滤路由



和前面RIP和EIGRP的distribute-list命令一样,在OSPF中该命令也用ACL或前缀列表匹配路由,阻止该路由进入路由表,但不影响LSDB。



在OSPF中使用分发列表应该满足以下规则:



1)只用于进入路由的过滤,因为过滤外发的OSPF信息意味着过滤LSA,这是分发列表无法做到的。



2)不过滤进入的LSA,而只过滤SPF选择进入路由表的路由。



3)如果分发列表包括进端接口参数,则需要检查进端接口(将其当作路由的出端接口一样检查)。



●ABR上OSPF过滤3类型LSA



由于3类型LSA不含拓扑信息,所以它可以像过滤路由那样过滤,其过滤位置在创建3类型LSA的ABR上。



要配置3类型LSA的过滤,可以使用router ospf命令下的area number filter-list prefix name in | out命令。它引用前缀列表来匹配子网和掩码,如果配置了in选项,IOS过滤进入配置区域的3类型LSA;如果配置了out,IOS则过滤外出配置区域的3类型LSA。




●使用area range命令过滤3类型LSA



在ABR上也可以使用area range命令来过滤3类型LSA。该命令在ABR上执行路由汇总,告知路由器停止广播LSA到指定地址范围的更小子网,取而代之的是创建单个3类型LSA(其地址和前缀包含更小子网)进行广播。



如果该命令包含not-advertise关键字,则不仅更小子网不广播,连同汇总的路由也不广播,这实际上与带out关键字的area filter-list命令效果一样。


转载于:https://blog.51cto.com/riser/57804