帮你快速理解、总结文档立即下载

网卡 Bond 绑定配置

最近更新时间:2026-08-27 18:07:00
我的收藏

概述

本文介绍如何在 TencentOS Server 4 上配置网卡 Bond(链路聚合),通过将多块物理网卡绑定为一个逻辑接口,实现网络带宽叠加或链路冗余。
Bond 常用模式:
模式
名称
特点
适用场景
mode 0
balance-rr
轮询,负载均衡(需交换机支持聚合)
吞吐量最大化
mode 1
active-backup
主备,高可用
链路冗余
mode 2
balance-xor
基于哈希的负载均衡
负载均衡
mode 4
802.3ad (LACP)
动态链路聚合(需交换机支持 LACP)
高吞吐+冗余
mode 5
balance-tlb
自适应传输负载均衡
出口带宽均衡
mode 6
balance-alb
自适应负载均衡
双向带宽均衡

前提条件

权限要求:root 权限
多块网卡:至少 2 块物理网卡(本示例使用 eth0eth1
若使用 mode 4(LACP),需要交换机端同步配置端口聚合组
注意
配置 Bond 过程中会修改网卡状态,若您正通过其中一块网卡以 SSH 方式连接服务器,存在连接中断的风险。建议您通过带外管理通道(如 BMC/IPMI 或云平台控制台)执行操作;若只能使用 SSH,请先保持多条独立连接,并避免断开正在使用的会话。

方法一:使用 NetworkManager(推荐)

TencentOS Server 4 默认使用 NetworkManager 管理网络,推荐使用 nmcli 命令配置。

步骤 1:创建 Bond 接口

# 创建名为 bond0 的 Bond 连接(mode 1: 主备模式)
nmcli connection add type bond \\
con-name bond0 \\
ifname bond0 \\
bond.options "mode=active-backup,miimon=100"

# LACP 模式(mode 4,需要交换机配置)
nmcli connection add type bond \\
con-name bond0 \\
ifname bond0 \\
bond.options "mode=802.3ad,miimon=100,lacp_rate=fast"

步骤 2:添加成员网卡(Slave)

# 将 eth0 添加为 bond0 的 slave
nmcli connection add type ethernet \\
con-name bond0-slave-eth0 \\
ifname eth0 \\
master bond0

# 将 eth1 添加为 bond0 的 slave
nmcli connection add type ethernet \\
con-name bond0-slave-eth1 \\
ifname eth1 \\
master bond0

步骤 3:配置 Bond 接口的 IP 地址

# 配置静态 IP
nmcli connection modify bond0 \\
ipv4.addresses "192.168.1.100/24" \\
ipv4.gateway "192.168.1.1" \\
ipv4.dns "8.8.8.8,114.114.114.114" \\
ipv4.method manual

# 或配置 DHCP
nmcli connection modify bond0 ipv4.method auto

步骤 4:启用连接

# 启用 slave 连接
nmcli connection up bond0-slave-eth0
nmcli connection up bond0-slave-eth1

# 启用 Bond 连接
nmcli connection up bond0

步骤 5:关闭原网卡的独立 IP 连接(可选)

# 禁用 eth0、eth1 的独立连接(防止 IP 冲突)
nmcli connection modify eth0 connection.autoconnect no
nmcli connection modify eth1 connection.autoconnect no

方法二:使用配置文件(传统方式)

Bond 主接口配置

编辑修改 vim /etc/NetworkManager/system-connections/bond0.nmconnection 文件,修改 type = bond
[connection]
id=bond0
type=bond
interface-name=bond0
autoconnect=yes

[bond]
mode=active-backup
miimon=100

[ipv4]
method=manual
address1=192.168.1.100/24,192.168.1.1
dns=8.8.8.8;114.114.114.114;

[ipv6]
method=ignore
Slave 网卡配置(eth0):
[connection]
id=bond0-slave-eth0
type=ethernet
interface-name=eth0
master=bond0
slave-type=bond
autoconnect=yes
重新加载配置:
nmcli connection reload
nmcli connection up bond0
验证
# 查看 Bond 接口状态
cat /proc/net/bonding/bond0

# 查看网络连接状态
nmcli connection show

# 验证 IP 地址
ip addr show bond0

# 查看 Bond 成员状态
ip link show
/proc/net/bonding/bond0 输出示例(active-backup 模式):
Ethernet Channel Bonding Driver: v5.15.0

Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 (primary_reselect failure)
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: xx:xx:xx:xx:xx:xx
Slave queue ID: 0

常见问题

问题:mode 4(LACP)配置后流量仍集中在一块网卡
mode 4 的流量分配基于哈希算法(默认 layer2,即基于 MAC 地址),同一 TCP 会话的所有报文会通过同一成员链路传输。若需实现更细粒度的负载均衡,可调整哈希策略:
nmcli connection modify bond0 bond.options "mode=802.3ad,miimon=100,xmit_hash_policy=layer3+4"
layer3+4 基于 IP 和端口进行哈希,能更均匀地分配不同连接的流量。
问题:Bond 接口获取不到 DHCP 地址
检查成员网卡(eth0/eth1)的连接是否未启用独立 IP 配置:
nmcli connection show eth0 | grep autoconnect
问题:重启后 Bond 配置丢失
确认 NetworkManager 配置文件存在且正确:
ls /etc/NetworkManager/system-connections/
nmcli connection reload
nmcli connection show