多网卡绑定链路聚合提升服务器出口总带宽上限

## 什么是多网卡绑定链路聚合 服务器单张网卡的带宽有限(常见1Gbps或10Gbps),当业务流量接近上限时,可以通过**多网卡绑定(Bonding)**技术将多张物理网卡虚拟成一张逻辑网卡,实现出口带宽叠加。同时链路聚合还能提供冗余,一张网卡出故障时流量自动切换到其他网卡。本文以**CentOS 7/8**为例,手把手带你完成配置。 ## 上手前要准备什么 - **硬件**:至少两张同型号、同速率的网卡(建议使用Intel或Broadcom兼容芯片)。 - **交换机**:如果使用需要交换机配合的模式(如802.3ad动态聚合),必须确保交换机支持LACP并正确配置。如果只是简单故障转移或负载均衡(mode=0,1,2),普通交换机即可。 - **系统**:Linux内核已加载bonding模块。CentOS默认包含。 - **网络规划**:记录当前网卡名称(如eth0、eth1),并确保操作时不会导致远程断开(建议通过带外管理或本地控制台操作)。 ## 配置步骤 ### 1. 加载Bonding模块 ```bash modprobe bonding # 验证是否加载成功 lsmod | grep bonding ``` 如果返回结果包含bonding,说明模块已加载。若没有,执行 `modprobe bonding` 即可。 ### 2. 创建绑定虚拟网卡配置文件 在 `/etc/sysconfig/network-scripts/` 目录下创建或编辑 `ifcfg-bond0`: ```bash vim /etc/sysconfig/network-scripts/ifcfg-bond0 ``` 内容如下(按实际网络修改IP、网关等): ```ini DEVICE=bond0 TYPE=Bond NAME=bond0 BONDING_MASTER=yes BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 BONDING_OPTS="mode=1 miimon=100" ``` > **说明**:`mode=1` 是主备模式(Active-Backup),适合追求稳定性的场景;如需带宽叠加,可改为 `mode=0`(轮询)或 `mode=4`(802.3ad LACP),但需交换机配合。`miimon=100` 表示每100毫秒检测一次链路状态。 ### 3. 修改从属网卡配置文件 编辑 `ifcfg-eth0` 和 `ifcfg-eth1`,内容如下(以eth0为例): ```ini DEVICE=eth0 TYPE=Ethernet BOOTPROTO=none ONBOOT=yes MASTER=bond0 SLAVE=yes USERCTL=no ``` eth1同理,只修改`DEVICE=eth1`。注意删除原有的IP、网关等参数,这些由bond0统一管理。 ### 4. 重启网络服务生效 ```bash systemctl restart network # 或使用 nmcli 重载(NetworkManager环境) nmcli connection reload ``` 重启后使用 `ip addr show bond0` 查看是否获取到IP。再用 `cat /proc/net/bonding/bond0` 查看绑定状态,确认两个slave网卡已经加入。 ## 这些细节最容易踩坑 - **模式选择**:`mode=0`(balance-rr)会将数据包轮询发送到各网卡,能提升带宽但可能导致数据包乱序,适合内部局域网。`mode=1`(active-backup)只使用一张网卡,不提升带宽只提供冗余。`mode=4`(802.3ad)需要交换机支持LACP,且交换机端必须将对应端口划为同一个聚合组。 - **交换机配置**:如果选用mode=4,必须登录交换机配置LACP,否则链路会反复断开。 - **网卡速率必须一致**:混用千兆和万兆网卡会导致协商失败或性能异常。 - **避免远程操作风险**:配置网卡时极易断连,建议在本地终端或通过iDRAC/iLO操作。 - **NetworkManager冲突**:CentOS 7以上默认使用NetworkManager,建议禁用或使用nmcli管理bonding。如果配置后不生效,尝试 `systemctl stop NetworkManager && systemctl disable NetworkManager`,再重启network服务。 ## 完成后如何验证结果 ### 1. 查看绑定状态 ```bash cat /proc/net/binding/bond0 ``` 输出应显示两个slave interface均为“up”,并且MII Status为“up”。 ### 2. 带宽测试 使用 `iperf3` 进行吞吐测试。启动服务器端: ```bash iperf3 -s -p 5201 ```
客户端测试: ```bash iperf3 -c 服务器IP -p 5201 -P 4 -t 30 ```
对比配置前后的带宽变化。如果mode=0或4且交换机支持,应该能看到接近两倍的单网卡带宽。 ### 3. 故障切换测试 拔掉一张网卡的网线,观察业务是否中断。 ```bash # 查看链路状态变化 watch -n 1 cat /proc/net/bonding/bond0 ``` 正常应看到被拔掉的slave变为down,流量自动切换到另一张。 ## 常见问题解答 **Q:配置后bond0没有IP,且无法ping通网关?** A:检查配置文件是否遗漏`BOOTPROTO=static`或者IPADDR写错。确认从属网卡的`MASTER=bond0`和`SLAVE=yes`是否正确。也可用 `nmcli device status` 查看网卡是否被NetworkManager接管,若被接管建议禁用NetworkManager。 **Q:`mode=0` 为什么带宽没有叠加?** A:`mode=0` 需要交换机开启以太通道或手动将端口绑在一起。另外,如果交换机不支持静态聚合,只能使用`mode=1`或`mode=2`。也有可能是网卡驱动或PCIe带宽瓶颈。 **Q:如何修改bonding模式?** A:修改`/etc/sysconfig/network-scripts/ifcfg-bond0`中的`BONDING_OPTS`参数,例如改`mode=4`,然后重启网络服务。注意切换模式可能需要重新插拔或重启服务器。 **Q:配置后服务器开机启动时卡在“Starting network...”?** A:可能是网卡配置文件中有冲突或从属网卡顺序问题。可进入救援模式,先将所有`ifcfg-*`备份,只保留bond0和需要绑定的两个物理网卡,重新生成配置。 如果你正在处理多网卡绑定链路聚合提升服务器出口总带宽上限的任务,建议先从一台测试服务器开始,确认模式和相关配置无误后再部署到生产环境。遇到异常时,优先回看避坑和高频问题部分。
分享到:
上一篇
磁盘IO瓶颈存储阵列扩容优化外贸站点卡顿方案
下一篇
SSH密钥批量配置免密登录多台服务器集群脚本实战
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意