filter-policy技术无法过滤同区域路由 (Intra-Area)和区域间路由 (Inter-Area)


两台华为的交换机sw1和sw2和sw3都配置ospf,并且之间都建立好了邻居,sw1在sw2和sw3之间。sw2的直连路为192.168.1.0/24, 需要在sw1配置命令过滤掉,不让sw1传到松。 sw1和sw2和sw3的ospf area区域都是0.  filter-policy技术无法过滤同区域路由 (Intra-Area)和区域间路由 (Inter-Area),sw1在sw2和sw3之间属于同区域路由 。 如果用filter-policy技术无法解决问题, 在sw1 如何过滤,请给出具体配置案例


你说得非常准确。在OSPF的同一个区域(Area 0)内,filter-policy 确实无法过滤掉 Type-1 (Router LSA) 和 Type-2 (Network LSA) 路由,因为同区域的OSPF路由器必须拥有完全一致的链路状态数据库(LSDB),filter-policy 只能控制路由表的生成,不能阻止LSA的泛洪。
既然 SW1 位于 SW2 和 SW3 之间,且都在 Area 0,要彻底阻止 SW2 的直连网段 192.168.1.0/24 传递给 SW3,最有效且符合OSPF机制的方法是调整区域划分,利用 ABR 的路由过滤功能

💡 核心解决方案:修改区域类型为 Stub 或调整区域划分

由于同区域无法过滤,我们需要打破“全在 Area 0”的结构。有两种主流方案:
  1. 方案一(推荐):将 SW2 所在区域改为 Stub/Totally Stub

  2. 方案二:将 SW2 划分到非骨干区域(如 Area 1),SW1 作为 ABR

为了最小化改动,我为你提供方案二的具体配置案例,这是解决此类问题的标准做法。



🛠️ 配置案例:将 SW2 划入 Area 1,利用 ABR 过滤

我们将网络结构调整为:

SW2:接口属于 Area 1。

SW1:连接 SW2 的接口属于 Area 1,连接 SW3 的接口属于 Area 0(此时 SW1 是 ABR)。

SW3:保持在 Area 0。

ABR(SW1)可以在区域边界对 Type-3 LSA(汇总路由)进行精确过滤。


步骤 1:配置 SW2 (Area 1)

<SW2> system-view

[SW2] ospf 1

[SW2-ospf-1] area 1

[SW2-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255  # SW2的直连网段宣告进Area 1

[SW2-ospf-1-area-0.0.0.1] quit

[SW2-ospf-1] quit


步骤 2:配置 SW1 (ABR,一边 Area 1,一边 Area 0)

<SW1> system-view

[SW1] ospf 1

# 1. 配置连接 SW2 的接口在 Area 1

[SW1-ospf-1] area 1

[SW1-ospf-1-area-0.0.0.1] network 192.168.2.0 0.0.0.255  # 假设SW1-SW2互联地址是192.168.2.0/24

[SW1-ospf-1-area-0.0.0.1] quit

# 2. 配置连接 SW3 的接口在 Area 0

[SW1-ospf-1] area 0

[SW1-ospf-1-area-0.0.0.0] network 192.168.3.0 0.0.0.255  # 假设SW1-SW3互联地址是192.168.3.0/24

[SW1-ospf-1-area-0.0.0.0] quit


步骤 3:在 SW1 上配置路由策略 (Route-Policy) 过滤

这是关键步骤。我们在 SW1 上定义一个策略,拒绝 192.168.1.0/24,并将其应用到从 Area 1 向 Area 0 发送路由的方向。

# 1. 创建 IP 前缀列表 (定义过滤规则)

[SW1] ip ip-prefix BLOCK_SW2 deny 192.168.1.0 24   # 明确拒绝该网段

[SW1] ip ip-prefix BLOCK_SW2 permit 0.0.0.0 0 less-equal 32 # 允许其他所有路由(兜底)

# 2. 创建 Route-Policy (调用规则)

[SW1] route-policy FILTER_FROM_SW2 deny node 10

[SW1-route-policy] if-match ip-prefix BLOCK_SW2

[SW1] route-policy FILTER_FROM_SW2 permit node 20

# node 20 为空,表示允许其他未匹配的路由通过

# 3. 在 OSPF 进程下应用过滤 (核心命令)

[SW1] ospf 1

[SW1-ospf-1] area 1  # 注意:必须在被过滤路由所在的区域视图下配置

[SW1-ospf-1-area-0.0.0.1] filter route-policy FILTER_FROM_SW2 export 

# export 方向表示:从Area 1 产生,向外(其他区域)发送时过滤



方案解析与验证

  1. 为什么有效?
    • 在同区域(Area 0)内,LSA 必须同步,无法过滤。

    • 当我们将 SW2 移到 Area 1 后,SW2 的 192.168.1.0/24 会以 Type-1 LSA 存在于 Area 1。

    • SW1(ABR)收到该 LSA 后,会将其转换为 Type-3 LSA 通告给 Area 0。

    • filter route-policy 命令在 ABR 上可以阻止 Type-3 LSA 的生成,从而让 SW3 根本“看不见”这条路由。

  2. 如果不允许修改区域怎么办?
    • 如果严格要求所有设备必须在 Area 0 且不能变动,OSPF 标准协议下无法通过配置过滤掉同区域路由。

    • 唯一的“变通”方法是在 SW3 上配置 filter-policy,但这只是不让该路由进入 SW3 的路由表,SW3 的 LSDB 里依然会有这条 LSA(占用资源,且不符合你要求的“不让 SW1 传”)。

建议: 使用上述 ABR 过滤方案,这是企业网中隔离路由的标准做法。




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

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » filter-policy技术无法过滤同区域路由 (Intra-Area)和区域间路由 (Inter-Area)

作者: 小编


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

一切源于价值!

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

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!