專(zhuān)利名稱(chēng):一種鏈路聚合的實(shí)現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種鏈路聚合的實(shí)現(xiàn)方法。
背景技術(shù):
鏈路聚合(Link Aggregation)在很多情況下又叫做端口捆綁(Port Trunking),將一個(gè)或多個(gè)鏈路聚合起來(lái)形成一個(gè)鏈路聚合組(Link Aggregation Group)。鏈路聚合可以讓交換機(jī)之間,以及交換機(jī)與服務(wù)器之間的鏈路帶寬有非常好的伸縮性,比如可以把2個(gè)、或者3個(gè)百兆的鏈路綁定在一起,使鏈路的帶寬成倍增長(zhǎng)。鏈路聚合技術(shù)可以實(shí)現(xiàn)不同端口分擔(dān)網(wǎng)絡(luò)流量,同時(shí)也能夠互為備份,保證鏈路的冗余性。
參閱圖1所示的一個(gè)鏈路聚合。端口1~24為二層交換機(jī)(L2Switch)的用戶(hù)端口,端口25、26為L(zhǎng)2Switch的的上行端口,上行端口25、26與對(duì)端設(shè)備三層交換機(jī)(L3Switch)的兩個(gè)端口對(duì)接形成L2Switch的兩個(gè)上行鏈路,這兩個(gè)鏈路是全雙工點(diǎn)到點(diǎn)的鏈路,并且工作在相同的速率之下,因此可以將這兩個(gè)鏈路A、B聚合起來(lái)形成一個(gè)鏈路聚合組,端口25、26就是聚合端口。通過(guò)聚合端口進(jìn)行鏈路負(fù)載平衡,避免鏈路出現(xiàn)擁塞現(xiàn)象。
用戶(hù)端口通過(guò)聚合端口發(fā)送數(shù)據(jù)幀時(shí),需要從聚合端口中選出一個(gè)端口來(lái)發(fā)送,這樣通過(guò)該端口就可以連續(xù)發(fā)送接下來(lái)的數(shù)據(jù)幀,形成一個(gè)完整的會(huì)話(huà)流。因此需要某種分配算法來(lái)選擇發(fā)送端口。通??梢岳脭?shù)據(jù)幀攜帶的信息作為算法的參數(shù),例如源MAC地址、目的MAC地址等。
參閱圖2,采用哈希(hash)算法可以從聚合端口組選擇一個(gè)給定的端口號(hào)。用幀攜帶的源MAC地址(SA)和目的MAC地址(DA)作為hash算法的key值,至于hash算法的選擇,可以根據(jù)具體的流量模型進(jìn)行篩選。如圖1中,對(duì)于用戶(hù)端口的上行數(shù)據(jù)幀,需要從聚合端口25或者26口轉(zhuǎn)發(fā)出去,提取出該數(shù)據(jù)幀的SA、DA進(jìn)行hash計(jì)算,得到hash值,根據(jù)該hash值查找聚合端口索引表,可以獲得最終的轉(zhuǎn)發(fā)端口,以達(dá)到鏈路負(fù)載平衡的目的。
由于源MAC地址、目的MAC地址是全球統(tǒng)一分配的48位地址,并且用戶(hù)是不確定的,所以SA、DA可以被看作隨機(jī)數(shù),這導(dǎo)致了在具體應(yīng)用中,進(jìn)行hash運(yùn)算時(shí),生成的hash值有可能相同,這樣查找聚合端口索引表后得到的轉(zhuǎn)發(fā)端口相同,即上行的流量均從同一個(gè)端口發(fā)送,從而導(dǎo)致該端口出現(xiàn)擁塞現(xiàn)象,而其他的聚合端口流量卻很小,不能很好的實(shí)現(xiàn)鏈路負(fù)載平衡。
另外,當(dāng)聚合鏈路中某一條鏈路出現(xiàn)斷路的情況時(shí),不能依靠硬件直接調(diào)整另外一條正常工作的鏈路,需要軟件修改聚合端口索引表來(lái)調(diào)整,由于軟件修改反應(yīng)速度慢,可能導(dǎo)致當(dāng)前會(huì)話(huà)流的中斷,并且加重網(wǎng)管的負(fù)擔(dān)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種鏈路聚合的實(shí)現(xiàn)方法,以解決現(xiàn)有技術(shù)對(duì)轉(zhuǎn)發(fā)端的選擇方法導(dǎo)致鏈路負(fù)載不能很好平衡的問(wèn)題。
為了實(shí)現(xiàn)上述目的,本發(fā)明提供下述技術(shù)方案一種鏈路聚合的實(shí)現(xiàn)方法,包括步驟A、將交換設(shè)備的多個(gè)鏈路聚合成一個(gè)鏈路聚合組;B、將所述鏈路聚合組的下一級(jí)鏈路分為多組鏈路,并使所述多組鏈路中的每組鏈路對(duì)應(yīng)鏈路聚合組中的一個(gè)成員鏈路;C、使每組鏈路的上行數(shù)據(jù)流由對(duì)應(yīng)的成員鏈路轉(zhuǎn)發(fā)。
根據(jù)上述技術(shù)方案步驟B中是指用所述鏈路聚合組中的成員鏈路數(shù)將該鏈路聚合組的下一級(jí)鏈路均分或基本均分為多組鏈路。
步驟C包括步驟交換設(shè)備從下一鏈路接收到上行數(shù)據(jù)報(bào)文,并從該數(shù)據(jù)報(bào)文中獲得源端口號(hào);根據(jù)所述源端口號(hào)從上行端口分組表中確定該鏈路所屬的分組;
根據(jù)所述分組確定對(duì)應(yīng)的成員鏈路;以及將所述數(shù)據(jù)報(bào)文通過(guò)所述成員鏈路端口轉(zhuǎn)發(fā)。
當(dāng)檢測(cè)到一成員鏈路失效時(shí),自動(dòng)將該成員鏈路對(duì)應(yīng)的一組鏈路的上行數(shù)據(jù)流切換到另一成員鏈路。
當(dāng)檢測(cè)到失效的成員鏈路恢復(fù)為有效時(shí),自動(dòng)將對(duì)應(yīng)的一組鏈路的上行數(shù)據(jù)流切換回該成員鏈路。
所上行數(shù)據(jù)流述切換由硬件控制模塊實(shí)現(xiàn)。
本發(fā)明通過(guò)上行流量按照用戶(hù)端口分組進(jìn)行流量的分擔(dān),可以避免過(guò)多用戶(hù)端口的上行流量從一個(gè)上行端口走,避免鏈路出現(xiàn)擁塞現(xiàn)象;當(dāng)聚合鏈路中某一條鏈路出現(xiàn)斷路的情況時(shí),無(wú)需軟件干涉,硬件能夠根據(jù)檢測(cè)鏈路的結(jié)果直接調(diào)整上行流量從聚合鏈路中工作正常的鏈路轉(zhuǎn)發(fā),實(shí)現(xiàn)自動(dòng)切換,保證聚合鏈路的冗余性。
圖1為現(xiàn)有技術(shù)中鏈路聚合示意圖;圖2為現(xiàn)有技術(shù)中從鏈路聚合中選擇轉(zhuǎn)發(fā)端口的示意圖;圖3為本發(fā)明的鏈路聚合示意圖;圖4為本發(fā)明硬件切換示意圖。
具體實(shí)施例方式
參閱3所示,以三層交換機(jī)和二層交換機(jī)為例。三層交換機(jī)與二層交換機(jī)之間通過(guò)兩個(gè)物理鏈路連接,這兩個(gè)鏈路聚合為一個(gè)聚合鏈路組,分別對(duì)應(yīng)端口25、26。聚合鏈路的下一級(jí)鏈路,即二層交換機(jī)的用戶(hù)鏈路,共有24個(gè)。將24個(gè)用戶(hù)鏈路平均分為兩組,即A組和B組。A組鏈路中的用戶(hù)端口1~12對(duì)應(yīng)于與端口25相連的成員鏈路,即A組的上行流量通過(guò)上行口端口25轉(zhuǎn)發(fā);B組鏈路中的用戶(hù)端口13~24對(duì)應(yīng)于與端口26相連接的成員鏈路,即B組的上行流量通過(guò)上行口端口26轉(zhuǎn)發(fā)。
通過(guò)對(duì)二層交換機(jī)進(jìn)行配置來(lái)完成用戶(hù)端口的分組,分組配置完成后在二層交換機(jī)中建立上行端口分組表,使同一組的用戶(hù)端口對(duì)應(yīng)一個(gè)上行端口25或26。
參閱圖4所示,二層交換機(jī)從用戶(hù)端口收到上行數(shù)據(jù)幀后,首先得到輸入數(shù)據(jù)幀的源端口號(hào);用源端口號(hào)對(duì)照上行端口分組表,判斷該源端口屬于哪個(gè)分組,若屬于A組,上行流量即從端口26走,若屬于B組,上行流量即從端口25走,得到一個(gè)預(yù)轉(zhuǎn)發(fā)端口;接著判斷該上行端口的鏈接狀態(tài),如果鏈路工作正常,則從這個(gè)端口轉(zhuǎn)發(fā)數(shù)據(jù)幀;如果鏈接工作不正常就從另外一個(gè)上行口轉(zhuǎn)發(fā)數(shù)據(jù)幀。
成員鏈路25、26的狀態(tài)指示可以通過(guò)硬件的自動(dòng)檢測(cè)和軟件的設(shè)置兩種方式,即上行端口的鏈路是否正常可由硬件檢測(cè)或軟件通知。當(dāng)檢測(cè)到第一個(gè)上行端口25出現(xiàn)鏈路故障時(shí),A組的用戶(hù)自動(dòng)切換,上行流量均從第二個(gè)上行26端口走;當(dāng)檢測(cè)到鏈路恢復(fù)時(shí),即上行端口25能正常工作,A組用戶(hù)自動(dòng)切換回原來(lái)的配置,上行流量均從第一個(gè)上行端口25走。同樣當(dāng)?shù)诙€(gè)上行端口出現(xiàn)鏈路故障時(shí),B組的用戶(hù)可以實(shí)現(xiàn)自動(dòng)切換,上行流量均從第一個(gè)上行25端口走,當(dāng)鏈路恢復(fù)時(shí),即上行端口26能正常工作,B組用戶(hù)能夠自動(dòng)切換回原來(lái)的配置,上行流量均從第二個(gè)上行端口26走。這樣當(dāng)鏈路發(fā)生異常情況時(shí),無(wú)需軟件干涉,硬件自動(dòng)切換上行端口保證鏈路的正常工作,實(shí)現(xiàn)鏈路熱備份的功能。硬件自動(dòng)切換通過(guò)一個(gè)端口選擇電路實(shí)現(xiàn)。
以上只考慮了兩個(gè)上行口的簡(jiǎn)單處理流程,對(duì)于3個(gè)上行端口及以上同樣適用。只是在進(jìn)行切換時(shí),可以隨機(jī)指定一個(gè)上行端口,最佳方式是選擇上行端口中當(dāng)前負(fù)荷最輕的上行端口。
對(duì)于用戶(hù)端口,可根據(jù)流量情況靈活配置分組,一般情況下的最佳方式是利用上行端口的數(shù)量(鏈路聚合組中成員鏈路的數(shù)量)將用戶(hù)端口均分或基本均分為多組。如上行端口數(shù)為3,用戶(hù)端口數(shù)為24,則分為8/8/8三組。另一種情況,如上行端口數(shù)為3,用戶(hù)端口數(shù)為20,則分為7/7/6三組(基本均分)。
上述分組負(fù)荷分擔(dān)同樣適用于多個(gè)級(jí)聯(lián)口的聚合。
本發(fā)明適用于下層設(shè)備與上層設(shè)備進(jìn)行匯聚的鏈路。
本發(fā)明通過(guò)分組實(shí)現(xiàn)負(fù)荷分擔(dān),避免在上行端口正常情況下,多個(gè)用戶(hù)端口的上行流量從一個(gè)上行端口走,造成端口擁塞,并且可以根據(jù)鏈路狀況實(shí)現(xiàn)硬件自動(dòng)切換上行端口而不影響正常的上行流量。
權(quán)利要求
1.一種鏈路聚合的實(shí)現(xiàn)方法,其特征在于包括步驟A、將交換設(shè)備的多個(gè)鏈路聚合成一個(gè)鏈路聚合組;B、將所述鏈路聚合組的下一級(jí)鏈路分為多組鏈路,并使所述多組鏈路中的每組鏈路對(duì)應(yīng)鏈路聚合組中的一個(gè)成員鏈路;C、使每組鏈路的上行數(shù)據(jù)流由對(duì)應(yīng)的成員鏈路轉(zhuǎn)發(fā)。
2.如權(quán)利要求1所述的方法,其特征在于,步驟B中是指用所述鏈路聚合組中的成員鏈路數(shù)將該鏈路聚合組的下一級(jí)鏈路均分或基本均分為多組鏈路。
3.如權(quán)利要求1或2所述的方法,其特征在于,步驟C包括步驟交換設(shè)備從下一鏈路接收到上行數(shù)據(jù)報(bào)文,并從該數(shù)據(jù)報(bào)文中獲得源端口號(hào);根據(jù)所述源端口號(hào)從上行端口分組表中確定該鏈路所屬的分組;根據(jù)所述分組確定對(duì)應(yīng)的成員鏈路;以及將所述數(shù)據(jù)報(bào)文通過(guò)所述成員鏈路端口轉(zhuǎn)發(fā)。
4.如權(quán)利要求3所述的方法,其特征在于,當(dāng)檢測(cè)到一成員鏈路失效時(shí),自動(dòng)將該成員鏈路對(duì)應(yīng)的一組鏈路的上行數(shù)據(jù)流切換到另一成員鏈路。
5.如權(quán)利要求4所述的方法,其特征在于,所述另一成員鏈路為鏈路聚合組中當(dāng)前負(fù)荷最輕的成員鏈路。
6.如權(quán)利要求4所述的方法,其特征在于,當(dāng)檢測(cè)到失效的成員鏈路恢復(fù)為有效時(shí),自動(dòng)將對(duì)應(yīng)的一組鏈路的上行數(shù)據(jù)流切換回該成員鏈路。
7.如權(quán)利要求4所述的方法,其特征在于,所上行數(shù)據(jù)流述切換由硬件控制模塊實(shí)現(xiàn)。
全文摘要
本發(fā)明公開(kāi)了一種鏈路聚合的實(shí)現(xiàn)方法,該方法為將交換設(shè)備的多個(gè)鏈路聚合成一個(gè)鏈路聚合組;將所述鏈路聚合組的下一級(jí)鏈路分為多組鏈路,并使所述多組鏈路中的每組鏈路對(duì)應(yīng)鏈路聚合組中的一個(gè)成員鏈路;使每組鏈路的上行數(shù)據(jù)流由對(duì)應(yīng)的成員鏈路轉(zhuǎn)發(fā)。
文檔編號(hào)H04M3/00GK1571354SQ03147380
公開(kāi)日2005年1月26日 申請(qǐng)日期2003年7月12日 優(yōu)先權(quán)日2003年7月12日
發(fā)明者陳華彬, 王斌, 王稷, 李中華, 夏世長(zhǎng), 鐔銳, 馬敬興, 付紅松, 王萬(wàn)萬(wàn), 鄭為國(guó) 申請(qǐng)人:華為技術(shù)有限公司