溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行l(wèi)inux下的雙網(wǎng)卡綁定

發(fā)布時(shí)間:2021-10-21 17:52:33 來(lái)源:億速云 閱讀:149 作者:柒染 欄目:云計(jì)算

這篇文章給大家介紹如何進(jìn)行l(wèi)inux下的雙網(wǎng)卡綁定,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

Linux上雙網(wǎng)卡綁定實(shí)現(xiàn)就是使用兩塊網(wǎng)卡虛擬成為一塊網(wǎng)卡,這個(gè)結(jié)合起來(lái)的設(shè)備看起來(lái)是一個(gè)單獨(dú)的以太網(wǎng)接口設(shè)備,通俗點(diǎn)講就是兩塊網(wǎng)卡具有相同的IP地址而并行鏈接聚合成一個(gè)邏輯鏈路工作。其實(shí)這項(xiàng)技術(shù)在Sun和Cisco中早已存在,被稱為T(mén)runking和Etherchannel 技術(shù),在Linux的2.4.x的內(nèi)核中也采用這這種技術(shù),被稱為bonding。

bonding技術(shù)的最早應(yīng)用是在集群——beowulf上,為了提高集群節(jié)點(diǎn)間的數(shù)據(jù)傳輸而設(shè)計(jì)的。下面我們討論一下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ò)上所有的幀,比如說(shuō)tcpdump,就是運(yùn)行在這個(gè)模式下。bonding也運(yùn)行在這個(gè)模式下,而且修改了驅(qū)動(dòng)程序中的mac地址,將兩塊網(wǎng)卡的 Mac地址改成相同,可以接收特定MAC的數(shù)據(jù)幀。然后把相應(yīng)的數(shù)據(jù)幀傳送給bond驅(qū)動(dòng)程序處理。

RHEL 6 配置

1 備份網(wǎng)卡配置文件

[root@redhat6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0 ~/ifcfg-eth0.bak[root@redhat6 ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth2 ~/ifcfg-eth2.bak

2 配置綁定

虛擬網(wǎng)絡(luò)接口配置文件,指定網(wǎng)卡IP,ifcfg-bond0

[root@redhat6 ~]#vi /etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=bond0
IPADDR=192.168.1.111NETMASK=255.255.255.0ONBOOT=yes
BOOTPROTO=none
USERCTL=noNM_CONTROLLED=noBONDING_OPTS="mode=1 miimon=100"

配置真實(shí)的網(wǎng)卡,eth0 and eth2

[root@redhat6 ~]#vi /etc/sysconfig/network-scripts/ifcfg-eth<N>DEVICE=eth<N>BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=noNM_CONTROLLED=no

NM_CONTROLLED=no NetworkManager is not permitted to configure this device.USERCTL=no Non-root users are not allowed to control this device.
BOOTPROTO=none No boot-time protocol should be used

3 重啟網(wǎng)絡(luò)服務(wù)

[root@redhat6 ~]#service network restart

4、測(cè)試網(wǎng)絡(luò)

拔下一根網(wǎng)線看ping數(shù)據(jù),確認(rèn)沒(méi)問(wèn)題之后插上該網(wǎng)線連通之后,再拔下另外一根網(wǎng)線,觀察雙網(wǎng)卡綁定效果。

5、Bonding的7種模式

  • define BOND_MODE_ROUNDROBIN 0 (balance-rr模式)網(wǎng)卡的負(fù)載均衡模式

  • define BOND_MODE_ACTIVEBACKUP 1 (active-backup模式)網(wǎng)卡的容錯(cuò)模式

  • define BOND_MODE_XOR 2 (balance-xor模式)需要交換機(jī)支持

  • define BOND_MODE_BROADCAST 3 (broadcast模式)

  • define BOND_MODE_8023AD 4 (IEEE 802.3ad動(dòng)態(tài)鏈路聚合模式)需要交換機(jī)支持

  • define BOND_MODE_TLB 5 自適應(yīng)傳輸負(fù)載均衡模式

  • define BOND_MODE_ALB 6 網(wǎng)卡虛擬化方式


mode的值共有0-6 七種模式,常用的為0,1,6三種。

  • mode=0:平衡負(fù)載模式,有自動(dòng)備援,但需要”Switch”支援及設(shè)定。

  • mode=1:自動(dòng)備援模式,其中一條線若斷線,其他線路將會(huì)自動(dòng)備援。

  • mode=6:平衡負(fù)載模式,有自動(dòng)備援,不需要”Switch”支援及設(shè)定。


linux系統(tǒng)下bond mode參數(shù)說(shuō)明:(mode=4 在交換機(jī)支持LACP時(shí)推薦使用,其能提供更好的性能和穩(wěn)定性)

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_policy的TCP協(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ù)。4-802.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)修改功能。

雙網(wǎng)卡綁定模式下,網(wǎng)卡的性能不是向大多數(shù)人猜想的那樣帶寬加倍,傳輸速度加倍;而實(shí)際上可能恰好相反。

這個(gè)問(wèn)題還是要看到瓶頸在哪。
一般多網(wǎng)卡綁定,處理器應(yīng)該沒(méi)有問(wèn)題,能力很強(qiáng),網(wǎng)絡(luò)也很強(qiáng),瓶頸在網(wǎng)卡,所以多綁定幾塊可以解決網(wǎng)卡的瓶頸,并且提高可靠性。

如果是板子的話,雖然網(wǎng)絡(luò)也很強(qiáng),但估計(jì)瓶頸不是網(wǎng)卡了,而是板子的處理能力了。加多個(gè)網(wǎng)卡,可能卻降低了板子的性能。多網(wǎng)卡綁定,應(yīng)該在混雜模式,把本來(lái)硬件處理的部分交給了驅(qū)動(dòng)來(lái)自,增加了軟件/板子的負(fù)擔(dān)了。

普通臺(tái)式機(jī)服務(wù)器,現(xiàn)在性能應(yīng)該很強(qiáng)大,不是瓶頸,所以采用多網(wǎng)卡綁定能體現(xiàn)出優(yōu)勢(shì)。

任何方法 都有其前提的。

 了解了一下bonding各模式的算法,負(fù)載均衡模式用的輪轉(zhuǎn)算法,熱備份用的備份算法。
     理論下,雙網(wǎng)卡綁定備份模式下,只有一塊網(wǎng)卡工作,流量測(cè)試的結(jié)果應(yīng)該和用單個(gè)網(wǎng)卡相同。
     同樣是理論上,雙網(wǎng)卡綁定負(fù)載均衡模式下,收發(fā)一般的網(wǎng)絡(luò)數(shù)據(jù),我是指小于1588的報(bào)文等不用分片的數(shù)據(jù)時(shí),帶寬加倍,速度加倍。
     我的猜測(cè):現(xiàn)在我在負(fù)載均衡模式下,傳輸一個(gè)4GB的文件,文件被分片處理,在輪轉(zhuǎn)算法下連續(xù)的片被兩個(gè)網(wǎng)卡分別處理,一方面軟件算法消耗了時(shí)間,另一方面可能會(huì)有分片亂序的可能,申請(qǐng)重發(fā)或者其他原因消耗了時(shí)間。
     現(xiàn)在的問(wèn)題有兩個(gè),1、為什么只有round-robin模式,開(kāi)發(fā)板上兩個(gè)網(wǎng)卡是一樣的型號(hào);2、負(fù)載均衡模式下傳輸文件的速度比用單網(wǎng)卡要慢。
     期待各位大哥解惑,謝謝了。

總結(jié)一下

1、只能進(jìn)入負(fù)載均衡的問(wèn)題;模塊加載的時(shí)候讀取的配置文件modules.conf、modprobe.conf,這兩個(gè)文件分別適用于舊和新兩種內(nèi)核版本,二這兩個(gè)文件中mode參數(shù)用于設(shè)置綁定模式,如果文件名錯(cuò)了,設(shè)置當(dāng)然無(wú)效;另外bongding在內(nèi)核中需要編譯成模塊,而不是直接加到內(nèi)核。
2、網(wǎng)卡綁定時(shí)傳輸大文件比不綁定時(shí)更慢;測(cè)試顯示負(fù)載均衡模式下,傳輸大文件所需時(shí)間是不綁定用單網(wǎng)口傳輸?shù)膬杀?,熱備份模式所需時(shí)間是單網(wǎng)口的四倍。猜測(cè)且沒(méi)有得到證實(shí)的原因:負(fù)載均衡時(shí),網(wǎng)絡(luò)上傳輸?shù)膱?bào)文一般都小于1588,網(wǎng)卡處理這些典型的網(wǎng)絡(luò)報(bào)文很快;但現(xiàn)在傳輸?shù)氖且粋€(gè)很大的文件,文件大于1588,文件被分成很多片,文件重組需求分片按次序到達(dá),可能因?yàn)楸粌蓚€(gè)網(wǎng)卡處理造成分片次序顛倒等原因申請(qǐng)重發(fā)分片,另外增加的綁定算法也需要耗費(fèi)時(shí)間;熱備份時(shí),綁定算法耗費(fèi)時(shí)間。

關(guān)于如何進(jìn)行l(wèi)inux下的雙網(wǎng)卡綁定就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI