基于 MAC 的哈希适用性是什么
聚合链路的负载分担靠哈希算法把流量映射到成员口。以源或目的 MAC 为因子的哈希只在纯二层转发环境里有效:流量一旦经网关路由,源和目的 MAC 每一跳都被改写,哈希结果与终端数量脱钩,容易出现个别成员口跑满、其余成员闲置。
基本信息
| 适用场景 | 以二层交换为主的聚合链路 |
|---|---|
| 局限 | 经三层转发后哈希因子被改写,分布与终端数量无关 |
| 对策 | 改用 IP 哈希或综合哈希 |
| 华为命令 | Eth-Trunk 视图下 load-balance 配置哈希因子 |
| 判读依据 | 各成员口的流量计数是否明显偏斜 |
| 判断前提 | 先确认业务以二层还是三层转发为主 |
典型使用场景
- 接入层到汇聚的聚合:以二层流量为主,MAC 哈希可能够用
- 服务器聚合上联:多为三层或多样会话,优先评估 IP 哈希
- 现状核对:发现成员口利用率长期偏斜时排查哈希因子
- 新建链路选型:按业务转发层次决定哈希算法
配置与分布核对
配置与分布核对
interface Eth-Trunk 1
load-balance src-dst-ip # 三层流量为主时改用 IP 哈希
load-balance src-dst-mac # 纯二层环境可用 MAC 哈希
# 核对各成员口流量是否均衡
display interface Eth-Trunk 1
display eth-trunk 1 verbose # 成员口状态与计数
# 连续采样两次以上,看增量而不是累计值哈希因子选择
| 哈希因子 | 适用环境 | 失效场景 |
|---|---|---|
| 源 MAC | 纯二层接入汇聚 | 经三层转发后因子被改写 |
| 目的 MAC | 二层为主、目的分散 | 目的集中在网关时因子单一 |
| 源 IP | 三层转发为主 | 同一 IP 多会话时仍会集中 |
| 源 + 目的 IP | 通用场景 | 单条大流量仍只走一个成员 |
| 综合哈希 | 兼顾二层与三层,按平台支持 | 需要设备支持该算法 |
判断依据:查各成员口的流量计数是否明显偏斜;采样要看增量,累计值包含历史流量,用累计值判断会得出错误结论。
哈希算法能改善的是多条会话之间的分布,单条大流量(例如一次大文件传输)仍然只走一个成员口,聚合无法提升单流带宽。