CentOS7上配置网络接口绑定bonding
在 CentOS 7 上配置网络接口绑定(bonding)是一个常见的操作,可以通过命令行工具或配置文件实现。以下是基于 CentOS 7 的详细步骤,假设您要将两个网卡(如 eth0 和 eth1)绑定为一个 bond0 接口。
前提条件
- 确保有多个网卡可用(用
ip link
查看接口名称,例如 eth0、eth1)。 - 以 root 权限操作(或使用 sudo)。
- 根据需要确认交换机是否支持 LACP(仅 Mode 4 需要)。
绑定模式
以下是一些常见的 bonding 模式:
- **Mode 0 (balance-rr)**:轮询模式,流量按顺序分配给每个 ethX 接口,提供负载均衡和容错。
- **Mode 1 (active-backup)**:主备模式,只有一个 ethX 接口活跃,其他作为备用,适合需要高可用性的场景。
- **Mode 4 (802.3ad)**:也叫 LACP(链路聚合控制协议),需要交换机支持,提供动态负载均衡和容错。
方法:手动配置 Bonding
CentOS 7 默认使用 NetworkManager 管理网络,但也可以通过编辑配置文件实现 bonding。
步骤 1:检查现有网络接口
运行以下命令查看当前网卡:
1 | ip link |
输出示例:
1: lo: <LOOPBACK,UP> mtu 65536 ...
2: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 ...
3: eth1: <BROADCAST,MULTICAST,UP> mtu 1500 ...
步骤 2:创建 Bond 接口配置文件
网络配置文件位于 /etc/sysconfig/network-scripts/
目录下。
- 创建 bond0 的配置文件:根据您的 Bonding 模式填写内容:
1
vi /etc/sysconfig/network-scripts/ifcfg-bond0
Mode 0 (balance-rr) 示例:
1 | DEVICE=bond0 |
Mode 1 (active-backup) 示例:
DEVICE=bond0
TYPE=Bond
NAME=bond0
BONDING_MASTER=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100"
Mode 4 (802.3ad) 示例:
1 | DEVICE=bond0 |
BONDING_OPTS
参数说明:mode
:绑定模式(0 为balance-rr ,1 为 active-backup,4 为 802.3ad)。miimon
:链路监测间隔(毫秒),100 表示每 100ms 检查一次。lacp_rate
:仅 Mode 4 使用,设置 LACP 数据包发送速率(fast 或 slow)。
修改从属接口配置文件(eth0 和 eth1):
1
vi /etc/sysconfig/network-scripts/ifcfg-eth0
内容:
1
2
3
4
5
6
7TYPE=Ethernet
NAME=eth0
DEVICE=eth0
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none1
vi /etc/sysconfig/network-scripts/ifcfg-eth1
内容:
1
2
3
4
5
6
7TYPE=Ethernet
NAME=eth1
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
步骤 3:加载 Bonding 模块
确保 bonding 模块已加载:
1 | modprobe bonding |
检查是否成功:
1 | lsmod | grep bonding |
步骤 4:重启网络服务
应用配置:
1 | systemctl restart network |
如果使用 NetworkManager:
1 | nmcli con reload |
步骤 5:验证 Bonding 是否生效
- 检查 bond0 状态:输出会显示模式、活动接口和从属接口的状态。
1
2
3
4
5# view bonding stats
cat /proc/net/bonding/bond0
# view bonding style
cat /sys/class/net/bond0/bonding/mode
active-blackup
1 | [root@vgt-rocky9-60 network-scripts]# cat /proc/net/bonding/bond0 |
balance-rr
1 | [root@vgt-rocky9-60 ~]# cat /proc/net/bonding/bond0 |
检查 IP 配置:
1
ip addr show bond0
测试网络连通性:
1
ping 192.168.1.1
使用 nmcli 配置 Bonding(可选)
如果您更喜欢命令行工具,可以直接用 nmcli
配置:
- 创建 bond 接口:或 Mode 4:
1
nmcli con add type bond ifname bond0 mode active-backup ip4 192.168.1.100/24 gw4 192.168.1.1
或Mode0 balance-rr1
nmcli con add type bond ifname bond0 mode 802.3ad ip4 192.168.1.100/24 gw4 192.168.1.1
nmcli con add type bond ifname bond0 mode balance-rr ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1
添加从属接口:
1
2nmcli con add type ethernet ifname eth0 master bond0
nmcli con add type ethernet ifname eth1 master bond0激活 bond:
1
nmcli con up bond0
bond active-backup
nmcli con add type bond ifname bond0 mode active-backup ip4 192.168.1.10/24 gw4 192.168.1.1
nmcli con add type ethernet ifname eth0 master bond0
nmcli con add type ethernet ifname eth1 master bond0
nmcli con up bond0
bond balance-rr
1 | nmcli con add type bond ifname bond0 mode balance-rr ipv4.method manual ipv4.addresses 192.168.1.10/24 ipv4.gateway 192.168.1.1 |
- 查看状态:
1
2
3nmcli con show
cat /proc/net/bonding/bond0
ethtool eth0 #检查链路状态
持久化:nmcli 配置会自动保存到 /etc/NetworkManager/system-connections/ 下,重启后仍有效
注意事项
- 如果交换机不支持 LACP,使用 Mode 1 而不是 Mode 4。
- 配置完成后,建议拔掉一根网线测试故障切换(Mode 1)或负载均衡(Mode 4)。
- 如果遇到问题,检查日志:
1
journalctl -u network
如果ethx ethy已经存在ip,配置文件形式,删除或者修改正常,重启系统后观察bondx网卡状态。