深度分析Linux下雙網(wǎng)卡綁定7種模式_第1頁(yè)
深度分析Linux下雙網(wǎng)卡綁定7種模式_第2頁(yè)
深度分析Linux下雙網(wǎng)卡綁定7種模式_第3頁(yè)
深度分析Linux下雙網(wǎng)卡綁定7種模式_第4頁(yè)
深度分析Linux下雙網(wǎng)卡綁定7種模式_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

深度分析Linux下雙網(wǎng)卡綁定七種模式現(xiàn)在一般的企業(yè)都會(huì)使用雙網(wǎng)卡接入,這樣既能添加網(wǎng)絡(luò)帶寬,同時(shí)又能做相應(yīng)的冗余,可以說(shuō)是好處多多。而一般企業(yè)都會(huì)使用linux操作系統(tǒng)下自帶的網(wǎng)卡綁定模式,當(dāng)然現(xiàn)在網(wǎng)卡產(chǎn)商也會(huì)出一些針對(duì)windows操作系統(tǒng)網(wǎng)卡管理軟件來(lái)做網(wǎng)卡綁定(windows操作系統(tǒng)沒(méi)有網(wǎng)卡綁定功能需要第三方支持)。進(jìn)入正題,linux有七種網(wǎng)卡綁定模式:0.roundrobin,1.active-backup,2.loadbalancing(xor),3.fault-tolerance(broadcast),4.lacp,5.transmitloadbalancing,6.adaptiveloadbalancing。

第一種:bond0:roundrobin標(biāo)準(zhǔn):round-robinpolicy:Transmitpacketsinsequentialorderfromthefirstavailableslavethroughthelast.Thismodeprovidesloadbalancingandfaulttolerance.特點(diǎn):(1)所有鏈路處于負(fù)載均衡狀態(tài),輪詢方式往每條鏈路發(fā)送報(bào)文,基于perpacket方式發(fā)送。服務(wù)上ping一個(gè)相同地址:1.1.1.1雙網(wǎng)卡的兩個(gè)網(wǎng)卡都有流量發(fā)出。負(fù)載到兩條鏈路上,說(shuō)明是基于perpacket方式,進(jìn)行輪詢發(fā)送。(2)這模式的特點(diǎn)增加了帶寬,同時(shí)支持容錯(cuò)能力,當(dāng)有鏈路出問(wèn)題,會(huì)把流量切換到正常的鏈路上。實(shí)際綁定結(jié)果:

cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.6.0(September26,2009)

BondingMode:loadbalancing(round-robin)-----RR的模式

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

SlaveInterface:eth0

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:74:ea:3a:6a:54:e3

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0應(yīng)用拓?fù)洌航粨Q機(jī)端需要配置聚合口,cisco叫portchannel。拓?fù)鋱D如下:

第二種:bond1:active-backup標(biāo)準(zhǔn)文檔定義:Active-backuppolicy:Onlyoneslaveinthebondisactive.Adifferentslavebecomesactiveif,andonlyif,theactiveslavefails.Thebond’sMACaddressisexternallyvisibleononlyoneport(networkadapter)toavoidconfusingtheswitch.Thismodeprovidesfaulttolerance.Theprimaryoptionaffectsthebehaviorofthismode.模式的特點(diǎn):一個(gè)端口處于主狀態(tài),一個(gè)處于從狀態(tài),所有流量都在主鏈路上處理,從不會(huì)有任何流量。當(dāng)主端口down掉時(shí),從端口接手主狀態(tài)。實(shí)際綁定結(jié)果:

root@1:~#cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.6.0(September26,2009)

BondingMode:fault-tolerance(active-backup)—–backup模式

PrimarySlave:None

CurrentlyActiveSlave:eth0

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

SlaveInterface:eth0

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:74:ea:3a:6a:54:e3

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:d8:5d:4c:71:f9:94應(yīng)用拓?fù)洌哼@種模式接入不需要交換機(jī)端支持,隨便怎么接入都行。第三種:bond2:loadbalancing(xor)標(biāo)準(zhǔn)文檔描述:XORpolicy:Transmitbasedon[(sourceMACaddressXOR'dwithdestinationMACaddress)moduloslavecount].ThisselectsthesameslaveforeachdestinationMACaddress.Thismodeprovidesloadbalancingandfaulttolerance.特點(diǎn):該模式將限定流量,以保證到達(dá)特定對(duì)端的流量總是從同一個(gè)接口上發(fā)出。既然目的地是通過(guò)MAC地址來(lái)決定的,因此該模式在“本地”網(wǎng)絡(luò)配置下可以工作得很好。如果所有流量是通過(guò)單個(gè)路由器(比如“網(wǎng)關(guān)”型網(wǎng)絡(luò)配置,只有一個(gè)網(wǎng)關(guān)時(shí),源和目標(biāo)mac都固定了,那么這個(gè)算法算出的線路就一直是同一條,那么這種模式就沒(méi)有多少意義了。),那該模式就不是最好的選擇。和balance-rr一樣,交換機(jī)端口需要能配置為“portchannel”。這模式是通過(guò)源和目標(biāo)mac做hash因子來(lái)做xor算法來(lái)選路的。實(shí)際綁定結(jié)果:

[root@localhost~]#cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.0.3(March23,2006)

BondingMode:loadbalancing(xor)——配置為xor模式

TransmitHashPolicy:layer2(0)

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:00:d0:f8:40:f1:a0

SlaveInterface:eth2

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:00:d0:f8:00:0c:0c應(yīng)用拓?fù)洌和琤ond0一樣的應(yīng)用模型。這個(gè)模式也需要交換機(jī)配置聚合口。第四種:bond3:fault-tolerance(broadcast)標(biāo)準(zhǔn)文檔定義:Broadcastpolicy:transmitseverythingonallslaveinterfaces.Thismodeprovidesfaulttolerance.特點(diǎn):這種模式的特點(diǎn)是一個(gè)報(bào)文會(huì)復(fù)制兩份往bond下的兩個(gè)接口分別發(fā)送出去,當(dāng)有對(duì)端交換機(jī)失效,我們感覺(jué)不到任何downtime,但此法過(guò)于浪費(fèi)資源;不過(guò)這種模式有很好的容錯(cuò)機(jī)制。此模式適用于金融行業(yè),因?yàn)樗麄冃枰呖煽啃缘木W(wǎng)絡(luò),不允許出現(xiàn)任何問(wèn)題。實(shí)際綁定結(jié)果:

root@ubuntu12:~/ram#cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.6.0(September26,2009)

BondingMode:fault-tolerance(broadcast)——-fault-tolerance模式

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

SlaveInterface:eth0

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:74:ea:3a:6a:54:e3

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:d8:5d:4c:71:f9:94應(yīng)用拓?fù)洌喝缦拢?/p>

這種模式適用于如下拓?fù)洌瑑蓚€(gè)接口分別接入兩臺(tái)交換機(jī),并且屬于不同的vlan,當(dāng)一邊的網(wǎng)絡(luò)出現(xiàn)故障不會(huì)影響服務(wù)器另一邊接入的網(wǎng)絡(luò)正常工作。而且故障過(guò)程是0丟包。下面展示了這種模式下ping信息:

64bytesfrom1.1.1.1:icmp_seq=901ttl=64time=0.205ms

64bytesfrom1.1.1.1:icmp_seq=901ttl=64time=0.213ms(DUP!)—dup為重復(fù)報(bào)文

64bytesfrom1.1.1.1:icmp_seq=902ttl=64time=0.245ms

64bytesfrom1.1.1.1:icmp_seq=902ttl=64time=0.254ms(DUP!)

64bytesfrom1.1.1.1:icmp_seq=903ttl=64time=0.216ms

64bytesfrom1.1.1.1:icmp_seq=903ttl=64time=0.226ms(DUP!)

從這個(gè)ping信息可以看到,這種模式的特點(diǎn)是,同一個(gè)報(bào)文服務(wù)器會(huì)復(fù)制兩份分別往兩條線路發(fā)送,導(dǎo)致回復(fù)兩份重復(fù)報(bào)文,這種模式有浪費(fèi)資源的嫌疑。第五種:bond4:lacp標(biāo)準(zhǔn)文檔定義:IEEE802.3adDynamiclinkaggregation.Createsaggregationgroupsthatsharethesamespeedandduplexsettings.Utilizesallslavesintheactiveaggregatoraccordingtothe802.3adspecification.Pre-requisites:1.Ethtoolsupportinthebasedriversforretrieving.thespeedandduplexofeachslave.2.AswitchthatsupportsIEEE802.3adDynamiclink

aggregation.Mostswitcheswillrequiresometypeofconfigurationtoenable802.3admode.特點(diǎn):802.3ad模式是IEEE標(biāo)準(zhǔn),因此所有實(shí)現(xiàn)了802.3ad的對(duì)端都可以很好的互操作。802.3ad協(xié)議包括聚合的自動(dòng)配置,因此只需要很少的對(duì)交換機(jī)的手動(dòng)配置(要指出的是,只有某些設(shè)備才能使用802.3ad)。802.3ad標(biāo)準(zhǔn)也要求幀按順序(一定程度上)傳遞,因此通常單個(gè)連接不會(huì)看到包的亂序。802.3ad也有些缺點(diǎn):標(biāo)準(zhǔn)要求所有設(shè)備在聚合操作時(shí),要在同樣的速率和雙工模式,而且,和除了balance-rr模式外的其它bonding負(fù)載均衡模式一樣,任何連接都不能使用多于一個(gè)接口的帶寬。

此外,linuxbonding的802.3ad實(shí)現(xiàn)通過(guò)對(duì)端來(lái)分發(fā)流量(通過(guò)MAC地址的XOR值),因此在“網(wǎng)關(guān)”型配置下,所有外出(Outgoing)流量將使用同一個(gè)設(shè)備。進(jìn)入(Incoming)的流量也可能在同一個(gè)設(shè)備上終止,這依賴于對(duì)端802.3ad實(shí)現(xiàn)里的均衡策略。在“本地”型配置下,路兩將通過(guò)bond里的設(shè)備進(jìn)行分發(fā)。實(shí)際綁定結(jié)果:

root@:~#cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.6.0(September26,2009)

BondingMode:IEEE802.3adDynamiclinkaggregation

TransmitHashPolicy:layer2(0)

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

802.3adinfo

LACPrate:slow

Aggregatorselectionpolicy(ad_select):stable

ActiveAggregatorInfo:

AggregatorID:1

Numberofports:1

ActorKey:9

PartnerKey:1

PartnerMacAddress:00:00:00:00:00:00

SlaveInterface:eth0

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:74:ea:3a:6a:54:e3

AggregatorID:1

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:d8:5d:4c:71:f9:94

AggregatorID:2應(yīng)用拓?fù)洌簯?yīng)用拓?fù)渫琤ond0,和bond2一樣,不過(guò)這種模式除了配置portchannel之外還要在portchannel聚合口下開(kāi)啟LACP功能,成功協(xié)商后,兩端可以正常通信。否則不能使用。交換機(jī)端配置:

interfaceAggregatePort1配置聚合口

interfaceGigabitEthernet0/23

port-group1modeactive接口下開(kāi)啟lacp主動(dòng)模式

interfaceGigabitEthernet0/24

port-group1modeactive第六種:bond5:transmitloadbalancing標(biāo)準(zhǔn)文檔定義:Adaptivetransmitloadbalancing:channelbondingthatdoesnotrequireanyspecialswitchsupport.Theoutgoingtrafficisdistributedaccordingtothecurrentload(computedrelativetothespeed)oneachslave.Incomingtrafficisreceivedbythecurrentslave.Ifthereceivingslavefails,anotherslavetakesovertheMACaddressofthefailedreceivingslave.Prerequisite:Ethtoolsupportinthebasedriversforretrievingthespeedofeachslave.特點(diǎn):balance-tlb模式通過(guò)對(duì)端均衡外出(outgoing)流量。既然它是根據(jù)MAC地址進(jìn)行均衡,在“網(wǎng)關(guān)”型配置(如上文所述)下,該模式會(huì)通過(guò)單個(gè)設(shè)備來(lái)發(fā)送所有流量,然而,在“本地”型網(wǎng)絡(luò)配置下,該模式以相對(duì)智能的方式(不是balance-xor或802.3ad模式里提及的XOR方式)來(lái)均衡多個(gè)本地網(wǎng)絡(luò)對(duì)端,因此那些數(shù)字不幸的MAC地址(比如XOR得到同樣值)不會(huì)聚集到同一個(gè)接口上。

不像802.3ad,該模式的接口可以有不同的速率,而且不需要特別的交換機(jī)配置。不利的一面在于,該模式下所有進(jìn)入的(incoming)流量會(huì)到達(dá)同一個(gè)接口;該模式要求slave接口的網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)有某種ethtool支持;而且ARP監(jiān)控不可用。實(shí)際配置結(jié)果:

cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.0.3(March23,2006)

BondingMode:transmitloadbalancing—–TLB模式

PrimarySlave:None

CurrentlyActiveSlave:eth1

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:00:d0:f8:40:f1:a0

SlaveInterface:eth2

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:00:d0:f8:00:0c:0c應(yīng)用拓?fù)洌哼@個(gè)模式下bond成員使用各自的mac,而不是上面幾種模式是使用bond0接口的mac。

如上圖,設(shè)備開(kāi)始時(shí)會(huì)發(fā)送免費(fèi)arp,以主端口eth1的mac為源,當(dāng)客戶端收到這個(gè)arp時(shí)就會(huì)在arp緩存中記錄下這個(gè)mac對(duì)的ip。而在這個(gè)模式下,服務(wù)器每個(gè)端口在ping操作時(shí),會(huì)根據(jù)算法算出出口,地址不斷變化時(shí)他,這時(shí)會(huì)負(fù)載到不同端口。實(shí)驗(yàn)中ping1.1.1.3時(shí)往eth2發(fā)送,源mac為00:D0:F8:00:0C:0C,ping1.1.1.4是往eth1發(fā)送,源mac為00:D0:F8:40:F1:A0,以此類推,所以從服務(wù)器出去的流量負(fù)載到兩條線路,但是由于服務(wù)發(fā)arp時(shí)只用00:D0:F8:40:F1:A0,這樣客戶端緩沖記錄的是00:D0:F8:40:F1:A0對(duì)的ip,封裝時(shí)目標(biāo)mac:00:D0:F8:40:F1:A0。這樣進(jìn)入服務(wù)的流量都只往eth1(00:D0:F8:40:F1:A0)走。設(shè)備會(huì)一直發(fā)入snap報(bào)文,eth1發(fā)送源為00d0.f840.f1a0的snap報(bào)文,eth2發(fā)送源為00d0.f800.0c0c的snap報(bào)文。這個(gè)snap報(bào)文mac和目標(biāo)mac一樣都是網(wǎng)卡本地mac,源ip和目標(biāo)ip也一樣,這個(gè)報(bào)文的作用是檢測(cè)線路是否正常的回環(huán)報(bào)文。

注:可以通過(guò)修改bond0的mac地址來(lái)引導(dǎo)他發(fā)修改后的源mac的免費(fèi)arp(MACADDR=00:D0:F8:00:0C:0C)第七種:bond6:adaptiveloadbalancing特點(diǎn):該模式包含了balance-tlb模式,同時(shí)加上針對(duì)IPV4流量的接收負(fù)載均衡(receiveloadbalance,rlb),而且不需要任何switch(交換機(jī))的支持。接收負(fù)載均衡是通過(guò)ARP協(xié)商實(shí)現(xiàn)的。bonding驅(qū)動(dòng)截獲本機(jī)發(fā)送的ARP應(yīng)答,并把源硬件地址改寫為bond中某個(gè)slave的唯一硬件地址,從而使得不同的對(duì)端使用不同的硬件地址進(jìn)行通信。所有端口都會(huì)收到對(duì)端的arp請(qǐng)求報(bào)文,回復(fù)arp回時(shí),bond驅(qū)動(dòng)模塊會(huì)截獲所發(fā)的arp回復(fù)報(bào)文,根據(jù)算法算到相應(yīng)端口,這時(shí)會(huì)把a(bǔ)rp回復(fù)報(bào)文的源mac,send源mac都改成相應(yīng)端口mac。從抓包情況分析回復(fù)報(bào)文是第一個(gè)從端口1發(fā),第二個(gè)從端口2發(fā)。以此類推。

(還有一個(gè)點(diǎn):每個(gè)端口除發(fā)送本端口回復(fù)的報(bào)文,也同樣會(huì)發(fā)送其他端口回復(fù)的報(bào)文,mac還是其他端口的mac)這樣來(lái)自服務(wù)器端的接收流量也會(huì)被均衡。

當(dāng)本機(jī)發(fā)送ARP請(qǐng)求時(shí),bonding驅(qū)動(dòng)把對(duì)端的IP信息從ARP包中復(fù)制并保存下來(lái)。當(dāng)ARP應(yīng)答從對(duì)端到達(dá)時(shí),bonding驅(qū)動(dòng)把它的硬件地址提取出來(lái),并發(fā)起一個(gè)ARP應(yīng)答給bond中的某個(gè)slave(這個(gè)算法和上面一樣,比如算到1口,就給發(fā)送arp請(qǐng)求,1回復(fù)時(shí)mac用1的mac)。使用ARP協(xié)商進(jìn)行負(fù)載均衡的一個(gè)問(wèn)題是:每次廣播ARP請(qǐng)求時(shí)都會(huì)使用bond的硬件地址,因此對(duì)端學(xué)習(xí)到這個(gè)硬件地址后,接收流量將會(huì)全部流向當(dāng)前的slave。這個(gè)問(wèn)題通過(guò)給所有的對(duì)端發(fā)送更新(ARP應(yīng)答)來(lái)解決,往所有端口發(fā)送應(yīng)答,應(yīng)答中包含他們獨(dú)一無(wú)二的硬件地址,從而導(dǎo)致流量重新分布。當(dāng)新的slave加入到bond中時(shí),或者某個(gè)未激活的slave重新激活時(shí),接收流量也要重新分布。接收的負(fù)載被順序地分布(roundrobin)在bond中最高速的slave上

當(dāng)某個(gè)鏈路被重新接上,或者一個(gè)新的slave加入到bond中,接收流量在所有當(dāng)前激活的slave中全部重新分配,通過(guò)使用指定的MAC地址給每個(gè)client發(fā)起ARP應(yīng)答。下面介紹的updelay參數(shù)必須被設(shè)置為某個(gè)大于等于switch(交換機(jī))轉(zhuǎn)發(fā)延時(shí)的值,從而保證發(fā)往對(duì)端的ARP應(yīng)答不會(huì)被switch(交換機(jī))阻截。

必要條件:

條件1:ethtool支持獲取每個(gè)slave的速率;

條件2:底層驅(qū)動(dòng)支持設(shè)置某個(gè)設(shè)備的硬件地址,從而使得總是有個(gè)slave(curr_active_slave)使用bond的硬件地址,同時(shí)保證每個(gè)bond中的slave都有一個(gè)唯一的硬件地址。如果curr_active_slave出故障,它的硬件地址將會(huì)被新選出來(lái)的curr_active_slave接管。實(shí)際配置結(jié)果:

root@:/tmp#cat/proc/net/bonding/bond0

EthernetChannelBondingDriver:v3.6.0(September26,2009)

BondingMode:adaptiveloadbalancing

PrimarySlave:None

CurrentlyActiveSlave:eth0

MIIStatus:up

MIIPollingInterval(ms):100

UpDelay(ms):0

DownDelay(ms):0

SlaveInterface:eth0

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:74:ea:3a:6a:54:e3

SlaveInterface:eth1

MIIStatus:up

LinkFailureCount:0

PermanentHWaddr:d8:5d:4c:71:f9:94應(yīng)用拓?fù)洌?/p>

A是雙網(wǎng)卡綁定。

當(dāng)B發(fā)送一個(gè)arp請(qǐng)求到達(dá)A時(shí),按正常情況A會(huì)回應(yīng)一個(gè)arp回應(yīng)報(bào)文,源mac為bond的mac,源就是bond的ip。但是這個(gè)模式下bonding驅(qū)動(dòng)會(huì)截獲這個(gè)arp回應(yīng),把源mac改成bond狀態(tài)下其中某一個(gè)網(wǎng)卡的mac:mac1,這樣B收到這個(gè)arp回應(yīng)時(shí)就會(huì)在arp緩存中記錄下ip:1.1.1.

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論