centos配置bond4

在CentOS上配置bond4(802.3ad动态链路聚合),以下是详细步骤:

1. 环境准备

# 查看网卡信息
ip link show
nmcli connection show
lspci | grep -i ethernet

# 确保系统已安装必要的工具
yum install -y teamd NetworkManager-team

2. 创建bond4接口(使用NetworkManager)

方法1:使用nmcli命令行配置

# 创建bond4接口
nmcli connection add type bond con-name bond4 ifname bond4 mode 802.3ad

# 配置IP地址
nmcli connection modify bond4 ipv4.addresses 192.168.1.100/24
nmcli connection modify bond4 ipv4.gateway 192.168.1.1
nmcli connection modify bond4 ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify bond4 ipv4.method manual

# 配置bond参数
nmcli connection modify bond4 bond.options "mode=802.3ad,miimon=100,lacp_rate=fast,xmit_hash_policy=layer3+4"

# 将物理网卡添加到bond
nmcli connection add type ethernet con-name eth0-slave ifname eth0 master bond4 slave-type bond
nmcli connection add type ethernet con-name eth1-slave ifname eth1 master bond4 slave-type bond

# 启用所有连接
nmcli connection up bond4
nmcli connection up eth0-slave
nmcli connection up eth1-slave

方法2:手动配置文件(CentOS 7/RHEL 7)

# 备份原有配置
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0.backup
cp ifcfg-eth1 ifcfg-eth1.backup

# 创建bond配置文件 /etc/sysconfig/network-scripts/ifcfg-bond4
cat > ifcfg-bond4 << EOF
DEVICE=bond4
NAME=bond4
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_policy=layer3+4"
EOF

# 配置eth0作为slave
cat > ifcfg-eth0 << EOF
DEVICE=eth0
NAME=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond4
SLAVE=yes
USERCTL=no
EOF

# 配置eth1作为slave
cat > ifcfg-eth1 << EOF
DEVICE=eth1
NAME=eth1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond4
SLAVE=yes
USERCTL=no
EOF

3. bond4参数详解

# bond4 (802.3ad) 常用参数:
# mode=4              # 802.3ad动态链路聚合
# miimon=100          # 链路监控间隔(毫秒)
# lacp_rate=fast      # LACP速率(0=slow,1=fast)
# xmit_hash_policy    # 传输哈希策略
#   =layer2           # 默认,基于MAC地址
#   =layer2+3         # 基于MAC和IP
#   =layer3+4         # 基于IP和端口(推荐)
# ad_select=0         # 活动端口选择算法

4. 验证bond配置

# 查看bond状态
cat /proc/net/bonding/bond4

# 查看网络接口
ip addr show bond4
ip link show

# 查看bond统计信息
cat /sys/class/net/bond4/bonding/mode
cat /sys/class/net/bond4/bonding/slaves
cat /sys/class/net/bond4/bonding/mii_status

# 使用nmcli查看
nmcli connection show bond4
nmcli device status

5. 配置文件示例(完整版)

# /etc/sysconfig/network-scripts/ifcfg-bond4
DEVICE=bond4
NAME=bond4
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_policy=layer3+4 ad_select=0 downdelay=200 updelay=0"

# /etc/modprobe.d/bonding.conf(可选)
alias bond4 bonding
options bonding mode=4 miimon=100 max_bonds=1

6. 测试bond功能

# 重启网络服务
systemctl restart network  # CentOS 7
systemctl restart NetworkManager  # CentOS 8+

# 测试网络连通性
ping -I bond4 8.8.8.8
ping -I bond4 192.168.1.1

# 模拟链路故障测试
# 拔掉一个网线,观察bond状态
cat /proc/net/bonding/bond4

# 查看流量统计
cat /proc/net/bonding/bond4

# 测试负载均衡
iperf3 -s -B bond4  # 服务器端
iperf3 -c 192.168.1.100 -B bond4 -t 60  # 客户端

7. 故障排查

# 查看bond详细状态
cat /proc/net/bonding/bond4

# 查看内核日志
dmesg | grep -i bond
journalctl -xe | grep -i bond

# 查看模块信息
modinfo bonding

# 重启bond接口
ifdown bond4 && ifup bond4

# 检查交换机配置
# 确保交换机端口配置为LACP模式

8. 简化脚本

#!/bin/bash
# CentOS Bond4配置脚本

BOND_NAME="bond4"
BOND_IP="192.168.1.100"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.1"
DNS1="8.8.8.8"
DNS2="8.8.4.4"
NICS=("eth0" "eth1")  # 修改为你的网卡名称

# 创建bond配置文件
cat > /etc/sysconfig/network-scripts/ifcfg-$BOND_NAME << EOF
DEVICE=$BOND_NAME
NAME=$BOND_NAME
TYPE=Bond
BONDING_MASTER=yes
IPADDR=$BOND_IP
NETMASK=$NETMASK
GATEWAY=$GATEWAY
DNS1=$DNS1
DNS2=$DNS2
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=4 miimon=100 lacp_rate=fast xmit_hash_policy=layer3+4"
EOF

# 配置slave网卡
for NIC in "${NICS[@]}"; do
    cat > /etc/sysconfig/network-scripts/ifcfg-$NIC << EOF
DEVICE=$NIC
NAME=$NIC
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=$BOND_NAME
SLAVE=yes
USERCTL=no
EOF
done

# 重启网络
systemctl restart network

echo "Bond4配置完成!"
echo "请检查配置: cat /proc/net/bonding/$BOND_NAME"

注意事项:

  1. 交换机配置:必须将交换机端口配置为LACP模式
  2. 网卡兼容性:确保所有网卡型号相同或兼容
  3. 性能测试:配置后务必进行性能测试
  4. 备份配置:配置前备份原有网络配置
  5. 物理连接:确保所有网卡物理连接正常

bond模式对比:

模式类型优点缺点
mode=0轮询负载均衡需要交换机支持
mode=1主备高可用带宽无增加
mode=4LACP负载均衡+高可用需要交换机LACP支持
mode=6平衡自适应性能较差

对于生产环境,推荐使用mode=4(802.3ad)以获得最佳性能和可靠性。

发表回复

后才能评论