將多張實體網卡聚合為單一邏輯介面 (bond0),可提升頻寬 (負載平衡) 或提供容錯 (主備)。本文以 RedHat/CentOS/RHEL 系列為例,詳細說明 mode=1 (active-backup) 主備模式的完整配置步驟、參數說明與驗證方法。
| Mode | 名稱 | 特性 | 需交換機支援 |
|---|---|---|---|
| 0 | balance-rr | 輪詢傳輸,負載平衡 | 需 LAG/Static LACP |
| 1 | active-backup | 單一作用,其餘備援,**最簡單、相容性最好** | 不需要 |
| 2 | balance-xor | 基於 MAC/XOR 負載平衡 | 需 Static LACP |
| 3 | broadcast | 全傳送,極高容錯 | 需特殊配置 |
| 4 | 802.3ad (LACP) | 動態鏈路聚合,負載平衡+容錯 | **必須** 交換機支援 LACP |
| 5 | balance-tlb | 傳輸負載平衡,無需交換機 | 不需要 |
| 6 | balance-alb | 適應性負載平衡 (含 ARP 協商) | 不需要 |
eth0、eth1 (兩張實體網卡)。bond0,IP 192.168.1.2/24,GW 192.168.1.1。mode=1 (主備),miimon=100 (100ms 鏈路檢測)。# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
USERCTL=no
BONDING_OPTS="mode=1 miimon=100"
# /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no
HWADDR=00:15:17:CC:FC:35 # 實體 MAC,防止介面名稱漂移
# ifcfg-eth1 同理,只改 DEVICE=eth1、HWADDR=對應 MAC
# /etc/modprobe.d/bonding.conf
alias bond0 bonding
options bonding mode=1 miimon=100
或直接在 ifcfg-bond0 的 BONDING_OPTS 傳遞 (NetworkScripts 會自動處理)。
systemctl restart network
# 或
nmcli con reload && nmcli con up bond0
# 驗證
cat /proc/net/bonding/bond0
# 輸出關鍵:
# Bonding Mode: fault-tolerance (active-backup)
# Primary Slave: eth0
# Currently Active Slave: eth0
# MII Status: up
ip addr show bond0
ping -I bond0 192.168.1.1
nmcli con add type bond con-name bond0 ifname bond0 mode active-backup ipv4.addresses 192.168.1.2/24 ipv4.gateway 192.168.1.1 ipv4.dns 8.8.8.8 ipv4.method manual
nmcli con add type ethernet con-name bond0-slave-eth0 ifname eth0 master bond0 slave-type bond
nmcli con add type ethernet con-name bond0-slave-eth1 ifname eth1 master bond0 slave-type bond
nmcli con up bond0
arp_interval + arp_ip_target (mode 0/2/4) 或上層路由協議 (VRRP/BGP) 故障切換。macaddress=XX:XX:XX:XX:XX:XX 於 ifcfg-bond0。bond0.100 子介面,VLAN=yes 在 bond 設定中。ethtool -K eth0 rx on tx on 硬體卸載。/proc/net/bonding/bond0 狀態納入 Prometheus/Zabbix。完成上述配置,你的伺服器即擁有高可用的網路介面,單張網卡或纜線故障將自動無感切換。