Linux bond 与交换机怎么配合
服务器侧链路聚合靠内核 bonding(或 team)实现:把多张网卡绑成一个逻辑接口。mode=4 对应 802.3ad,也就是与交换机做 LACP 协商;mode=1 是主备模式,不做协商,交换机侧可以是静态聚合或独立端口。两端模式必须成对,这是现场最常见的错配来源。
基本信息
| 适用系统 | Linux(RHEL/CentOS/Ubuntu 等,内核 bonding 模块) |
|---|---|
| 常见模式 | mode=1 主备、mode=4(802.3ad/LACP)动态聚合 |
| 配置工具 | nmcli、ifcfg 文件、netplan 等按发行版选择 |
| 哈希策略 | xmit_hash_policy 决定分发粒度,可选 layer2、layer3+4 等 |
| 对接原则 | 服务器与交换机模式严格成对,单侧 LACP 单侧静态是典型错配 |
典型使用场景
- 服务器双网卡上行:与交换机做 LACP 提升带宽与冗余
- 兼容性折中:交换机不支持 LACP 时退到 mode=1 主备
- 虚拟化主机组网:多网卡绑定后承载多台虚拟机流量
- 存储网络:需要稳定带宽时的聚合与哈希策略选择
- 排障定位:部分服务器通、部分不通时核对两端模式是否成对
nmcli 配置与核对
nmcli 配置与核对
nmcli con add type bond con-name bond0 ifname bond0 mode 802.3ad # 建 LACP 聚合口
nmcli con mod bond0 +bond.options "miimon=100" # 链路监测间隔
nmcli con add type ethernet con-name p1 ifname eno1 master bond0 # 加入成员网卡
nmcli con add type ethernet con-name p2 ifname eno2 master bond0
nmcli con up bond0
cat /proc/net/bonding/bond0 # 查看模式、成员状态与哈希策略
ip -br link show bond0 # 确认逻辑口已启用
ip route show default # 默认网关应指向虚拟 IP 而非单机实 IP模式与交换机侧对应
| 服务器模式 | 交换机侧配置 | 特点 |
|---|---|---|
| mode=4(802.3ad) | 动态聚合 LACP | 带宽叠加 + 冗余,需两端协商成功 |
| mode=1(active-backup) | 静态聚合或独立端口 | 只有一块网卡工作,不做协商,兼容性好 |
| mode=0(balance-rr) | 静态聚合 | 可能乱序,生产环境少用 |
| mode=6(balance-alb) | 需交换机侧相应支持 | 依赖服务器侧 ARP 协商,跨交换机受限 |
顺序建议:先在交换机侧建好聚合口并配好 LACP,再在服务器侧绑定成员网卡;反向操作容易在协商期内出现成员反复上下。
两端模式错配(服务器 LACP、交换机静态聚合)表现为部分服务器不通或时通时断,排查时先核对两端的模式再查链路。