绑定(Bonding)可以说是 Linux 系统的核心特性,它可以将多个网络接口(例如 ens33 和 ens55)聚合成一个虚拟的网络端口,这被称为管道绑定。端口绑定不仅可以提高网络吞吐量,还提高了网络的冗余性。
网络绑定提供了7种模式,我们可以根据实际需要进行相应的配置。链路聚合控制协议(LACP – Mode 4(802.3ad))是应用最为广泛的绑定模式,因为它既支持链路聚合,又支持端口冗余。
本文将详细演示如何在 CentOS 系统配置端口绑定。
1] 配置端口绑定的条件
- 网络设备支持 LACP 以启用端口绑定
- Linux 系统至少包含两个网络接口
- 如果是物理服务器,我们建议将板载网络接口和 PCI 网络接口进行端口绑定,以避免出现单点故障时影响绑定效果
2] 检查系统是否支持端口绑定
使用如下命令检查使用的 Linux 系统是否已经启用了端口绑定功能:
# lsmod | grep -i bonding
示例显示如下,则表示系统已经启用了端口绑定:

图.1 检查端口绑定功能是否启用
如果没有输出相应信息,则可以使用如下命令手动开启端口绑定功能:
# modprobe bonding
3] 创建绑定接口
首先在”/etc/sysconfig/network-scripts/”目录创建一个绑定接口文件”ifcfg-bond0″,根据自己的网络配置,设置绑定接口的 IP 地址、子网掩码以及网关等信息,示例配置如下:
TYPE=Bond DEVICE=bond0 NAME=bond0 BONDING_MASTER=yes BOOTPROTO=none ONBOOT=yes IPADDR=192.168.209.253 NETMASK=255.255.255.0 GATEWAY=192.168.209.2 BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
对于配置项的说明如下:
- BONDING_MASTER=yes:用于表示该接口为绑定接口主设备
- mode=4:绑定模式为 802.3ad (LACP)
- miimon=100:用于设置 MII(Media Independent Interface)接口监视时间间隔,以毫秒为单位,监视所有从接口是否工作正常。0 值表示不监视,100则为一个相对合理的设置值
- lacp_rate=1:该选项指定我们要求链接伙伴每 1 秒发送一次 LACPDU 的速率,默认为慢速,值为0
4] 添加从接口
使用”ifconfig”命令,可以查看当前主机的接口情况,示例主机的接口信息如下:

图.2 主机接口信息
可以看到,主机有两个网络接口”ens33″和”ens34″,这两个接口将做为绑定接口的从接口配置端口绑定。
分别编辑两个接口的配置文件”/etc/sysconfig/network-scripts/ens33″和”/etc/sysconfig/network-scripts/ens34″,内容分别如下:
# /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=Ethernet BOOTPROTO=none DEVICE=ens33 ONBOOT=yes MASTER=bond0 SLAVE=yes # /etc/sysconfig/network-scripts/ifcfg-ens34 TYPE=Ethernet BOOTPROTO=none DEVICE=ens34 ONBOOT=yes MASTER=bond0 SLAVE=yes
5] 验证端口绑定
配置完成后,重新启动网络:
# systemctl restart network
之后使用”ip a”命令查看网络信息:

图.3 查看主机端口绑定信息
可以看到,网络接口”ens33″和”ens34″都已经成功加入绑定端口,并且绑定端口使用了设置的 IP 地址。
使用如下命令,可以查看绑定端口的详细信息:
# cat /proc/net/bonding/bond0
输出信息如下:
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
802.3ad info
LACP rate: fast
Min links: 0
Aggregator selection policy (ad_select): stable
System priority: 65535
System MAC address: 00:0c:29:ec:9a:29
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 1
Actor Key: 9
Partner Key: 1
Partner Mac Address: 00:00:00:00:00:00
Slave Interface: ens33
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ec:9a:29
Slave queue ID: 0
Aggregator ID: 1
Actor Churn State: none
Partner Churn State: churned
Actor Churned Count: 0
Partner Churned Count: 1
details actor lacp pdu:
system priority: 65535
system mac address: 00:0c:29:ec:9a:29
port key: 9
port priority: 255
port number: 1
port state: 79
details partner lacp pdu:
system priority: 65535
system mac address: 00:00:00:00:00:00
oper key: 1
port priority: 255
port number: 1
port state: 1
Slave Interface: ens34
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:ec:9a:33
Slave queue ID: 0
Aggregator ID: 2
Actor Churn State: churned
Partner Churn State: churned
Actor Churned Count: 1
Partner Churned Count: 1
details actor lacp pdu:
system priority: 65535
system mac address: 00:0c:29:ec:9a:29
port key: 9
port priority: 255
port number: 2
port state: 71
details partner lacp pdu:
system priority: 65535
system mac address: 00:00:00:00:00:00
oper key: 1
port priority: 255
port number: 1
port state: 1
此时,我们手动停止一个网络接口,看网络是否会中断,来验证端口绑定的冗余功能:
# ifdown ens34 # cat /proc/net/bonding/bond0

图.4 测试端口绑定冗余性
可以看到,虽然有一个网络接口手动停止,但这并没有中断网络,因为绑定组中还有一个端口可以正常工作,则绑定组即可正常工作。
在本教程中,我们演示了如何 CentOS 系统上配置网络绑定的简单步骤。希望有助于各位了解如何配置 LACP 绑定。