ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

eNSP实战 | Filter-Policy 路由策略过滤 —— 用 ip-prefix 精准 “屏蔽“ 一条路由

eNSP实战 | Filter-Policy 路由策略过滤 —— 用 ip-prefix 精准 “屏蔽“ 一条路由 面向对象网络运维 / 数通入门学习者eNSP 华为 VRP 平台实验目标让某台路由器只不学某一条指定路由其余路由照常学习一、实验目标与场景引入在实际网络中我们会遇到这样的需求某条路由网段不想出现在本机路由表里例如业务隔离、安全策略、临时割接屏蔽但其他路由必须正常学习网络不能断。这就是路由策略过滤Filter-Policy要解决的问题。本实验用最经典的组合plaintextip-prefixIP 前缀列表 定义哪些要、哪些不要 filter-policy import 在 OSPF 中拦截进入路由表的路由一句话总结需求过滤掉 192.168.5.0/24 这条路由让它不进路由表其余路由全部放行。二、实验拓扑与地址规划为聚焦本实验主题采用最简两台路由器背靠背拓扑plaintext[R1] GE0/0/0 -------- GE0/0/0 [R2] 10.0.12.1/24 10.0.12.2/24 R1 内侧GE0/0/1 192.168.5.1/24 ← 待被过滤的网段源头在 R1 R2 内侧GE0/0/1 192.168.6.1/24 ← 正常网段用来验证其他路由不受影响表格设备接口IP 地址 / 掩码角色R1GE0/0/010.0.12.1/24与 R2 互联R1GE0/0/1192.168.5.1/24目标网段源头待过滤下接 PC1R2GE0/0/010.0.12.2/24与 R1 互联R2GE0/0/1192.168.6.1/24正常网段对照验证下接 PC2说明192.168.5.0/24 由 AR1 通过 OSPF 宣告AR2 正常学习本实验要在 AR2 上把它过滤掉。网段可以随意改命令逻辑一样。⚠️关键前提eNSP 中路由器接口必须连接设备才会物理 UP。AR1、AR2 的 GE0/0/1 一定要接 PC或其它设备否则接口 down目标网段根本进不了 OSPF过滤无从谈起。这是本实验最容易踩的第一个坑详见第七节 1。三、核心原理先搞懂建议先读这一段再配3.1 Filter-Policy 的 import /export 两个方向在 OSPF 进程视图下filter-policy有方向之分含义完全不同表格方向作用点效果import本机收到路由后、写入本机 IP 路由表之前被过滤的路由不进本机路由表export本机向邻居发布 / 通告路由时被过滤的路由不发给邻居全网都看不到本实验用的是import——只管自己这台的 学。3.2 关键认知OSPF 下 import 的特性filter-policy import只过滤 进入 IP 路由表 的路由不阻断 LSA 的收发与泛洪LSDB 依然同步、SPF 依然计算也就是说被过滤的路由在 OSPF 协议内部 还在只是不落地到路由表若还有下游路由器下游依然能学到这条路由因为没有拦截 LSA。这一条是全网公认的易错点实验里会用命令实测证明给你看。3.3 为什么用 ip-prefix 而不用 ACL过滤路由推荐IP 前缀列表ip-prefix它比 ACL 更专业表格对比项ACLip-prefix匹配内容只能精确匹配 网络号同时匹配网络号 掩码长度掩码范围匹配如 /24~/28不支持支持greater-equal /less-equal用途也可过滤数据报文只能用于路由过滤不能过滤数据包四、实验步骤带逐行解析全部命令在Shell 代码块中#后是解析注释可直接照抄。步骤 1AR1 基础配置IP 地址 OSPF在 AR1 上执行shell# 进入系统视图 sys # 给设备起名 AR1方便区分 sysname AR1 # 配置互联接口 GE0/0/0连到 AR2 interface GigabitEthernet0/0/0 ip address 10.0.12.1 255.255.255.0 quit # 配置内侧接口 GE0/0/1模拟内网网段 192.168.5.0/24就是待被过滤的目标网段 interface GigabitEthernet0/0/1 ip address 192.168.5.1 255.255.255.0 quit # 启用 OSPF 进程 1并指定 Router-ID习惯用 1.1.1.1 ospf 1 router-id 1.1.1.1 # 进入骨干区域 area 0.0.0.0 # 宣告互联网段 network 10.0.12.0 0.0.0.255 # 宣告目标网段 192.168.5.0/24让 OSPF 把它传给对端 R2 network 192.168.5.0 0.0.0.255 quit quit # 返回用户视图 quit解析network 网段 反掩码中的0.0.0.255是反掩码255.255.255.0 的反码只匹配该网段前缀是 OSPF 宣告的标准写法。步骤 2AR2 基础配置IP 地址 OSPF在 AR2 上执行shell# 进入系统视图 sys # 起名 AR2 sysname AR2 # 配置互联接口连到 AR1 interface GigabitEthernet0/0/0 ip address 10.0.12.2 255.255.255.0 quit # 配置内侧正常网段用来对照过滤后这条路由必须还在 interface GigabitEthernet0/0/1 ip address 192.168.6.1 255.255.255.0 quit # 启用 OSPFRouter-ID 用 2.2.2.2 ospf 1 router-id 2.2.2.2 area 0.0.0.0 # 宣告互联网段 network 10.0.12.0 0.0.0.255 # 宣告正常网段 network 192.168.6.0 0.0.0.255 quit quit quit步骤 3确认过滤前的 基线 状态在 AR2上查看 OSPF 学到的路由确认 192.168.5.0/24已经能学到shell# 只看 OSPF 学到的路由此时应能看到 192.168.5.0/24 display ip routing-table protocol ospf预期输出里会看到类似路由来源为 OSPFplaintextDestination/Mask Proto Pre Cost Flags NextHop Interface 192.168.5.0/24 OSPF 10 2 D 10.0.12.1 GigabitEthernet0/0/0解析Proto OSPF、Pre 10说明这是 OSPF 内部路由区域内。AR2 此刻两条网段都学得到这是过滤前的对照基线。步骤 4定义 IP 前缀列表 BLOCK-ROUTE核心操作在 AR2上执行注意这里是本实验的关键shell# 进入系统视图 sys # 第一条规则index 10拒绝目标网段 # 语法ip ip-prefix 列表名 index 序号 deny 网段 掩码 # 255.255.255.0 是点分掩码等价于写 24都表示只精确匹配 /24 这个前缀 # 含义凡是192.168.5.0/24这条路由直接拒绝 ip ip-prefix BLOCK-ROUTE index 10 deny 192.168.5.0 255.255.255.0 # 第二条规则index 20兜底放行其余所有路由 # 0.0.0.0 0 表示匹配任意网段网络号为 0 表示不限制前缀 # less-equal 31 表示掩码长度 31即排除 /32 主机路由 # 含义除了上面被拒绝的那条其余非 /32 路由全部放行 # 【注意】原稿写的 less-than 32在华为 VRP 中标准写法就是 less-equal 31 # 二者语义等价都是掩码长度小于 32 ip ip-prefix BLOCK-ROUTE index 20 permit 0.0.0.0 0 less-equal 31 quit重要原理必看前缀列表按 index 从小到大顺序匹配命中即停止并且列表末尾隐含一条 拒绝所有。所以第 10 条先挡掉 192.168.5.0/24第 20 条必须存在否则其余路由会被隐含的 deny 全部误杀导致 AR2 一条 OSPF 路由都学不到。若你的场景需要放行 /32 路由如 Loopback 通告把less-equal 31改成less-equal 32即可。步骤 5在 OSPF 进程中应用过滤策略还是在 AR2上进入 OSPF 进程挂上这个前缀列表shell# 进入 OSPF 进程 1 ospf 1 # import 方向过滤从 OSPF 学到、准备写入本机路由表的路由 # 意思是只有通过 BLOCK-ROUTE 列表的路由才允许进 AR2 的 IP 路由表 filter-policy ip-prefix BLOCK-ROUTE import quit quit解析这一行命令挂上后立即生效不需要重启 OSPF也不需要重置邻居关系。步骤 6验证过滤效果重点验证三步验证一看 IP 路由表目标网段应消失shell# 在 AR2 上执行 display ip routing-table protocol ospf预期192.168.5.0/24 不再出现而 192.168.6.0/24R2 本地直连正常互联网段正常。验证二看前缀列表的命中情况加分项务必会shell# 查看前缀列表内容与匹配计数 display ip ip-prefix BLOCK-ROUTE预期输出plaintextPrefix-list count: 2 ip ip-prefix BLOCK-ROUTE: Description: index 10: deny 192.168.5.0/24 (Matched: 1) index 20: permit 0.0.0.0/0 less-equal 31 (Matched: 1)解析Matched计数表示该规则被命中的次数。index 10 命中 1 次说明 192.168.5.0/24 确实被它拦截index 20 命中说明其他路由被放行。排障时这个计数非常有用如果 index 20 的 Matched 是 0说明你的放行规则没生效。验证三对照 OSPF 协议路由表揭露本质的关键一步shell# 在 AR2 上执行 display ospf routing预期192.168.5.0/24 在这里仍然存在这个对比是全实验最有价值的结论filter-policy import只过滤 进入 IP 路由表 的路由并不影响 OSPF 协议自身的路由计算结果。所以display ip routing-table看不到 ✅需求达成display ospf routing还看得到协议层没被 动刀LSDB 里 LSA 也依然在display ospf lsdb可查验证四ping 实测shell# 在 AR2 上 ping 目标网段的接口地址预期不通因为路由表里没这条路由 ping 192.168.5.1预期Request time out/ 不可达。原因AR2 路由表已无 192.168.5.0/24数据包查表失败被丢弃。这正好证明过滤是真实生效的而不是只在配置里写写而已。五、结果对比一览表格检查项在 AR2 上过滤前过滤后display ip routing-table protocol ospf看 192.168.5.0/24✅ 存在❌消失display ospf routing看 192.168.5.0/24✅ 存在✅ 仍存在LSDB 中 192.168.5.0/24 的 LSA✅ 存在✅ 仍存在192.168.6.0/24对照网段✅ 正常✅ 正常未被误伤R2 ping 192.168.5.1✅ 通❌ 不通六、深入理解为什么 只挡路由、不挡 LSAOSPF 是链路状态协议所有路由器先同步 LSDBLSA再用 SPF 算法各自独立算出到每个网段的最优路由。filter-policy import是插在 SPF 算完 → 写入 IP 路由表 这个环节上的一道闸门plaintextLSDB 同步LSA 照常收发、泛洪 ↓ SPF 算法计算OSPF 路由表生成照样算出 192.168.5.0/24 ↓ ★ filter-policy import 在这里过滤 ★ ← 只在这里起作用 ↓ 写入 IP 路由表192.168.5.0/24 被挡不进表所以它天然不会去动 LSA—— 这正是链路状态协议的 路由一致性 要求决定的。这也解释了为什么下游路由器依然能学到该路由LSA 没有被拦SPF 照样算得出来。记忆口诀filter-policy import 只管自己这台 看不看得到不管别人 学不学得到。想让全网都学不到才需要 export 方向 / ABR 上的 LSA 过滤那是后话。七、避坑指南新手最容易踩的坑内侧接口没接线目标网段学不到表象在 R2 上dis ip routing-table protocol ospf无输出dis ospf routing里只有 10.0.12.0/24 一条没有 192.168.5.0/24。OSPF 邻居却是 Full。排查dis ip int bri发现 AR1 和 AR2 的 GE0/0/1 都是down down。plaintextGigabitEthernet0/0/0 10.0.12.1/24 up up GigabitEthernet0/0/1 192.168.5.1/24 down down ← 问题在这根因eNSP 中路由器接口不连接任何设备时物理层就是 down。接口 down → 没有直连路由 → OSPF 不宣告该网段 → 对端自然学不到。解决给两个 GE0/0/1 各接一台 PCPC1/PC2接口自动 upOSPF 约几秒收敛后路由即出现。反思当时差点误判成 配置没配上其实配置全对是物理连接的问题。排障时先看接口状态再查配置。忘写第 20 条放行规则→ 前缀列表末尾隐含 deny结果 AR2 把所有 OSPF 路由全过滤了网直接 断光。记住deny 前面必须有兜底 permit。方向搞反→ 配成export会把路由挡在通告之前影响的是邻居本实验要挡 自己学习必须用import。掩码写错→192.168.5.0 255.255.255.0只匹配 /24。如果设备上通告的是 /25 或 /32就匹配不上过滤无效。排查时用display ip ip-prefix BLOCK-ROUTE看Matched计数。以为过滤后 LSA 也没了→ 抓包或看 LSDBLSA 照常在。不要拿 邻居学不到 来验收本实验那是 export 或 LSA 过滤的效果。less-than写法→ 华为 VRP 中 ip-prefix 的标准参数是greater-equal/less-equal没有less-than关键字。原稿的 小于 32 应写成less-equal 31。八、总结过滤一条路由、不影响其他ip-prefix精确匹配网段 掩码filter-policy import拦截进路由表是最标准组合方向决定一切import挡 自己学export挡 对外发链路状态协议的本质filter-policy 只作用于路由表不作用于 LSA这是它与距离矢量协议最不同的地方验收display ip routing-table目标消失 display ip-prefix命中计数 display ospf routing仍在三者对上号实验即成功。思考题如果改成三台路由器 AR1→AR2→AR3 串联只在 AR2 上配filter-policy importAR3 还能学到 192.168.5.0/24 吗如果想让 AR3 也学不到应该怎么改提示答案就在第六节的原理里
返回列表