首页/网络/VLAN 与高可用速查/负载分担算法总览

负载分担算法总览

聚合按哈希把流量分配到成员:常用因子有源/目的 MAC、源/目的 IP、以及叠加四层端口;选择目标是让多流分布均匀。

VLAN 与高可用速查网络更新于 2026-10-13

负载分担算法总览

链路聚合把流量分配到成员的依据是哈希:设备对报文的某些字段做散列运算,结果决定这条流走哪个成员口。常用因子有源与目的 MAC、源与目的 IP,以及在此基础上叠加四层端口号。选择算法的目标是让不同的流尽量均匀地落在各个成员上,而不是让某一条流跑得更快——同一会话的报文始终走同一个成员,这是保证不乱序的前提。

基本信息

实现方式按哈希因子把流分配到成员口
常用因子源/目的 MAC、源/目的 IP、IP 加四层端口
华为命令load-balance src-dst-ip
思科命令port-channel load-balance src-dst-ip
基本原则同一会话固定走同一成员
验证方式对比各成员的流量计数是否接近

算法与场景

哈希因子典型场景说明
源/目的 MAC纯二层转发经路由后 MAC 被改写,分布可能变差
源/目的 IP网关与服务器区最常用的选择,兼顾二层与三层网络
IP 加四层端口多会话业务散列更细,四层设备与多连接场景常用
源 IP 加源端口南北向流量为主适合客户端数量远多于服务端的场景

配置与验证

配置与验证
# 华为:聚合口下设置哈希因子
interface Eth-Trunk1
 load-balance src-dst-ip              # 常用配置,兼顾源与目的
# Cisco:全局设置哈希算法
port-channel load-balance src-dst-ip
# 验证分布是否均匀
show interfaces Port-channel1 | include rate    # 思科:看各链路速率
display interface Eth-Trunk 1                    # 华为:看成员流量计数

选择与调优要点

  • 先明确流量特征:以南北向客户端访问为主时按源 IP 散列更均匀
  • 服务端数量少时纯按目的 IP 散列容易倾斜,可叠加四层端口
  • 算法变更后观察各成员计数,接近才算生效,凭配置回显无法判断
  • 同一流量在成员之间重新分布会触发 TCP 重排序与重传,切换窗口内有短时抖动
  • 算法无法解决单流带宽瓶颈,需要更高的成员速率才能提升单流性能
没有任何算法能把单条流拆分到多条链路上:单流的上限始终等于单个成员的带宽。想提升单流性能只能提高成员速率,或者改用支持逐包分发的方案。
聚合成员数量变化时,哈希结果会重新分布,原来走某成员的长连接可能被移动到另一条链路,造成 TCP 重排序与重传。变更成员前应评估对长连接业务的影响,尽量安排在窗口期。

易错点

  • 凭配置回显判断分担效果:算法是否生效要看各成员的流量计数,配置正确但分布倾斜的情况很常见
  • 用同一因子应对所有场景:南北向与东西向流量的最优因子不同,必要时按业务分段调整
  • 期待单流提速:哈希只分散不同的流,单流仍受单成员带宽限制
  • 变更成员数量不做评估:哈希重分布会造成长连接抖动,应在窗口期操作
  • 忽略链路速率差异:成员速率不一致时,权重与哈希的配合不当会造成明显的流量倾斜

数据来源与参考

  • 华为 S 系列交换机产品文档(负载分担)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌