網卡綁定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

http://www.cnblogs.com/nulige/p/6714183.html?utm_source=itdadao&utm_medium=referral

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

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

img

MASTER=bond0 對應綁定名稱bond0

SLAVE=yes

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

img

MASTER=bond0 對應綁定名稱bond0

SLAVE=yes

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 #編輯該網卡內容

img

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

下圖中1表示系統在啟動時加載bonding模塊,對外虛擬網絡接口設備為 bond0;miimon=100表示系統每100ms監測一次鏈路連接狀態,如果有一條線路不通就轉入另一條線

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

img

[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網卡進行綁定

img

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

img

[root@lyt ~]# ifconfig #查看網卡信息,在此處三塊網卡的mac地址是一樣的

img

[root@lyt ~]#vim /proc/net/bonding/bond0 #查看模式及網卡信息。實際mac地址是不一樣的

img

將網卡eth0斷掉后,系統使用備份網卡eth1,此時eth1處於活動狀態

img

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

ifenslave -c bond0 eth1

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

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

img

2:vim /proc/net/bonding/bond0 #查看使用的模式及網卡信息,如圖:

img

測試

img

注意:

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

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

alias bond0 bonding

options bonding mode=1 miimon=200

alias bond1 bonding

options bonding mode=1 miimon=200

正確的設置方法有2種:

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

alias bond0 bonding

alias bond1 bonding

options bonding max_bonds=2 miimon=200 mode=1

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

alias bond0 bonding

options bond0 miimon=100 mode=1

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

BOOTPROTO=none

DEVICE=enp0s3

ONBOOT=yes

MASTER=bond0

SLAVE=yes

# ifcfg-enp0s8

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

TYPE=Ethernet

BOOTPROTO=none

DEVICE=enp0s8

ONBOOT=yes

MASTER=bond0

SLAVE=yes

步驟:3修改配置文件

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

alias bond0 bonding

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

systemctl stop NetworkManager.service #停止NetworkManager服務

systemctl disable NetworkManager.service #禁止開機啟動NetworkManager服務

重啟網卡

systemctl restart network


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM