天天看點

網卡綁定bond

網卡綁定

bond模式:

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

5和6不需要交換機端的設定,網卡能自動聚合。4需要支援802.3ad。0,2和3理論上需要靜态聚合方式

但實測中0可以通過mac位址欺騙的方式在交換機不設定的情況下不太均衡地進行接收。

常用的有三種

  • mode=0:平衡負載模式,有自動備援,但需要”Switch”支援及設定。mode 0下bond所綁定的網卡的IP都被修改成相同的mac位址
  • mode=1:自動備援模式,其中一條線若斷線,其他線路将會自動備援。
  • mode=6:平衡負載模式,有自動備援,不必”Switch”支援及設定。

參考 http://5503845.blog.51cto.com/5493845/962580

javascript:void(0)

二:案例一:mode=1(active-backup):一個網卡處于活動狀态 ,一個處于備份狀态,所有流量都在主鍊路上處理。當活動網卡down掉時,啟用備份的網卡。

1:[root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 dhcp也可以設定成none 或 static (一下幾個要一樣)

網卡綁定bond

MASTER=bond0 對應綁定名稱bond0

SLAVE=yes

root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1

網卡綁定bond

2:[root@lyt ~]# cd /etc/sysconfig/network-scripts/

[root@lyt network-scripts]# cp ifcfg-eth0 ifcfg-bond0 #生成一個bond0的虛拟網卡

[root@lyt network-scripts]# vim ifcfg-bond0 #編輯該網卡内容

網卡綁定bond

3:[root@lyt network-scripts]# vim /etc/modprobe.conf #編輯該配置檔案

下圖中1表示系統在啟動時加載bonding子產品,對外虛拟網絡接口裝置為 bond0;miimon=100表示系統每100ms監測一次鍊路連接配接狀态,如果有一條線路不通就轉入另一條線

路;mode=1表示fault-tolerance (active-backup)提供備援功能,工作方式是主備的工作方式,也就是說預設情況下隻有一塊網卡工作,另一塊做備份。

網卡綁定bond

[root@linux ~]# vim /etc/modprobe.d/bonding.conf #此檔案是自己建立,名字可以随便取

alias bond0 bonding

options bond0 miimon=100 mode=1

options bond0 miimon=100 mode=1 primary=eth0 參數指定主網卡

2.加載子產品(重新開機系統後就不用手動再加載了)

[root@test ~]# modprobe bonding

4:[root@lyt network-scripts]# vim /etc/rc.local #編輯該開機腳本,将eth0和eth1網卡進行綁定

網卡綁定bond

5:[root@lyt network-scripts]# init 6

網卡綁定bond

[root@lyt ~]# ifconfig #檢視網卡資訊,在此處三塊網卡的mac位址是一樣的

網卡綁定bond

[root@lyt ~]#vim /proc/net/bonding/bond0 #檢視模式及網卡資訊。實際mac位址是不一樣的

網卡綁定bond

将網卡eth0斷掉後,系統使用備份網卡eth1,此時eth1處于活動狀态

網卡綁定bond

直接切換活動網卡,不出現丢包

ifenslave -c bond0 eth1

案例二:mode=0(round robin):所有鍊路處于負載均衡狀态,這模式的特點增加了帶寬,同時支援容錯能力。

1:在案例一的基礎上,隻需要修改/etc/modprobe.conf 配置檔案:

網卡綁定bond

2:vim /proc/net/bonding/bond0 #檢視使用的模式及網卡資訊,如圖:

網卡綁定bond

測試

網卡綁定bond

注意:

留心:前面隻是2個網口綁定成一個bond0的情況,如果我們要設定多個bond口,比如實體網口eth0和eth1組成bond0,eth2和eth3組成bond1,

那麼網口設定檔案的設定方法和上面第1步講的方法相同,隻是/etc/modprobe.d/bonding.conf的設定就不能像下面這樣簡單的疊加了:

options bonding mode=1 miimon=200

alias bond1 bonding

正确的設定方法有2種:

第一種,你可以看到,這種方式的話,多個bond口的模式就隻能設成相同的了:

options bonding max_bonds=2 miimon=200 mode=1

第二種,這種方式,不同的bond口的mode可以設成不一樣:

install bond1 /sbin/modprobe bonding -o bond1 miimon=200 mode=0

仔細看看上面這2種設定方法,現在如果是要設定3個,4個,甚至更多的bond口,你應該也會了吧!

後記:簡單的介紹一下上面在加載bonding子產品的時候,options裡的一些參數的含義:

miimon 監視網絡連結的頻度,機關是毫秒,我們設定的是200毫秒。

max_bonds 配置的bond口個數

mode bond模式,在一般的實際應用中,0和1用的比較多。

----------------------------------------------------------------------------------------------------------------------------------------------------

在CentOS 7 / RHEL 7中配置NIC(網絡接口卡)綁定

# 如果bonding子產品沒有加載到你的Linux機器上,那麼使用下面的指令來加載。

modprobe bonding

步驟:1建立bond接口檔案

$ cat /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0

TYPE=Bond

NAME=bond0

BOOTPROTO=none

ONBOOT=yes

IPADDR=192.168.1.70

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

BONDING_MASTER=yes

BONDING_OPTS="mode=6 miimon=100"

步驟:2編輯NIC接口檔案

# ifcfg-enp0s3

[root@openstack ~]# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

TYPE=Ethernet

DEVICE=enp0s3

MASTER=bond0

# ifcfg-enp0s8

[root@openstack ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8

DEVICE=enp0s8

步驟:3修改配置檔案

# vi /etc/modprobe.d/bonding.conf

步驟:4關閉和停止NetworkManager服務

systemctl stop NetworkManager.service #停止NetworkManager服務