上一篇
非等价负载均衡协议有哪些类型,如何配置?
- 云服务器
- 2026-07-22
- 7
非等价负载均衡是指在后端服务器或网络路径的权重、处理能力或成本不相等的情况下,依然能够按比例分配流量或数据包的机制,这种机制在路由协议和服务器负载均衡算法中都有体现,以下按类别列出主要协议与算法。

网络层非等价负载均衡协议
以下路由协议支持非等价多路径负载均衡,允许不同度量(Metric)或成本的路径同时参与流量转发。
| 协议 | 非等价支持 | 实现方式 | 典型应用 |
|---|---|---|---|
| EIGRP | 原生支持 | 通过 variance 命令设置倍数,允许 metric 在倍数范围内的路径加入路由表,并按照带宽或延迟比例分配流量 | 思科网络中的混合网络,需快速收敛和灵活路径选择 |
| BGP | 有条件支持 | 通过 maximum-paths 和 bgp bestpath 相关命令,通常要求路径属性(如 AS 路径长度、MED 等)相似;可通过修改权重或本地优先级实现非等价分担 | 数据中心出口、多运营商互联环境 |
| OSPF | 默认等价 | 原生只支持 ECMP;非等价需通过调整链路 cost 间接实现,但并非协议标准特性,且配置复杂 | 大型企业骨干网,以等价负载为主 |
| IS-IS | 默认等价 | 同 OSPF,非等价需手动调整 metric 或通过流量工程扩展实现 | 运营商骨干网 |
| 策略路由 | 支持 | 基于策略(如源地址、协议类型)强制指定出接口,可结合多点链路实现非等价分流 | 网络安全、流量调度场景 |
关键实现细节
- EIGRP 的 variance:设置值为 1(默认)时只走最佳路径,设置大于 1 的值允许非等价路径,流量分配由路径的 metric 与最佳路径的 metric 比值决定,可通过 traffic-share balanced 或 min 控制。
- BGP 多路径:非等价通常需要路径的 AS 路径长度、起源类型、MED 等属性完全一致,否则无法启用多路径,更灵活的非等价可通过 bgp bestpath 忽略某些属性,或使用 nexthop 权重。
- OSPF 非等价:通过修改链路开销(cost)使不同路径的 metric 变得相等,但这不是真正的非等价,而是人为等价,更高级的 OSPF 实现(如思科 OSPF 的 max-metric 功能)不直接支持非等价。
应用层非等价负载均衡算法
在服务器负载均衡器(如 Nginx、HAProxy、LVS、F5)中,非等价算法通过权重分配实现流量比例,这些算法常被称为“调度算法”或“负载均衡策略”。

| 算法 | 非等价支持 | 原理 | 适用场景 |
|---|---|---|---|
| 加权轮询(Weighted Round Robin) | 是 | 每台服务器分配一个权重,按权重比例轮询分配请求 | 服务器性能差异明显,请求处理时间相对均匀 |
| 加权最少连接(Weighted Least Connections) | 是 | 将请求分配给当前连接数除以权重最小的服务器 | 长连接、请求处理时间差异大的业务 |
| 加权响应时间(Weighted Response Time) | 是 | 根据服务器历史响应时间动态调整权重,性能好的服务器获得更多请求 | 动态负载敏感场景,如 API 网关 |
| 动态比率(Dynamic Ratio) | 是 | 通过实时监控(如 CPU、内存、连接数)自动调整权重 | 云原生、自动伸缩环境 |
| 一致性哈希(Consistent Hashing) | 否(但可结合权重) | 根据请求的哈希值映射到固定节点,权重只影响虚拟节点分配 | 缓存、会话保持场景 |
非等价算法在负载均衡器中的实现举例
- Nginx upstream:配置 weight 参数即可实现加权轮询。
- HAProxy:支持 weight 在所有算法中生效,包括 leastconn、first 等。
- LVS 调度算法:WRR(加权轮询)和 WLC(加权最少连接)在 LVS 中通过 ipvsadm -E 设置权重。
相关问题与解答
问题1:EIGRP 的 variance 如何影响非等价负载均衡的流量分配?
解答:variance 定义了一个倍数(2),允许 metric 小于等于最佳路径 metric×2 的路径加入路由表,EIGRP 默认使用 traffic-share balanced,根据路径的 metric 值计算比例,metric 越小的路径分配越多流量,若使用 traffic-share min 则只使用最佳路径,非等价路径仅作为备份。variance 控制的是路径的 准入条件,而非直接控制流量比例。
问题2:BGP 实现非等价负载均衡需要满足哪些前提条件?
解答:BGP 默认只选最佳路径,要启用非等价多路径需满足以下条件:
- 配置 maximum-paths ibgp 或 maximum-paths ebgp 设置多路径数量。
- 所有路径的 AS 路径长度、起源类型、本地优先级、MED 等属性必须完全相同(除非通过 bgp bestpath 命令忽略某些属性)。
- 对于 eBGP,路径必须来自不同自治系统(AS 路径长度相同)。
- 通过调整 weight 或 local preference 使路径的权重不同,但通常 BGP 要求等价路径才能并行,严格非等价需借助 bgp dmzlink-bw 或 MPLS 流量工程等扩展。
