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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

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

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

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應用拓撲:交換機端需要配置聚合口,cisco叫portchannel。拓撲圖如下:

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

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應用拓撲:這種模式接入不需要交換機端支持,隨便怎么接入都行。第三種:bond2:loadbalancing(xor)標準文檔描述:XORpolicy:Transmitbasedon[(sourceMACaddressXOR'dwithdestinationMACaddress)moduloslavecount].ThisselectsthesameslaveforeachdestinationMACaddress.Thismodeprovidesloadbalancingandfaulttolerance.特點:該模式將限定流量,以保證到達特定對端的流量總是從同一個接口上發(fā)出。既然目的地是通過MAC地址來決定的,因此該模式在“本地”網(wǎng)絡配置下可以工作得很好。如果所有流量是通過單個路由器(比如“網(wǎng)關”型網(wǎng)絡配置,只有一個網(wǎng)關時,源和目標mac都固定了,那么這個算法算出的線路就一直是同一條,那么這種模式就沒有多少意義了。),那該模式就不是最好的選擇。和balance-rr一樣,交換機端口需要能配置為“portchannel”。這模式是通過源和目標mac做hash因子來做xor算法來選路的。實際綁定結果:

[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應用拓撲:同bond0一樣的應用模型。這個模式也需要交換機配置聚合口。第四種:bond3:fault-tolerance(broadcast)標準文檔定義:Broadcastpolicy:transmitseverythingonallslaveinterfaces.Thismodeprovidesfaulttolerance.特點:這種模式的特點是一個報文會復制兩份往bond下的兩個接口分別發(fā)送出去,當有對端交換機失效,我們感覺不到任何downtime,但此法過于浪費資源;不過這種模式有很好的容錯機制。此模式適用于金融行業(yè),因為他們需要高可靠性的網(wǎng)絡,不允許出現(xiàn)任何問題。實際綁定結果:

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應用拓撲:如下:

這種模式適用于如下拓撲,兩個接口分別接入兩臺交換機,并且屬于不同的vlan,當一邊的網(wǎng)絡出現(xiàn)故障不會影響服務器另一邊接入的網(wǎng)絡正常工作。而且故障過程是0丟包。下面展示了這種模式下ping信息:

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

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

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!)

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

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

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

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應用拓撲:應用拓撲同bond0,和bond2一樣,不過這種模式除了配置portchannel之外還要在portchannel聚合口下開啟LACP功能,成功協(xié)商后,兩端可以正常通信。否則不能使用。交換機端配置:

interfaceAggregatePort1配置聚合口

interfaceGigabitEthernet0/23

port-group1modeactive接口下開啟lacp主動模式

interfaceGigabitEthernet0/24

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

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

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應用拓撲:這個模式下bond成員使用各自的mac,而不是上面幾種模式是使用bond0接口的mac。

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

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

(還有一個點:每個端口除發(fā)送本端口回復的報文,也同樣會發(fā)送其他端口回復的報文,mac還是其他端口的mac)這樣來自服務器端的接收流量也會被均衡。

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

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

必要條件:

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

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

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應用拓撲:

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

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

溫馨提示

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

最新文檔

評論

0/150

提交評論