静态路由不生效的排查顺序
静态路由的问题几乎不会出在命令写错上,而是出在「这条路由有没有进转发表」和「回程有没有路」这两件事上。按配置、路由表、转发表、下一跳、回程、策略六步往下走,每一步都有确定的命令和判断标准,比反复重启设备或重敲配置有效得多。其中优先级覆盖与回程缺失两项,占了现场根因的绝大多数。
基本信息
| 适用平台 | 全部三层设备 |
|---|---|
| 排查对象 | 已配置但流量不通的静态路由 |
| 核心命令 | display current-configuration、display ip routing-table、show ip route、show ip cef |
| 权限要求 | 查看类命令用户视图即可 |
六步排查清单
- 第一步查配置:命令是否真的存在、掩码是否写对、是否写在正确的 VRF 里
- 第二步查路由表:目的网段是否出现在路由表中,是否被更优来源覆盖
- 第三步查转发表:路由表有而 FIB 没有,说明下一跳递归失败或接口未 up
- 第四步查下一跳:直接 ping 下一跳地址,先确认二层与直连可达
- 第五步查回程:对端是否有回到源网段的路由,用指定源地址 ping 复验
- 第六步查策略:ACL、NAT、策略路由是否拦了流量,看命中计数是否增长
第 1-2 步 配置与路由表
第 1-2 步 配置与路由表
<Huawei> display current-configuration | include ip route-static
<Huawei> display ip routing-table 10.10.10.0 24
! 表里没有 → 查下一跳可达性 / 是否被更高优先级来源覆盖
<Huawei> display ip routing-table protocol static # 只看静态来源的路由第 3-4 步 转发表与下一跳
第 3-4 步 转发表与下一跳
SW# show ip route 10.10.10.0 255.255.255.0
SW# show ip cef 10.10.10.0 # FIB 无命中说明转发面没有这条路由
SW# ping 192.168.1.1 # 下一跳先通,再谈远端网段
SW# show ip interface brief | include up # 出接口是否为 up/up第 5-6 步 回程与策略
第 5-6 步 回程与策略
! 对端有没有回程路由?用指定源地址 ping 复验,避免源地址选错
<H3C> ping -a 10.10.10.1 192.168.2.10
<H3C> display acl all | include match # 命中计数增长说明被 ACL 处理
<H3C> display nat session all # 换过地址时看会话是否建立
<H3C> display ip routing-table 10.10.10.0 24六步与判断标准
| 步骤 | 命令要点 | 判断标准 |
|---|---|---|
| 配置 | display current-configuration | include route | 命令存在、掩码与下一跳正确 |
| 路由表 | display ip routing-table 目的网段 | 表中有该前缀且为 Static 来源 |
| 转发表 | show ip cef / display fib | FIB 中有对应表项 |
| 下一跳 | ping 下一跳地址 | 能 ping 通,说明直连与 ARP 正常 |
| 回程 | 带源地址 ping 对端 | 对端能回包,路由双向完整 |
| 策略 | display acl / display nat session | 命中计数不增长说明未被拦截 |
高频根因排序:回程缺失最多,其次是下一跳不可达,然后是被更优来源覆盖(华为/H3C 的 OSPF 域内优先值 10 压过静态 60),再往后才是更长前缀覆盖与 ACL、NAT 拦截。按这个顺序推进,通常前两步就能定位。