网络绑定 Bonding 冗余配置教程

Linux 网络 Bonding(也称为链路聚合或 NIC Teaming)是一种将多块物理网卡绑定为一个逻辑网卡的技术。通过 Bonding 可以实现网络链路的冗余备份和带宽叠加,当某条链路故障时自动切换到另一条链路,保证网络服务不中断。本文将详细介绍 Bonding 的各种工作模式和在 Linux 系统上的配置方法。

一、Bonding 工作模式

Linux Bonding 支持七种工作模式(mode 0-6),不同模式适用于不同场景:

  • Mode 0(balance-rr):轮询模式,数据包依次通过各网卡发送,提供负载均衡和容错能力。
  • Mode 1(active-backup):主备模式,同一时间只有一块网卡活动,主网卡故障时自动切换到备用网卡。最常用的模式。
  • Mode 2(balance-xor):XOR 模式,基于源和目的 MAC 地址的哈希进行负载均衡。
  • Mode 3(broadcast):广播模式,所有数据同时通过所有网卡发送,提供最高的容错能力。
  • Mode 4(802.3ad):IEEE 802.3ad 动态链路聚合,需要交换机支持 LACP 协议。
  • Mode 5(balance-tlb):自适应传输负载均衡,出站流量负载均衡,不需要交换机特殊支持。
  • Mode 6(balance-alb):自适应负载均衡,出入站流量均可负载均衡。

二、加载 Bonding 内核模块

modprobe bonding
echo "bonding" >> /etc/modules-load.d/bonding.conf

验证模块加载:

lsmod | grep bonding

三、使用 Netplan 配置(Ubuntu 18.04+)

cat > /etc/netplan/01-bonding.yaml <<EOF
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      dhcp4: no
    eth1:
      dhcp4: no
  bonds:
    bond0:
      interfaces:
        - eth0
        - eth1
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
      parameters:
        mode: active-backup
        primary: eth0
        mii-monitoring-interval: 100
        fail-over-delay-ms: 200
EOF

netplan apply

四、使用 NetworkManager 配置(CentOS/RHEL)

# 创建 Bond 接口
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup

# 添加从属网卡
nmcli con add type ethernet con-name bond0-eth0 ifname eth0 master bond0
nmcli con add type ethernet con-name bond0-eth1 ifname eth1 master bond0

# 配置 IP 地址
nmcli con mod bond0 ipv4.addresses "192.168.1.10/24"
nmcli con mod bond0 ipv4.gateway "192.168.1.1"
nmcli con mod bond0 ipv4.dns "8.8.8.8"
nmcli con mod bond0 ipv4.method manual

# 配置 Bond 参数
nmcli con mod bond0 bond.options "mode=active-backup,miimon=100,primary=eth0"

# 启动
nmcli con up bond0

五、使用传统配置文件

对于 CentOS 7 或其他使用传统网络脚本的系统:

cat > /etc/sysconfig/network-scripts/ifcfg-bond0 <<EOF
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="mode=1 miimon=100 primary=eth0"
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth0 <<EOF
DEVICE=eth0
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
EOF

cat > /etc/sysconfig/network-scripts/ifcfg-eth1 <<EOF
DEVICE=eth1
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
ONBOOT=yes
BOOTPROTO=none
EOF

systemctl restart network

六、验证 Bonding 状态

# 查看 Bond 详细状态
cat /proc/net/bonding/bond0

# 查看网卡状态
ip link show bond0
ip addr show bond0

# 查看从属接口
cat /sys/class/net/bond0/bonding/slaves

七、故障切换测试

模拟网卡故障进行切换测试:

# 关闭主网卡
ip link set eth0 down

# 观察 Bond 状态变化
cat /proc/net/bonding/bond0

# 测试网络连通性
ping -c 4 192.168.1.1

# 恢复主网卡
ip link set eth0 up

八、监控参数

  • miimon:MII 链路监控间隔(毫秒),推荐 100ms。
  • downdelay:链路断开后延迟切换时间,避免链路抖动导致频繁切换。
  • updelay:链路恢复后延迟切回时间。
  • arp_interval:ARP 监控间隔,可替代 MII 监控。
# 使用 ARP 监控代替 MII
BONDING_OPTS="mode=1 arp_interval=1000 arp_ip_target=192.168.1.1"

九、常见问题

Bonding 接口无法获取 IP

确认从属网卡的配置文件中没有设置 IPADDR,IP 地址应该只在 Bond 接口上配置。

故障切换延迟过高

减小 miimon 值和 downdelay 值可以加快故障检测和切换速度。

总结

网络 Bonding 是保障网络连接高可用的重要技术,Mode 1 主备模式是最常用且最稳定的方案。虽然搬瓦工 VPS 通常只有单网卡,但掌握 Bonding 技术对于管理物理服务器和多网卡 VPS 非常有价值。配合 Keepalived 高可用配置 可以构建更完善的冗余架构。购买搬瓦工 VPS 请查看 全部方案,使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买链接:bwh81.net

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。