網卡綁定
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 (一下幾個要一樣)

MASTER=bond0 對應綁定名稱bond0
SLAVE=yes
root@lyt ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
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 #編輯該網卡内容
3:[root@lyt network-scripts]# vim /etc/modprobe.conf #編輯該配置檔案
下圖中1表示系統在啟動時加載bonding子產品,對外虛拟網絡接口裝置為 bond0;miimon=100表示系統每100ms監測一次鍊路連接配接狀态,如果有一條線路不通就轉入另一條線
路;mode=1表示fault-tolerance (active-backup)提供備援功能,工作方式是主備的工作方式,也就是說預設情況下隻有一塊網卡工作,另一塊做備份。
[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網卡進行綁定
5:[root@lyt network-scripts]# init 6
[root@lyt ~]# ifconfig #檢視網卡資訊,在此處三塊網卡的mac位址是一樣的
[root@lyt ~]#vim /proc/net/bonding/bond0 #檢視模式及網卡資訊。實際mac位址是不一樣的
将網卡eth0斷掉後,系統使用備份網卡eth1,此時eth1處于活動狀态
直接切換活動網卡,不出現丢包
ifenslave -c bond0 eth1
案例二:mode=0(round robin):所有鍊路處于負載均衡狀态,這模式的特點增加了帶寬,同時支援容錯能力。
1:在案例一的基礎上,隻需要修改/etc/modprobe.conf 配置檔案:
2:vim /proc/net/bonding/bond0 #檢視使用的模式及網卡資訊,如圖:
測試
注意:
留心:前面隻是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服務