这份文档讨论一下在不进行路由重发布的情景下,OSPF过滤LSA的两种方法:
- area filter-list prefix
- database-filter
这两种方法的使用并不常见,作为一个OSPF的扩展知识跟大家分享一下:
1.在ABR上过滤3类LSA

默认情况下,R3能够学习到1.1.1.1、11.11.11.11、2.2.2.2、192.168.12.0这几条inter-area路由。这些路由都是R3搜集到“由R2向area0注入的3类LSA”并计算得出的。
那么如果我们不想让R3学习到11.11.11.11/32这条路由呢?
ip prefix-list 100 deny 11.11.11.11/32
ip prefix-list 100 permit 0.0.0.0/0 le 32
!router ospf 1
area 0 filter-list prefix 100 in
上面这条命令的意思是,在从其他区域向area0区域注入3类LSA时执行该前缀列表过滤器。
如果是area 1 filter-list prefix 100 out,这条命令的意思是在从area1向其他所有区域注入3类LSA时执行该前缀过滤器。
注意,当我们在ABR上部署3类LSA的这个过滤方案时,只能够过滤那些产生自该ABR的3类LSA,上图中area0里默认情况下泛洪的1.1.1.1、11.11.11.11、2.2.2.2、192.168.12.0这些路由的3类LSA都是产生自R2的,因此都可以通过前缀列表进行过滤。
另外这个特性还有平台和版本的限制,只有在以下平台的CISCO IOS Release 12.0(15)S才支持。
- Cisco 7200 series
- Cisco 7500 series
- Cisco 12000 series
2.过滤掉所有出站LSA

默认情况下全网的路由都是通的。
如果我们在R2的E0/1口上部署:
Interface ethernet 0/1
ip ospf database-filter all out
!! Filter OSPF LSA during synchronization and flooding
这条命令将让R2在eth0/1口上不进行任何LSA的泛洪,其中包括1类LSA。
于是最终R3上将学不到任何路由,在R3的OSPF database只有一条1类LSA,就是它自己产生的。
但是R1、R2这一侧LSA的接收和路由计算还是正常的,也就是说,R3发给R2的LSA,R3还是收的。
所以R1及R2都能学习到3.3.3.3/32
本文地址:https://www.xxdis.com/datacom/cisco/1779.html