Linux配置雙網路卡繫結實現負載均衡和高可用性配置

weixin_33727510發表於2017-07-14

1. Bonding簡述

雙網路卡配置設定虛擬為一個網路卡實現網路卡的冗餘,其中一個網路卡壞掉後網路通訊仍可正常使用,實現網路卡層面的負載均衡和高可用性

1.1 Bonding原理

網路卡工作在混雜(promisc)模式,接收到達網路卡的所有資料包,tcpdump工作用的也是混雜模式(promisc),將兩塊網路卡的MAC地址修改為相同接收特定MAC的資料幀,然後把相應的資料幀傳送給bond驅動程式進行處理。

1.2 Bonding模式

  • 輪詢策略,值為0,按照裝置順序依次傳輸資料包,提供負載均衡和容錯能力

  • 主備策略,值為1,只有主網路卡處於工作狀態,備網路卡處於備用狀態,主網路卡壞掉後備網路卡開始工作,提供容錯能力

  • 異或策略,值為2,根據源MAC地址和目的MAC地址進行異或計算的結果來選擇傳輸裝置,提供負載均衡和容錯能力

  • 廣播策略,值為3,將所有資料包傳輸給所有介面通過全部裝置來傳輸所有資料,一個報文會複製兩份通過bond下的兩個網路卡分別傳送出去,提供高容錯能力

  • 動態連結聚合,值為4,按照802.3ad協議的聚合自動配置來共享相同的傳輸速度,網路卡頻寬最高可以翻倍,鏈路聚合控制協議(LACP)自動通知交換機聚合哪些埠,需要交換機支援 802.3ad協議,提供容錯能力

  • 輸出負載均衡模式,值為5,輸出負載均衡模式,只有輸出實現負載均衡,輸入資料時則只選定其中一塊網路卡接收,需要網路卡和驅動支援ethtool命令

  • 輸入/輸出負載均衡模式,值為6,輸入和輸出都實現負載均衡,需要網路卡和驅動支援ethtool命令

2. 配置步驟

  1. 進入網路卡配置目錄
# cd /etc/sysconfig/network-scripts
  1. 建立雙網路卡繫結配置檔案
# vi ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.1.3
NETMASK=255.255.255.0
#GATEWAY=192.168.1.254
ONBOOT=yes
USERCTL=no
MOCK=yes
NM_Cmock=no
BONDING_OPTS="mode=1 miimon=100"
  1. 修改繫結網路卡

建議:在網路卡繫結前,先對先前的網路卡配置資訊進行備份

  • 修改網路卡1配置
# vi ifcfg-em1
DEVICE=em1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethemet
USERCTL=no
MASTER=bond0
SLAVE=yes  
  • 修改網路卡2配置
# vi ifcfg-em2
DEVICE=em2
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethemet
USERCTL=no
MASTER=bond0
SLAVE=yes 
  1. 配置modprobe引數

注意:redhat6 以後沒有了modprobe.conf這個配置檔案。

vi /etc/modprobe.d/dist.conf
alias bond0 bonding
-- options bond0中mode=1表示的是網路卡互備
options bond0 mode=1 miimon=50 
  1. 關閉網路管理程式
# service  NetworkManager stop 
# chkconfig NetworkManager off 
  1. 重啟網路

說明:如果重啟網路後不能ping通網路, 需要重啟一下機器。

# service network restart
  1. 檢視當前使用網路卡資訊
# cat /proc/net/bonding/bond0

相關文章