Skip to content

Linux_Bonding网卡聚合_配置实战

确保系统已安装 NetworkManager:

bash
# RHEL/CentOS/Rocky Linux
yum install NetworkManager -y

# Ubuntu/Debian  
apt-get install NetworkManager -y

核心原理解析

Linux Bonding(网卡绑定)通过内核模块将多个物理网卡虚拟化为单个逻辑接口,实现网络冗余和负载均衡。Mode 4(802.3ad)基于IEEE 802.3ad标准,通过LACP协议与交换机协商动态链路聚合。

哈希策略原理

  • layer3+4:基于三层IP地址和四层端口号进行哈希,确保同一TCP/UDP会话的所有数据包通过同一物理链路,避免乱序
  • miimon=100:每100毫秒检测链路状态,快速发现故障

配置实战

场景一:前端业务网卡聚合配置

bash
# 创建 bond0 接口,设置模式为 4(802.3ad LACP)
nmcli connection add type bond con-name front-bond ifname front-bond mode 802.3ad

# 将物理网卡 p16p1 和 p1p1 加入到 bond0 中
nmcli connection add type ethernet ifname p16p1 master front-bond
nmcli connection add type ethernet ifname p1p1 master front-bond

# 为 bond0 配置静态IP地址、网关和DNS
nmcli connection modify front-bond \
    ipv4.addresses 172.18.20.21/16 \
    ipv4.gateway 172.18.0.254 \
    ipv4.dns 172.18.0.254 \
    ipv4.method manual

# 启动 bond0 连接
nmcli connection up front-bond

场景二:后端存储网卡聚合配置(一行命令版)

bash
# 完整的后端bond配置命令链
nmcli c a type bond con-name bond-back ifname bond-back mode 4; \
nmcli c a type ethernet con-name enp202s0f0np0-bond-back ifname enp202s0f0np0 master bond-back; \
nmcli c a type ethernet con-name enp203s0f0np0-bond-back ifname enp203s0f0np0 master bond-back; \
nmcli c m bond-back ipv4.address 172.19.9.3/16 ipv4.method manual; \
nmcli c up bond-back

优化配置:调整哈希策略

查看当前bond状态

bash
# 查看bond0的详细状态和哈希策略
cat /proc/net/bonding/front-bond

优化哈希策略为layer3+4

bash
# 修改bond的哈希策略和LACP参数
nmcli connection modify front-bond \
    bond.options "miimon=100,mode=4,lacp_rate=fast,xmit_hash_policy=layer3+4"

# 重新激活配置使其生效
nmcli connection up front-bond

参数详解

  • miimon=100:链路监控间隔100ms,快速故障检测
  • mode=4:802.3ad LACP模式,需要交换机支持
  • lacp_rate=fast:LACP包发送频率设为快速模式(1秒)
  • xmit_hash_policy=layer3+4:基于IP+端口哈希,优化TCP/UDP性能

验证与故障排查

验证bond状态

bash
# 查看bond聚合状态
cat /proc/net/bonding/front-bond

# 查看NetworkManager连接状态
nmcli connection show

# 查看网络接口详细信息
ip addr show front-bond

常见问题排查

  1. bond状态显示down

    bash
    # 检查物理网卡状态
    nmcli device status
    
    # 检查交换机端口LACP配置
    # 确保交换机端口已启用LACP并配置为active模式
  2. 哈希策略未生效

    bash
    # 确认配置已应用
    nmcli connection show front-bond | grep bond.options
    
    # 重新加载配置
    nmcli connection reload
    nmcli connection up front-bond

⚠️ 风险提示:生产环境修改网络配置前,建议通过控制台访问,避免网络中断导致无法连接。建议在维护窗口期执行,并准备回滚方案。

用心记录,持续学习 | CNB