单网卡带宽不够用,加网卡做聚合是最直接的解法。但 LACP 动态协商、静态 Trunk、Linux bonding 这几种方式各有适用条件,选错了轻则聚合不生效,重则产生环路。本文从带宽需求、交换机兼容性、冗余要求三个维度,帮你快速锁定合适的方案。
一台服务器跑虚拟化平台,十几台虚拟机同时做备份,单条 1G 链路瞬间打满。加一张网卡不够,得把多条物理链路"捆"成一条逻辑链路——这就是链路聚合干的事。
聚合带来两个好处:带宽叠加和链路冗余。四条 1G 链路聚合后逻辑带宽 4Gbps,其中一条断了流量自动切到剩余链路,业务不中断。
但聚合不是把线插上就行。网卡端和交换机端必须用同一种聚合协议,否则要么不生效,要么形成广播环路。
LACP 是业界标准协议,网卡和交换机通过发送 LACPDU 报文自动协商聚合关系。优点是配置容错性好——两端只要都开启 LACP,链路状态变化时自动重新协商,不需要人工干预。
绝大多数企业级交换机(H3C、锐捷、华为)和服务器网卡都支持 LACP。LR-LINK 的 LREC9714HT、LREC9804BT、LRES1027PF-4SFP28 三款四口网卡均支持 IEEE 802.3ad 链路聚合。
不跑协议,两端手动把指定端口划入同一个聚合组。配置简单,但链路故障时没有协商过程,依赖交换机自身的检测机制(通常是物理层 link-down 检测)。
适合交换机不支持 LACP 的场景,比如部分老旧设备或低端家用交换机。风险在于:如果一端配了聚合另一端没配,会形成环路。
在操作系统层面把多块网卡绑定为一个 bond 接口。Linux 内核提供 7 种 mode:
mode 4 本质就是 LACP 在 Linux 下的实现。mode 5/6 不需要交换机支持聚合,适合交换机不可控的环境。
静态 Trunk 和 LACP 模式下,如果交换机端未做对应配置,多条物理链路之间会形成二层环路,导致广播风暴。部署前务必确认两端配置一致。
选方案之前,先回答三个问题:
1. 需要多少聚合带宽?
四口千兆聚合上限 4Gbps,四口 10G 聚合上限 40Gbps,四口 25G 聚合上限 100Gbps。带宽需求直接决定网卡选型。
2. 交换机支持什么?
企业级交换机通常同时支持 LACP 和静态 Trunk。如果交换机是 LACP 不可控的(比如运营商侧设备、共享机房交换机),只能用 Linux bonding mode 5/6 或者单链路。
3. 冗余优先级多高?
active-backup(mode 1)牺牲带宽换冗余;LACP 和 balance-alb 同时提供带宽叠加和故障切换。金融、医疗等对中断零容忍的场景,优先选 LACP。
| 应用场景 | 带宽需求 | 推荐聚合方式 | 推荐网卡 | 聚合后带宽 |
|---|---|---|---|---|
| 企业文件服务器 / NAS | 2-4Gbps | LACP | LREC9714HT | 4Gbps |
| 虚拟化平台(VMware/KVM) | 10-40Gbps | LACP | LREC9804BT | 40Gbps |
| 数据中心核心业务服务器 | 50-100Gbps | LACP | LRES1027PF-4SFP28 | 100Gbps |
| 交换机不可控(共享机房) | 2-4Gbps | Bonding mode 6 | LREC9714HT | 4Gbps |
| 纯冗余(金融/医疗) | 不叠加 | active-backup | LREC9804BT | 10Gbps(单链路) |
相比用两张双口网卡做聚合,四口单卡只占一个 PCIe 插槽,聚合组内所有端口共享同一控制器,协商一致性更好,也避免了跨卡聚合时可能出现的驱动兼容问题。
交换机只支持静态 Trunk,不支持 LACP: 用静态 Trunk 即可,但务必在网卡驱动中关闭 LACP 协商(Linux 下 bonding mode 改为 mode 0 或手动配置),避免两端协议不匹配。
需要跨交换机聚合(M-LAG/vPC): 这属于交换机侧的高级特性,网卡端仍然跑标准 LACP,不需要特殊配置。前提是两台交换机之间做了 M-LAG 对等体。
聚合后单流带宽不增长: 链路聚合的带宽叠加是针对多流场景的。单条 TCP 连接受哈希算法限制,通常只走聚合组中的一条链路。如果需要单流加速,考虑 RSS 多队列或 RDMA 方案,LRES1027PF-4SFP28 支持 iWARP 和 RoCE v2,可以绕过内核协议栈直接传输。
Windows Server 环境: Windows 的 NIC Teaming 功能原生支持 LACP 和静态聚合,在"服务器管理器 → 本地服务器 → NIC 组合"中配置即可,不需要额外软件。
有可控交换机就用 LACP,这是兼容性最好、故障切换最快的方案。交换机不可控就用 Linux bonding mode 6。带宽不够就升网卡速率,而不是无限堆链路数量——四条 25G 聚合的 100Gbps 远优于十条 1G 聚合的 10Gbps。
一句话原则:能跑 LACP 就跑 LACP,带宽不够就升速率等级。 千兆够用选 LREC9714HT,虚拟化选 LREC9804BT,数据中心核心业务选 LRES1027PF-4SFP28。
链路聚合的带宽叠加只对多流有效。单条 TCP 连接经过哈希后通常只落在聚合组的一条成员链路上,所以单文件传输看不到速度提升。想验证聚合是否生效,用 iperf 开多线程(-P 8)测试,或者同时跑多个独立传输任务。
LACP 更稳定。LACP 通过周期性发送 LACPDU 报文(默认 30 秒一次,快速模式 1 秒一次)持续检测对端状态,链路异常时秒级切换。静态 Trunk 只依赖物理层 link-down 检测,如果光纤出现误码但未断链,静态 Trunk 无法感知,LACP 可以通过报文超时发现问题。
不需要"四口"对等。交换机端只需要把对应数量的端口划入同一个聚合组即可。比如网卡用四个口,交换机侧也把四个口加入同一个 Trunk 组。聚合组成员数量两端一致就行,跟交换机总共多少端口无关。
没有本质区别。Linux bonding mode 4 就是内核实现的 LACP 协议(802.3ad),配置时需要指定 lacp_rate 和 xmit_hash_policy。和 Windows NIC Teaming 里选"LACP"是一回事,只是配置界面不同。
不能。IEEE 802.3ad 要求聚合组成员的速率和双工模式必须一致。把 1G 口和 10G 口放进同一个聚合组,要么协商失败,要么低速端口被强制丢弃。如果需要混合速率,分开建组或者升级到低速端口的同速率网卡。