1. 程式人生 > >Linux設定網絡卡bond

Linux設定網絡卡bond

原理:

多塊網絡卡虛擬成一張,實現冗餘;多張網絡卡對外顯示一張,具有同一個IP;

對於多物理網絡卡的 Bond 網絡卡而言,其中一塊物理網絡卡會被設定為 Master,其他的網絡卡都是 Slave,Bond 網絡卡的 MAC 地址取自標誌為 Master 的物理網絡卡,然後將這個 MAC 地址複製到其他物理網絡卡上;

 

工作模式:

 注意:在主備模式下 , 只有主網絡卡 eth0 工作,eth1 作為備份網絡卡是不工作的,只有當一個網路介面失效時 ( 例如主交換機掉電等 ),為了不會出現網路中斷,系統會按照配置指定的網絡卡順序啟動工作,保證機器仍能對外服務,起到了失效保護的功能。在負載均衡模式下,由於兩塊網絡卡都正常工作,它能提供兩倍的頻寬,在這種情況下出現一塊網絡卡失效,僅僅會是伺服器出口頻寬下降,也不會影響網路使用。

一共有以下模式。

  • Mode=0(balance-rr) 表示負載分擔round-robin,和交換機的聚合強制不協商的方式配合。
  • Mode=1(active-backup) 表示主備模式,只有一塊網絡卡是active,另外一塊是備的standby,這時如果交換機配的是捆綁,將不能正常工作,因為交換機往兩塊網絡卡發包,有一半包是丟棄的。
  • Mode=2(balance-xor) 表示XOR Hash負載分擔,和交換機的聚合強制不協商方式配合。(需要xmit_hash_policy)
  • Mode=3(broadcast) 表示所有包從所有interface發出,這個不均衡,只有冗餘機制...和交換機的聚合強制不協商方式配合。
  • Mode=4(802.3ad) 表示支援802.3ad協議,和交換機的聚合LACP方式配合(需要xmit_hash_policy)
  • Mode=5(balance-tlb) 是根據每個slave的負載情況選擇slave進行傳送,接收時使用當前輪到的slave
  • Mode=6(balance-alb) 在5的tlb基礎上增加了rlb。

   

配置操作

前提:測試環境qinlin7

注意:兩張網絡卡需要保證在同一網段,若一張配置成trunk,未修改,也可以繫結成功,但是當down一張網絡卡時,網路就會變為不可用;

1、新增並更改ifcfg-bond0

DEVICE=bond0

IPADDR=10.10.132.139

NETMASK=255.255.255.0

GATEWAY=10.10.132.254

ONBOOT=yes

BOOTPROTO=yes

說明:截圖中的USERCTL引數可以不設定!!

2、編輯ifcfg-eth0

BOOTPROTO=none

DEVICE=eth0

MASTER=bond0

SLAVE=yes            ##注意:若配置,則不需要再配置/etc/rc.d/rc.local,重複配置會出錯!!

ONBOOT=yes

GWADDR=00:50:56:a1:6b:c5                 ###可以不要

3、編輯ifcfg-eth1

BOOTPROTE=none

DEVICE=eth1

MASTER=bond0

SLAVE=yes

ONBOOT=yes

HQADDR=00:50:a1:3f:73                       ###可以不要

4、此係統中沒有/etc/modprobe.conf 

則編輯# vim /etc/modprobe.d/mlx4.conf 

alias bond0 bonding

options bond0 miimon=100 mode=1

說明:

mode=0表示load balancing (round-robin)為負載均衡方式;

mode=1表示fault-tolerance (active-backup)提供冗餘功能;

5、載入bonding模組

# modprobe bonding

說明:無返回值

6、重啟物理機

# init 6     &&  reboot

說明:init 6重啟速度會比較快!!!

7、檢視ifconfig 

8、檢視bond繫結狀態

# vim /proc/net/bonding/bond0

9、測試:

# ifdown eth0

bonding後,eth1仍然工作,虛擬機器網路仍是通的;剩餘eth1和bonding的mac地址仍然一樣;

檢視網路是否還通著:

 

檢視bonding的狀態: