●
OSPF
过滤的困难
作为链路状态路由协议,
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
命令效果一样。