首页/网络/BGP 与广域网速查/ECMP 哈希:流量分布不均的检查
广域网排障60 条

ECMP 哈希:流量分布不均的检查

ECMP 按流哈希分担:同一条流固定走一条路径,对比单流与多流的分布差异,判断是哈希特性还是路径故障。

BGP 与广域网速查网络更新于 2026-10-13

ECMP 为什么看起来不均匀

等价多路径转发按流而不是按包分担:设备对报文的若干字段做哈希,算出一个值再选择出口。同一条流的所有报文哈希结果相同,因此固定走一条路径;只有源目的地址、端口或协议不同的多条流才会被分散到不同路径。所以用一条 iperf 或单个 ping 看到「只走一条线」是正常现象,不能据此判断负载分担坏了。真正的检查方法是并发多条流,观察各路径计数是否都有增长,并确认是否存在某条路径完全没有流量。

基本信息

哈希输入常见为源目的 IP、源目的端口、协议,部分平台可配置
分流粒度按流,同一流固定一条路径;可配置按包时需谨慎
平台差异各厂商默认哈希字段与是否包含端口并不相同
检查方式并发多流打流,对比各成员接口计数增量
常见命令show ip cef 目标地址 internal、show interfaces、display 命令

典型使用场景

  • 双线带宽未叠加:确认是否因单条大流只走一条路径
  • 流量分布明显倾斜:排查哈希字段不足或成员权重差异
  • 新设备上线后分布变化:核对平台默认哈希算法与字段列表
  • 成员链路利用率核对:确认每条路径都真实参与了转发
  • 故障演练:验证单条路径失效后流量是否重新分布

检查思路

检查思路
# 多条并发流,观察是否被分散(单流只走一条是正常的)
iperf3 -c 10.2.2.10 -P 8 -t 60
# 用不同源端口也能改变哈希结果
traceroute -n 10.2.2.1
# 设备侧看下一跳与成员分布
show ip cef 10.2.2.1 internal
show interfaces | include rate|packets   # 间隔采样看各成员计数增量

现象与判断

现象常见原因处理
单流只走一条路径按流哈希的固有特性正常现象,改用多流测试验证
多流也集中在一两条哈希字段过少或平台算法限制查看平台哈希配置项,必要时增加参与字段
某成员完全没有流量该成员未进入转发集合查路由等价性与成员接口状态
分布长期严重倾斜等价度量不同或权重设置核对 IGP 度量与平台权重配置
不同平台默认哈希字段不一致:有的包含四层端口,有的只用三层地址。更换设备型号后分布特征变化很常见,这是算法差异而不是故障。
把哈希改成按包分担会显著提升乱序概率,可能导致 TCP 性能下降,跨广域网场景不建议开启。

易错点

  • 用单流判断 ECMP 不均匀:单流按定义只走一条路径,结论从一开始就不成立
  • 忽略平台默认哈希差异:换平台后分布变化被误判为故障,浪费排查时间
  • 只看瞬时速率不看计数增量:短时突发会让人误以为长期分布不均
  • 在长连接业务上按包分担:乱序增加会导致吞吐反而下降

数据来源与参考

  • RFC 2992: ECMP 哈希分析
  • Cisco: CEF 负载分担
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌