如何在 Rocky Linux 中配置双网卡绑定(Bonding)?

问题浏览数Icon
8
问题创建时间Icon
2025-05-27 07:26:00
作者头像
windstar99

在Rocky Linux中配置双网卡绑定需通过内核bonding驱动实现,实践流程如下:

  1. 环境检查

    • 确认双网卡名称(如ens192、ens224)及物理链路状态
    • modprobe bonding加载内核模块,lsmod | grep bonding验证
  2. 配置bond接口
    创建/etc/sysconfig/network-scripts/ifcfg-bond0

    DEVICE=bond0  
    TYPE=Bond  
    IPADDR=192.168.1.10  
    NETMASK=255.255.255.0  
    GATEWAY=192.168.1.1  
    BONDING_OPTS="mode=6 miimon=100 updelay=3000 downdelay=3000"  
  3. 配置从属网卡
    修改ens192/ens224配置文件,仅保留:

    DEVICE=ens192  
    MASTER=bond0  
    SLAVE=yes  
  4. 重启服务
    systemctl restart NetworkManager
    ip link show bond0检查状态

核心挑战与解决方案

  • 模式选择冲突:生产环境推荐mode=4(LACP),但需交换机配合启用802.3ad。曾遇到未配置LACP导致绑定失效,通过交换机侧启用动态聚合解决。
  • 链路监测失效:miimon参数需与网卡协商速率匹配,曾因miimon=100但网卡为万兆全双工导致误判故障,调整为miimon=50 carrier_sleep=4000后稳定。
  • 驱动兼容性问题:某些Intel X520网卡需额外配置downdelay=4000避免瞬断触发保护机制,通过ethtool -K ens192 gro off关闭GRO特性优化。

验证命令
cat /proc/net/bonding/bond0查看从属接口状态及传输流量分布,mii-tool -v检查物理链路协商情况。建议部署后通过拔插网线测试故障切换耗时,正常应在3秒内完成切换。

更多回答

作者头像
earwen

在Rocky Linux中配置双网卡绑定(Bonding)需通过以下步骤实现:

  1. 内核模块加载

    • 执行 modprobe bonding 加载bonding模块,并通过 /etc/modules-load.d/bonding.conf 确保开机加载。
  2. 创建Bond接口

    • 使用 nmcli connection add type bond con-name bond0 ifname bond0 mode <mode> 创建bond接口(如mode=4需LACP支持)。
    • 指定IP:nmcli connection modify bond0 ipv4.addresses <IP/掩码> ipv4.method manual
  3. 绑定物理网卡

    • 添加Slave设备:
      nmcli connection add type bond-slave ifname eth0 master bond0
      nmcli connection add type bond-slave ifname eth1 master bond0
    • 激活:nmcli connection up bond0
  4. 参数优化

    • /etc/sysctl.conf 中设置 net.core.bonding_miimon=100 确保链路监控。
  5. 验证与测试

    • 查看状态:cat /proc/net/bonding/bond0,检查Slave状态及传输模式。
    • 模拟链路故障:拔除单网线,验证流量自动切换。

架构建议

  • 生产环境推荐mode=4(802.3ad)需交换机配置LACP聚合组。
  • 若需高可用但无交换机支持,可使用mode=1(主动备份)。
  • 使用 ethtool -S <interface> 监控丢包及错误计数,确保硬件兼容性。