Linux雙網(wǎng)卡綁定實(shí)現(xiàn)就是使用兩塊網(wǎng)卡虛擬成為一塊網(wǎng)卡,這個(gè)聚合起來(lái)的設(shè)備看起來(lái)是一個(gè)單獨(dú)的以太網(wǎng)接口設(shè)備,通俗點(diǎn)講就是兩塊網(wǎng)卡具有相同的IP地址而并行鏈接聚合成一個(gè)邏輯鏈路工作。其實(shí)這項(xiàng) 技術(shù)在Sun和Cisco中早已存在,被稱為Trunking和Etherchannel技術(shù),在Linux的2.4.x的內(nèi)核中也采用這這種技術(shù),被稱為bonding。,什么是bonding需要從網(wǎng)卡的混雜(promisc)模式說(shuō)起。我們知道,在正常情況下,網(wǎng)卡只接收目的硬件地址(MAC Address)是自身Mac的以太網(wǎng)幀,對(duì)于別的數(shù)據(jù)幀都濾掉,以減輕驅(qū)動(dòng)程序的負(fù)擔(dān)。但是網(wǎng)卡也支持另外一種被稱為混雜promisc的模式,可以接收網(wǎng)絡(luò)上所有的幀,bonding也運(yùn)行在這個(gè)模式下,而且修改了驅(qū)動(dòng)程序中的mac地址,將兩塊網(wǎng)卡的Mac地址改成相同,可以接收特定mac的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動(dòng)程序處理。


1.# vim /etc/modprobe.conf
編輯 /etc/modules.conf 文件,加入如下一行內(nèi)容,以使系統(tǒng)在啟動(dòng)時(shí)加載bonding模塊,對(duì)外虛擬網(wǎng)絡(luò)接口設(shè)備為 bond0
alias bond0 bonding

options bond0 miimon=100 mode=1
說(shuō)明:miimon是用來(lái)進(jìn)行鏈路監(jiān)測(cè)的。 比如:miimon=100,那么系統(tǒng)每100ms監(jiān)測(cè)一次鏈路連接狀態(tài),如果有一條線路不通就轉(zhuǎn)入另一條線路;mode的值表示工作模式,他共有0,1,2,3四種模式,常用的為0,1兩種。
mode=0表示load balancing (round-robin)為負(fù)載均衡方式,兩塊網(wǎng)卡都工作。
mode=1表示fault-tolerance (active-backup)提供冗余功能,工作方式是主備的工作方式,也就是說(shuō)默認(rèn)情況下只有一塊網(wǎng)卡工作,另一塊做備份.

 


modprobe bonding 加載bonding模塊


2.分別編輯 ifcfg-eth0 ifcfg-eth1

DEVICE=eth0
MASTER=bond0
SLAVE=yes
HWADDR=00:0C:29:86:AD:80
ONBOOT=yes

DEVICE=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes
HWADDR=00:0c:29:86:ad:8a

3.vim ifcfg-bond0

DEVICE=bond0
BOOTPROTO=static
IPADDR=192.168.1.2
NETMASK=255.255.255.0
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100 primary=eth0"
 
 

BONDING_OPTS參數(shù)解釋

此參數(shù)用于指定網(wǎng)卡綁定時(shí)的屬性,以下是對(duì)常用參數(shù)進(jìn)行的解釋:

miimon參數(shù):指定網(wǎng)卡故障時(shí)的切換時(shí)間間隔以ms為單位。

primary參數(shù):指定默認(rèn)的主網(wǎng)卡設(shè)備。

mode參數(shù):

0-輪詢模式,所綁定的網(wǎng)卡會(huì)針對(duì)訪問(wèn)以輪詢算法進(jìn)行平分。

1-高可用模式,運(yùn)行時(shí)只使用一個(gè)網(wǎng)卡,其余網(wǎng)卡作為備份,在負(fù)載不超過(guò)單塊網(wǎng)卡帶寬或壓力時(shí)建議使用。

2-基于HASH算法的負(fù)載均衡模式,網(wǎng)卡的分流按照xmit_hash_policyTCP協(xié)議層設(shè)置來(lái)進(jìn)行HASH計(jì)算分流,使各種不同處理來(lái)源的訪問(wèn)都盡量在同一個(gè)網(wǎng)卡上進(jìn)行處理。

3-廣播模式,所有被綁定的網(wǎng)卡都將得到相同的數(shù)據(jù),一般用于十分特殊的網(wǎng)絡(luò)需求,如需要對(duì)兩個(gè)互相沒(méi)有連接的交換機(jī)發(fā)送相同的數(shù)據(jù)。

4802.3ab負(fù)載均衡模式,要求交換機(jī)也支持802.3ab模式,理論上服務(wù)器及交換機(jī)都支持此模式時(shí),網(wǎng)卡帶寬最高可以翻倍(如從1Gbps翻到2Gbps)

5-適配器輸出負(fù)載均衡模式,輸出的數(shù)據(jù)會(huì)通過(guò)所有被綁定的網(wǎng)卡輸出,接收數(shù)據(jù)時(shí)則只選定其中一塊網(wǎng)卡。如果正在用于接收數(shù)據(jù)的網(wǎng)卡發(fā)生故障,則由其他網(wǎng)卡接管,要求所用的網(wǎng)卡及網(wǎng)卡驅(qū)動(dòng)可通過(guò)ethtool命令得到speed信息。

6-適配器輸入/輸出負(fù)載均衡模式,在"模式5"的基礎(chǔ)上,在接收數(shù)據(jù)的同時(shí)實(shí)現(xiàn)負(fù)載均衡,除要求ethtool命令可得到speed信息外,還要求支持對(duì)網(wǎng)卡MAC地址的動(dòng)態(tài)修改功能。

xmit_hash_policy參數(shù)(此參數(shù)對(duì)mode參數(shù)中的2、4模式有影響)

layer1-通過(guò)MAC地址進(jìn)行HASH計(jì)算。

計(jì)算公式:(MACsrcMACdest)% Nslave

layer3+4-通過(guò)TCPUDP端口及其IP地址進(jìn)行HASH計(jì)算。

計(jì)算公式:((portsrcportdest)(IPsrcIPdest)) % Nslave

注意:

mode參數(shù)中的0、2、34模式要求交換機(jī)支持"ports group"功能并能進(jìn)行相應(yīng)的設(shè)置,例如在Cisco中要將所連接的端口設(shè)為"trunk group"。

選擇綁定模式的建議

如果系統(tǒng)流量不超過(guò)單個(gè)網(wǎng)卡的帶寬,請(qǐng)不要選擇使用mode 1之外的模式,因?yàn)樨?fù)載均衡需要對(duì)流量進(jìn)行計(jì)算,這對(duì)系統(tǒng)性能會(huì)有所損耗。

建議mode 5、mode 6只在交換機(jī)不支持"ports group"的情況下選用。

如果交換機(jī)及網(wǎng)卡都確認(rèn)支持802.3ab,則實(shí)現(xiàn)負(fù)載均衡時(shí)盡量使用mode 4以提高系統(tǒng)性能

 今天你菊子曰了么?