最长前缀匹配的规则
同一目的地址能匹配多条路由时,设备先比前缀长度,越长越优先;只有前缀完全相同时才比较优先级与度量。默认路由 0.0.0.0/0 前缀最短,是最后的兜底。这条规则解释了大量「优先级更高的路由为什么没生效」的疑惑——因为比较顺序里,前缀长度排在优先级之前。
基本信息
| 适用平台 | 思科 IOS / 华为 VRP / H3C Comware 全部三层设备 |
|---|---|
| 比较顺序 | 前缀长度 → 优先级 → 度量值 |
| 兜底 | 0.0.0.0/0 默认路由,前缀最短,最后被选中 |
| 查看方式 | 查询具体目的地址,返回命中的整条路由 |
典型使用场景
- 明细路由与汇总路由共存时确认实际选路
- 排查「加了明细反而走了汇总」这类现象
- 多协议引入后的选路核对
- 默认路由与明细路由并存的场景
- 割接前核对实际命中的路由,而不是只看配置
华为 VRP
华为 VRP
<Huawei> display ip routing-table 10.1.1.5
! 10.1.1.0/24 与 10.0.0.0/8 同时存在时,命中的是 10.1.1.0/24
<Huawei> display ip routing-table protocol static思科 IOS
思科 IOS
SW-CORE-01# show ip route 10.1.1.5
! 输出 Routing entry for 10.1.1.0/24 即实际选择的结果
SW-CORE-01# show ip route 10.1.1.5 longer-prefixesH3C Comware
H3C Comware
<H3C> display ip routing-table 10.1.1.5
<H3C> display ip routing-table 10.1.1.5 verbose # 查看下一跳与出接口比较顺序逐层读
| 比较层 | 比较项 | 说明 |
|---|---|---|
| 第一层 | 前缀长度 | 越长越优先,此时不比较优先级 |
| 第二层 | 优先级(管理距离) | 数值越小越优先,仅在前缀相同时比较 |
| 第三层 | 度量值 | 同一协议内比较,越小越优先 |
| 全部相同 | 等价多路径 | 按流哈希分担到多条路径 |
优先级只在同名前缀的候选之间比较:一条 24 位掩码的静态路由,即使优先级数值比 OSPF 路由更大(数值越小越优先),只要前缀更长就仍然胜出。
确认实际选路最快的方式是查询具体目的地址:设备会返回命中路由的前缀长度、下一跳与出接口,比翻整张路由表再逐条比对高效得多。