Linux 網卡綁定 綁定技術可實現頻寬疊加或高可用性。本文聚焦 Mode 1 (Active-Backup 主備模式) 生產環境配置實踐,總結三大前提條件、配置步驟、驗證方法與常見陷阱。
service network restart:重啟網路服務會破壞 bonding 從屬關係,導致僅單網卡啟動。變更配置後請單獨 ifdown/ifup bond0 或重啟主機。DEVICE=bond0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
BROADCAST=192.168.1.255
ONBOOT=yes
TYPE=Ethernet
BONDING_OPTS="miimon=100 mode=1" # 也可寫在 modprobe.d
# ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
# ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
關鍵:MASTER=bond0 + SLAVE=yes 宣告從屬關係,BOOTPROTO=none 禁止獨立獲取 IP。
alias bond0 bonding
options bonding miimon=100 mode=1
miimon=100:MII Link 監測間隔 100ms (需網卡驅動支援 ethtool)。mode=1:Active-Backup,單一 Active 口傳輸,備用口監聽 Link 狀態。編輯 /etc/rc.d/rc.local 加入:
ifenslave bond0 eth0 eth1
現代系統 (RHEL 7+, systemd) 由網路腳本自動處理,通常無需此步。
ifconfig -a
# bond0, eth0, eth1 應顯示相同 MAC 地址 (bond0 MAC 為 Active 口 MAC)
# bond0 擁有 IP,eth0/eth1 無 IP
cat /proc/net/bonding/bond0
# 關鍵輸出:
# Bonding Mode: fault-tolerance (active-backup)
# Primary Slave: None
# Currently Active Slave: eth0
# MII Status: up
ping 192.168.1.100。ifdown eth0。timeout),隨後自動切換至 eth1 恢復通訊。ifup eth0,確認備用口切回或維持備用狀態。| 現象 | 原因 | 解決 |
|---|---|---|
| bond0 無 IP / 介面 DOWN | 從網卡未正確綁定 | 檢查 MASTER/SLAVE 參數、ifenslave 執行順序、模組參數 |
| MAC 地址不一致 | 驅動不支援 MAC 覆寫 | 確認驅動支援 NETIF_F_HW_VLAN_CTAG_TX 或設定 fail_over_mac=1 |
| 切換後流量不通 | 交換機 Port 未啟用 PortFast/邊緣埠 | 交換機端配置 spanning-tree portfast 減少封包轉發延遲 |
service network restart 後 bonding 失效 | 啟動腳本競態條件 | 嚴禁生產環境重啟 network 服務,改用 nmcli 或重啟主機 |
| Mode | 名稱 | 特性 | 適用場景 |
|---|---|---|---|
| 0 | balance-rr | 輪詢傳輸,需交換機支援聚合 | 高吞吐、單交換機 |
| 1 | active-backup | 主備容錯,無需交換機支援 | 高可用、異構交換機 |
| 2 | balance-xor | 基於 MAC/XOR 負載均衡 | 特定流量分發 |
| 3 | broadcast | 全傳輸,極高容錯 | 金融/工控雙路備份 |
| 4 | 802.3ad (LACP) | 動態鏈路聚合,需交換機配置 | 標準化頻寬疊加+容錯 |
| 5 | balance-tlb | 發送負載均衡,無需交換機支援 | 單邊部署提升發送頻寬 |
| 6 | balance-alb | 發送+接收負載均衡 (ARP 協商) | 單邊部署全雙工均衡 |
Mode 1 (Active-Backup) 是最穩健、相容性最佳的雙網卡冗余方案。牢記「物理機驗證、同型號網卡、拒絕 network restart」三鐵律,配合 miimon 連結監測與交換機 PortFast,可構建企業級高可用網路基礎設施。