ospf的filter-policy过滤对同区域之间的路由会生效吗,能过滤掉吗

ospf的filter-policy过滤对同区域之间的路由会生效吗,能过滤掉吗


简单直接地回答你:OSPF 的 filter-policy 对同区域(区域内)的路由是“生效”的,但通常不能彻底“过滤掉”该路由。
具体来说,它只能过滤本地的路由表(Routing Table),而无法过滤链路状态数据库(LSDB)中的 LSA
为了让你更清晰地理解,我为你拆解一下具体的表现和背后的原理:

1. 具体表现:只过滤“路标”,不阻断“情报”

当你在一个 OSPF 区域内的路由器上配置了 filter-policy(通常是 filter-policy ip-prefix XXX import)时,会发生以下情况:
  • ✅ 路由表被过滤(生效): 该路由器不会把被过滤的路由加入到自己的 IP 路由表中。从这台设备上看,这条路由“消失了”。

  • ❌ LSA 依然存在(未彻底过滤): 该路由器依然会正常接收并存储来自邻居的 Type-1 和 Type-2 LSA(区域内路由的核心信息)。

  • ⚠️ 邻居不受影响: 该路由器依然会把收到的 LSA 泛洪(Flood) 给它的其他邻居。也就是说,虽然你自己不生成路由,但你的邻居路由器依然会收到完整的链路状态信息,并计算出该路由。

2. 为什么会出现这种情况?

这是因为 OSPF 是链路状态路由协议,而 filter-policy 的机制比较特殊:
  • 计算机制不同: OSPF 路由是基于 LSDB(链路状态数据库)通过 SPF 算法算出来的,而不是像 RIP 那样直接收路由发路由。

  • 过滤时机: filter-policy import 是在 OSPF 进程将计算出的路由加入全局路由表之前进行拦截。

  • LSA 泛洪原则: OSPF 规定,只要是合法的 LSA,就必须原封不动地传递给邻居,以保证区域内 LSDB 的一致性。filter-policy 无法阻止 LSA 的传递。

3. 总结对比表

为了方便记忆,我为你整理了一个对比表:
表格
过滤对象能否被filter-policy彻底阻断?结果描述
同区域路由 (Intra-Area)不能本地无路由,但 LSDB 有 LSA,邻居全都有路由。
区域间路由 (Inter-Area)不能仅在普通路由器上无效;必须在 ABR 上使用 filter 或 abr-summary 才能彻底阻断。
外部引入路由 (External)在 ASBR 上配置 filter-policy export,可以阻止 LSA (Type-5/7) 的产生,全网消失。

💡 我的建议

如果你的需求是彻底不让某条区域内路由在全网传播,使用 filter-policy 是无效的。
  • 对于引入的外部路由: 请在引入该路由的 ASBR 路由器上使用 filter-policy export,这是可以彻底过滤的。

  • 对于区域间路由: 请在 ABR 路由器上使用 filter 命令或 abr-summary 命令。

  • 对于区域内路由: 如果必须隐藏,通常需要通过调整 OSPF 的网络类型或逻辑拓扑来实现,单纯的路由策略很难在区域内彻底阻断一条已宣告的网段。


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » ospf的filter-policy过滤对同区域之间的路由会生效吗,能过滤掉吗

作者: 小编


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!