專利名稱::一種防止聚合鏈路中流量中斷的方法及裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,特別是涉及一種防止聚合鏈路中流量中斷的方法及裝置。
背景技術(shù):
:聚合鏈路是將多個物理以太網(wǎng)端口聚合在一起形成一個邏輯上的聚合組,使用聚合鏈路服務(wù)的上層實體把同一聚合組內(nèi)的多條物理鏈路視為一條邏輯鏈路。其中,聚合鏈路可以實現(xiàn)出/入負荷在聚合組中各個成員端口之間分擔(dān),以增加帶寬;同時,同一聚合組的各個成員端口之間彼此動態(tài)備份,提高了連接可靠性。具體的,聚合鏈路是基于LACP(LinkAggregationControlProtocol,鏈路聚合控制協(xié)議)實現(xiàn)的,該LACP是一種實現(xiàn)鏈路動態(tài)聚合與解聚合的協(xié)議,并通過LACPDU(LinkAggregationControlProtocolDataUnit,鏈路匯聚控制協(xié)議數(shù)據(jù)單元)與對端交互鏈路狀態(tài)信息,確定聚合鏈路中各個成員端口的Selected(選中)狀態(tài)與非選中狀態(tài)。其中,在聚合鏈路時,將根據(jù)成員端口的某些配置自動生成一個配置組合,稱為操作key,而處于Selected狀態(tài)的成員端口具有相同的操作Key。在實際應(yīng)用中,影響該操作key的配置稱為第二類配置,例如,VLAN(VirtualLocalAreaNetwork,虛擬局域網(wǎng))配置、MAC(MediaAccessControl,媒體訪問控制)地址學(xué)習(xí)配置、QINQ配置和端口隔離配置等;而如果成員端口與聚合接口的第二類配置不同時,則該成員端口將不能成為Selected端口。在現(xiàn)有技術(shù)中,當選中成員端口的第二類配置發(fā)生變化時,該成員端口將不再是選中端口,此時,本端設(shè)備和對端設(shè)備將會交互LACPDU報文,并重新獲取選中端口,即聚合組成員端口的選中狀態(tài)會發(fā)生變化,從而導(dǎo)致用戶流量的丟失。如圖1所示,A設(shè)備的eth1/1、ehtl/2、ethl/3三個端口和B設(shè)備ethl/l、ehtl/2、ethl/3三個端口形成了動態(tài)聚合組,各個端口的聚合參數(shù)一致,均處于選中狀態(tài);此時,當前系統(tǒng)流量轉(zhuǎn)發(fā)過程為根據(jù)MAC表項獲取流量的出端口,當出端口是聚合組時,查詢聚合表項的選中端口,并根據(jù)哈希算法從選中端口中進行哈希,進行流量的轉(zhuǎn)發(fā)。該MAC表項和聚合表項如表1和表2所示。表1<table>tableseeoriginaldocumentpage4</column></row><table>表2<table>tableseeoriginaldocumentpage5</column></row><table>當A設(shè)備ethl/1端口2類配置(例如,VLAN配置)發(fā)生變化時,A設(shè)備感知到聚合成員端口配置發(fā)生變化,會重新計算聚合組成員的狀態(tài),但是在新的狀態(tài)計算完成前,MAC表項和聚合表項都不會發(fā)生變化,因此流量轉(zhuǎn)發(fā)時,查詢MAC表項和聚合表項時,仍然是以前的選中端口,即ethl/1、ehtl/2和ethl/3都是選中的,從這3個端口上哈希后進行流量的轉(zhuǎn)發(fā),而實際上ethl/1端口的配置發(fā)生了改變,已經(jīng)不是選中端口,從而導(dǎo)致流量從ethl/1端口轉(zhuǎn)發(fā)時就會發(fā)生流量丟失的現(xiàn)象。
發(fā)明內(nèi)容本發(fā)明提供一種防止聚合鏈路中流量中斷的方法及裝置,以保證聚合鏈路中流量的不間斷轉(zhuǎn)發(fā)。為了達到上述目的,本發(fā)明提出了一種防止聚合鏈路中流量中斷的方法,應(yīng)用于包括本端設(shè)備和對端設(shè)備的系統(tǒng)中,所述本端設(shè)備的端口和所述對端設(shè)備的端口組成聚合鏈路,所述聚合鏈路中有處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,所述方法包括以下步驟所述本端設(shè)備與所述對端設(shè)備協(xié)商端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);在端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。其中,第2類配置信息發(fā)生變化的端口為所述本端設(shè)備處于選中狀態(tài)的端口時,所述方法還包括所述本端設(shè)備進入中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);端口狀態(tài)協(xié)商完成后,所述本端設(shè)備退出所述中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)。其中,通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)具體包括所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)具體包括所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備退出中轉(zhuǎn)狀態(tài)。其中,通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備;通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備。其中,所述根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā)具體包括當協(xié)商后的端口狀態(tài)處于選中狀態(tài)時,通過使用選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);當協(xié)商后的端口狀態(tài)處于非選中狀態(tài)時,不能使用非選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)?!N防止聚合鏈路中流量中斷的裝置,應(yīng)用于包括本端設(shè)備和對端設(shè)備的系統(tǒng)中,所述本端設(shè)備的端口和所述對端設(shè)備的端口組成聚合鏈路,所述聚合鏈路中有處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,所述裝置包括控制模塊,用于協(xié)商所述本端設(shè)備與所述對端設(shè)備的端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);處理模塊,與所述控制模塊電性連接,用于在所述控制模塊對端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。其中,第2類配置信息發(fā)生變化的端口為所述本端設(shè)備處于選中狀態(tài)的端口時,所述控制模塊還用于控制所述本端設(shè)備進入中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);在端口狀態(tài)協(xié)商完成后,控制所述本端設(shè)備退出所述中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)。其中,所述控制模塊還用于在通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);在通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備退出中轉(zhuǎn)狀態(tài)。其中,所述控制模塊還用于通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備;通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備。其中,所述處理模塊具體用于當協(xié)商后的端口狀態(tài)處于選中狀態(tài)時,通過使用選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);當協(xié)商后的端口狀態(tài)處于非選中狀態(tài)時,不能使用非選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)。6與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點當處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,并不立即將該第2類配置信息更新到該選中端口,而是暫時保存該第2類配置信息,從而可以使用該選中端口繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù),從而保證了數(shù)據(jù)的不間斷轉(zhuǎn)發(fā)。解決了聚合重新計算過程中導(dǎo)致聚合組流量丟失的問題,保證聚合組帶寬得到最大程度的利用,提高了鏈路穩(wěn)定性,更好的實現(xiàn)了負載分擔(dān)。圖1為現(xiàn)有技術(shù)中的聚合組的示意圖;圖2為本發(fā)明提出的一種防止聚合鏈路中流量中斷的方法流程圖;圖3為本發(fā)明應(yīng)用場景下提出的一種防止聚合鏈路中流量中斷的方法流程圖;圖4為本發(fā)明應(yīng)用場景下提出的標準的LACP報文格式示意圖;圖5為本發(fā)明提出的一種防止聚合鏈路中流量中斷的裝置結(jié)構(gòu)圖。具體實施例方式本發(fā)明的基本思想是當處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,并不立即將該第2類配置信息更新到該選中端口,而是暫時保存該第2類配置信息,并進入到中轉(zhuǎn)狀態(tài),在中轉(zhuǎn)狀態(tài)下,由于該選中端口的第2類配置信息沒有更新,即可以使用該選中端口繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)。第2類配置信息發(fā)生變化的同時,本端設(shè)備和對端設(shè)備將進行協(xié)商,重新獲取端口狀態(tài),當獲取完成后,退出中轉(zhuǎn)狀態(tài),此時,可以根據(jù)新的端口狀態(tài)進行數(shù)據(jù)轉(zhuǎn)發(fā),由于選中端口的第2類配置信息發(fā)生變化,在重新獲取的端口狀態(tài)中,該選中端口將不再是選中端口,不需要使用該端口進行數(shù)據(jù)轉(zhuǎn)發(fā),從而保證了數(shù)據(jù)的不間斷轉(zhuǎn)發(fā),解決了聚合重新計算過程中導(dǎo)致聚合組流量丟失的問題,保證聚合組帶寬得到最大程度的利用,提高了鏈路穩(wěn)定性,更好的實現(xiàn)了負載分擔(dān)。如圖2所示,本發(fā)明提出的一種防止聚合鏈路中流量中斷的方法,應(yīng)用于包括本端設(shè)備和對端設(shè)備的系統(tǒng)中,所述本端設(shè)備的端口和所述對端設(shè)備的端口組成聚合鏈路,所述聚合鏈路中有處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,所述方法包括以下步驟步驟S201,所述本端設(shè)備與所述對端設(shè)備協(xié)商端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)。步驟S202,在端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。以下結(jié)合一種具體的應(yīng)用場景,對本發(fā)明下提出的防止聚合鏈路中流量中斷的方法進行詳細說明,該防止流量中斷方法應(yīng)用在聚合鏈路中,當聚合成員端口的第2類配置發(fā)生變化時,通過在聚合鏈路中增加中轉(zhuǎn)狀態(tài),維持流量的不間斷轉(zhuǎn)發(fā),其中,該第2類配置包括但不限于端口隔離(即端口是否加入隔離組、端口所屬的端口隔離組);QinQ配置(即端口的QinQ功能開啟/關(guān)閉狀態(tài);添加的外層VLANTag;內(nèi)外層VLAN優(yōu)先級映射關(guān)系;不同內(nèi)層VLANID添加外層VLANTag的策略;內(nèi)層VLANID替換關(guān)系等);VLAN配置(即端口上允許通過的VLAN;端口缺省時的VLANID;端口的鏈7路類型,例如,Trunk類型、Hybrid類型、Access類型;基于IP子網(wǎng)的VLAN配置;基于協(xié)議的VLAN配置;VLAN報文是否帶Tag配置等);MAC地址學(xué)習(xí)配置(即是否具有MAC地址學(xué)習(xí)功能、端口是否具有最大學(xué)習(xí)MAC地址個數(shù)的限制、MAC地址表滿后是否繼續(xù)轉(zhuǎn)發(fā)等)。如圖3所示,該防止流量中斷方法包括以下步驟步驟S301,在聚合鏈路中獲取端口狀態(tài),其中,該端口狀態(tài)為選中狀態(tài),或非選中狀態(tài);處于選中狀態(tài)的端口可以參與轉(zhuǎn)發(fā)用戶的業(yè)務(wù)流量;而處于非選中狀態(tài)(Unselected狀態(tài))的端口不能轉(zhuǎn)發(fā)用戶的業(yè)務(wù)流量。具體的,在聚合鏈路中設(shè)置成員端口選中狀態(tài)的方式具體為本端設(shè)備和對端設(shè)備進行協(xié)商,并根據(jù)兩端設(shè)備中設(shè)備ID較優(yōu)一端的端口ID的大小,來決定兩端端口的狀態(tài)。其中,具體的協(xié)商步驟包括(1)比較兩端設(shè)備的設(shè)備ID(該設(shè)備ID為設(shè)備的LACP協(xié)議優(yōu)先級與設(shè)備的MAC地址)。其中,本步驟中,應(yīng)先比較設(shè)備的LACP協(xié)議優(yōu)先級,當LACP協(xié)議優(yōu)先級相同時比較設(shè)備的MAC地址;設(shè)備的LACP協(xié)議優(yōu)先級和MAC地址越小,設(shè)備ID越??;而設(shè)備ID小的一端為較優(yōu)的一端。(2)比較設(shè)備ID較優(yōu)一端的端口ID(端口ID為端口的LACP協(xié)議優(yōu)先級與端口號)。其中,對于設(shè)備ID較優(yōu)一端的各個端口,先比較端口的LACP協(xié)議優(yōu)先級,當LACP協(xié)議優(yōu)先級相同時再比較端口號,而端口的LACP協(xié)議優(yōu)先級和端口號越小,端口ID越??;而將端口ID小的端口作為參考端口。(3)將設(shè)備的端口與參考端口進行比較,當與參考端口的第二類配置相同,處于up狀態(tài)的端口;且該端口的對端端口與參考端口的對端端口的第二類配置也相同時,該端口為可能處于Selected狀態(tài)的候選端口;否則,該端口將處于Unselected狀態(tài)。(4)聚合組中處于Selected狀態(tài)的端口數(shù)是有限制的,當候選端口的數(shù)目未達到上限時,所有候選端口均為Selected狀態(tài),而其它端口為Unselected狀態(tài);當候選端口的數(shù)目超過該上限時,系統(tǒng)將按照端口ID從小到大的順序選擇一些端口保持在Selected狀態(tài),而將端口ID較大的端口變?yōu)閁nselected狀態(tài);對應(yīng)的,對端設(shè)備將會感知到狀態(tài)的改變,相應(yīng)端口的狀態(tài)將隨之發(fā)生變化。步驟S302,本端設(shè)備判斷自身,和/或?qū)Χ嗽O(shè)備的聚合組中是否有端口的第2類配置發(fā)生變化;當判斷結(jié)果為是時,轉(zhuǎn)到步驟S304,否則,轉(zhuǎn)到步驟S303。其中,在端口狀態(tài)獲取完成后,需要使用該端口進行業(yè)務(wù)流量的轉(zhuǎn)發(fā),在使用過程中,本端設(shè)備需要判斷聚合組中是否有端口的第2類配置發(fā)生變化。具體的,當本端設(shè)備自身的聚合組中有端口的第2類配置發(fā)生變化時,本端設(shè)備可以感知,而當對端設(shè)備的聚合組中有端口的第2類配置發(fā)生變化時,對端設(shè)備將會通知本端設(shè)備聚合組中有端口的第2類配置發(fā)生變化的信息。此外,本端設(shè)備可以根據(jù)預(yù)設(shè)的周期判斷自身聚合組中是否有端口的第2類配置發(fā)生變化(即本端設(shè)備周期性獲取聚合組中端口的第2類配置信息),該預(yù)設(shè)的周期為根據(jù)實際需要任意選擇的,例如,將該預(yù)設(shè)的周期設(shè)置為ls。該本端設(shè)備判斷對端設(shè)備聚合組中是否有端口的第2類配置發(fā)生變化的過程在本步驟中不再詳加描述。步驟S303,本端設(shè)備按照現(xiàn)有的聚合鏈路進行數(shù)據(jù)傳輸,即通過使用上述步驟S301中獲取的端口狀態(tài)進行數(shù)據(jù)傳輸,當端口處于選中狀態(tài)時,可以參與轉(zhuǎn)發(fā)用戶的業(yè)務(wù)流量;當端口處于非選中狀態(tài)時,不能轉(zhuǎn)發(fā)用戶的業(yè)務(wù)流量。步驟S304,當聚合成員端口的第2類配置發(fā)生變化時,本端設(shè)備進入中轉(zhuǎn)狀態(tài),并同時發(fā)送LACP報文通知對端設(shè)備進入中轉(zhuǎn)狀態(tài),即本端設(shè)備和和對端設(shè)備進入中轉(zhuǎn)狀態(tài)。具體的,在現(xiàn)有的聚合鏈路中,存在5個狀態(tài)機,分別為Receive(接收)machine(狀態(tài)機)、Period(定其月)Transmission(傳輸)machine、Selection(選擇)Logic(邏輯)、Mux(冊!j除)machine、Transmit(傳輸)machine。(1)該Receivemachine狀態(tài)機用于接收來自對端設(shè)備的LACPDU,記錄對端設(shè)備的信息(例如,LACP信息等);并根據(jù)對端設(shè)備的信息判斷對端設(shè)備和本端設(shè)備的協(xié)議信息是否已經(jīng)達成了一致,是否都處于可用狀態(tài)。(2)該PeriodTransmissionmachine狀態(tài)機用于確定本端設(shè)備與對端設(shè)備是否需要定期發(fā)送LACPDU消息,從而判斷是否繼續(xù)維持一個聚合組;其中,當對端設(shè)備或本端設(shè)備中有一個被配置為主動LACP時,該設(shè)備將會定時發(fā)送LACPDU消息;若對端設(shè)備和本端設(shè)備都為被動LACP時,均不會定時傳送LACPDU消息。(3)該SelectionLogic狀態(tài)機用于負責(zé)為端口選擇聚合組。(4)該Mux(復(fù)用)machine狀態(tài)機用于負責(zé)將端口從一個指定的聚合組中刪除,以及根據(jù)協(xié)議信息,打開或關(guān)閉端口的收集和分配狀態(tài)。(5)Transmitmachine狀態(tài)機用于控制LACPDU的傳送。本發(fā)明中,在上述狀態(tài)的基礎(chǔ)上,增加一個中轉(zhuǎn)狀態(tài),并通過使用該中轉(zhuǎn)狀態(tài)保證在聚合重新計算的過程中(即第2類配置發(fā)生變化時),聚合組內(nèi)的端口能夠繼續(xù)轉(zhuǎn)發(fā)流量,使得流量不會丟失。如圖4所示,為一種標準的LACP報文格式(LACPDU消息格式),在該LACPDU消息中,Actor-State(主動端狀態(tài))下的Reserved(預(yù)留)字段有3個字節(jié),同樣的,partner_State(被動端狀態(tài))下的Reserved字段有3個字節(jié)。在本發(fā)明中,該Actor_State為主動LACP端,該partner_State為被動LACP端。具體的,對于標準LACPDU消息中Reserved字段的3個字節(jié),在初始時,Reserved字段值均為0,即第1個字節(jié)值和第2個字節(jié)值均為0;本發(fā)明中,通過使用Reserved字段中的第1個字節(jié)表示需要進入或退出中轉(zhuǎn)狀態(tài);通過使用Reserved字段中的第2個字節(jié)表示定時時間。進一步的,當?shù)?類配置發(fā)生變化時,本端設(shè)備進入到中轉(zhuǎn)狀態(tài),并向?qū)Χ嗽O(shè)備發(fā)送LACPDU消息,該LACPDU消息中Reserved字段第1個字節(jié)值為l(表示需要進入到中轉(zhuǎn)狀態(tài)),第2個字節(jié)值為當前的定時時間(通過使用after定時器表示開始計時的時間,例如,將第2個字節(jié)值設(shè)置為6:00,表示本端設(shè)備從6:00開始進入到中轉(zhuǎn)狀態(tài))。當本端設(shè)備需要退出中轉(zhuǎn)狀態(tài)時,向?qū)Χ嗽O(shè)備發(fā)送LACPDU消息,該LACPDU消息中Reserved字段第1個字節(jié)值為2(表示需要退出中轉(zhuǎn)狀態(tài)),第2個字節(jié)為當前的定時時間(表示結(jié)束計時的時間,例如,將第2個字節(jié)值設(shè)置為7:00,表示本端設(shè)備從7:00退出中轉(zhuǎn)狀態(tài))。需要說明的是,步驟S301中,在本端設(shè)備和對端設(shè)備進行協(xié)商時,可以確定該聚合鏈路中設(shè)備ID較優(yōu)的一端,本發(fā)明中,當前的定時時間需要以設(shè)備ID較優(yōu)的一端為準。例如,當本端設(shè)備為設(shè)備ID較優(yōu)的一端時,該本端設(shè)備可以獲取自身的時間為當前的定時時間;當對端設(shè)備是設(shè)備ID較優(yōu)的一端時,本端設(shè)備需要獲取對端設(shè)備的時間為當前的定時時間。9在本發(fā)明中,并不局限于將Reserved字段的第1個字節(jié)設(shè)置為1表示進入到中轉(zhuǎn)狀態(tài),將第1個字節(jié)設(shè)置為2表示退出中轉(zhuǎn)狀態(tài),還可以使用其他的字段,或Reserved字段的其他字節(jié),或其他的數(shù)值表示進入,和退出中轉(zhuǎn)狀態(tài),只需要在LACPDU消息中攜帶進入或退出中轉(zhuǎn)狀態(tài)的信息即可;例如,將Reserved字段的第3個字節(jié)設(shè)置為l表示進入到中轉(zhuǎn)狀態(tài),將第3個字節(jié)設(shè)置為2表示退出中轉(zhuǎn)狀態(tài),本發(fā)明中不再贅述。同樣的,本發(fā)明中也不局限于使用Reserved字段的第2個字節(jié)表示進入,或退出中轉(zhuǎn)狀態(tài)的時間,在此不再贅述。步驟S305,在中轉(zhuǎn)狀態(tài)下,本端設(shè)備保持選中端口的第2類配置信息不變,并使用選中端口繼續(xù)轉(zhuǎn)發(fā)和接收業(yè)務(wù)流量。其中,當本端設(shè)備進入到中轉(zhuǎn)狀態(tài)時,將選中端口(第2類配置信息發(fā)生變化的端口)的第2類配置信息保存起來,并不修改該選中端口的第2類配置信息,此時,可以繼續(xù)使用該選中端口轉(zhuǎn)發(fā)業(yè)務(wù)流量。同樣的,對端設(shè)備在進入到中轉(zhuǎn)狀態(tài)時,也不修改本端設(shè)備選中端口的第2類配置信息,可以使用對應(yīng)的端口繼續(xù)轉(zhuǎn)發(fā)和接收業(yè)務(wù)流量。步驟S306,退出中轉(zhuǎn)狀態(tài)后,本端設(shè)備使用保存的第2類配置信息更改對應(yīng)的選中端口,并根據(jù)新的端口狀態(tài)進行數(shù)據(jù)轉(zhuǎn)發(fā)。此外,本地設(shè)備在退出中轉(zhuǎn)狀態(tài)后,還需要通知對端設(shè)備退出中轉(zhuǎn)狀態(tài),該對端設(shè)備也需要使用保存的第2類配置信息更新對應(yīng)的選中端口,并根據(jù)新的端口狀態(tài)進行數(shù)據(jù)轉(zhuǎn)發(fā)。需要說明的是,當本端設(shè)備中有選中端口的第2類配置信息發(fā)生變化時,該本端設(shè)備將與對端設(shè)備進行協(xié)商,重新在聚合鏈路中獲取端口狀態(tài),該獲取過程為步驟S301中的獲取過程,本步驟中不再詳加描述。其中,該重新在聚合鏈路中獲取端口狀態(tài)的過程與上述在中轉(zhuǎn)狀態(tài)下保持選中端口的第2類配置信息不變的過程沒有沖突,均是在有選中端口的第2類配置信息發(fā)生變化時所進行的。當重新在聚合鏈路中獲取了端口狀態(tài)之后,本端設(shè)備將退出中轉(zhuǎn)狀態(tài),并通知對端設(shè)備退出中轉(zhuǎn)狀態(tài),此時,本端設(shè)備可以將保存的第2類配置信息更新到對應(yīng)的端口上,例如,本端設(shè)備端口1(選中端口)的第2類配置信息發(fā)生變化時,使用該保存的第2類配置信息替換該端口1的第2類配置信息,此時,由于該端口1的第2類配置信息與其他選中端口的第2類配置信息不同,該端口l不能作為選中端口(上述重新在聚合鏈路中獲取端口狀態(tài)過程中已經(jīng)不再有該端口l),即該端口l變成了非選中狀態(tài)下的端口;不能繼續(xù)轉(zhuǎn)發(fā)用戶的業(yè)務(wù)流量??梢?,通過使用上述的過程,當有選中端口(在轉(zhuǎn)發(fā)數(shù)據(jù)流量的端口)的第2類配置信息發(fā)生變化時,并不立即將該第2類配置信息更新到該選中端口,而是暫時保存該第2類配置信息,并進入到中轉(zhuǎn)狀態(tài),在中轉(zhuǎn)狀態(tài)下,由于該選中端口的第2類配置信息沒有更新,即可以使用該選中端口繼續(xù)轉(zhuǎn)發(fā)數(shù)據(jù)。第2類配置信息發(fā)生變化的同時,本端設(shè)備和對端設(shè)備將進行協(xié)商,重新獲取端口狀態(tài),當獲取完成后,退出中轉(zhuǎn)狀態(tài),此時,可以根據(jù)新的端口狀態(tài)進行數(shù)據(jù)轉(zhuǎn)發(fā),由于上述選中端口的第2類配置信息發(fā)生變化,在重新獲取的端口狀態(tài)中,該選中端口將不再是選中端口,不需要使用該端口進行數(shù)據(jù)轉(zhuǎn)發(fā),從而保證了數(shù)據(jù)的不間斷轉(zhuǎn)發(fā)。為了更加清楚的說明本發(fā)明提出的防止聚合鏈路中流量中斷的方法,下面以一個具體例子進行詳細描述,繼續(xù)以圖l所示的聚合鏈路為例進行說明,A設(shè)備的eth1/1、謂頁ehtl/2、ethl/3三個端口和B設(shè)備eth1/1、ehtl/2、ethl/3三個端口形成了聚合組。在聚合鏈路中的端口狀態(tài)獲取完成后(即上述A設(shè)備的eth1/1、ehtl/2、ethl/3、B設(shè)備ethl/1、ehtl/2、ethl/3為選中狀態(tài)),根據(jù)哈希算法從三個端口中選擇端口進行流量轉(zhuǎn)發(fā)。在該聚合鏈路的使用過程中,當A設(shè)備的ethl/l端口第2類配置發(fā)生變化時,A設(shè)備進入到中轉(zhuǎn)狀態(tài),并修改自身的聚合表,標識聚合組處于中轉(zhuǎn)狀態(tài),并保存要下發(fā)的2類配置信息,即A設(shè)備第2類配置信息的變化只下發(fā)控制面,而不需要下發(fā)到數(shù)據(jù)面,繼續(xù)保持當前端口的選中狀態(tài)不變。例如,ethl/l端口的VLAN信息發(fā)生變化后,并不修改該ethl/1端口的VLAN信息,保持該VLAN信息為當前的信息。在A設(shè)備進入到中轉(zhuǎn)狀態(tài)的同時,向?qū)Χ嗽O(shè)備發(fā)送LACP報文(即LACPDU消息),并置reserve字段為l(表示需要進入到中轉(zhuǎn)狀態(tài)),通知B設(shè)備該A設(shè)備的聚合端口狀態(tài)發(fā)生變化,進入中轉(zhuǎn)狀態(tài),需要B也保持端口選中狀態(tài)不變,進入中轉(zhuǎn)狀態(tài)。其中,該LACP報文可以是A設(shè)備的ethl/2端口和ethl/3端口進行發(fā)送的。進一步的,當設(shè)備處于中轉(zhuǎn)狀態(tài)時,又有端口的狀態(tài)發(fā)生變化(第2類配置發(fā)生變化),此時設(shè)備仍然處于中轉(zhuǎn)狀態(tài)。如表3所示,為處于中轉(zhuǎn)狀態(tài)時A設(shè)備與B設(shè)備的聚合表,可見,在該聚合表中有中轉(zhuǎn)狀態(tài)標識。表3聚合組標識成員端口成員端口狀態(tài)操作key優(yōu)先級中轉(zhuǎn)狀態(tài)聚合組1Ethl/1選中132768是在A設(shè)備的ethl/1端口第2類配置發(fā)生變化時,A設(shè)備與B設(shè)備將繼續(xù)協(xié)商計算新的端口狀態(tài);協(xié)商統(tǒng)一后,A設(shè)備向B設(shè)備發(fā)送LACP報文,置reserve字段為2(表示需要退出中轉(zhuǎn)狀態(tài)),通知B設(shè)備A已經(jīng)完成協(xié)商,可以退出中轉(zhuǎn)狀態(tài),并在after定時器(Reserved字段的第2個字節(jié))中設(shè)置退出中轉(zhuǎn)狀態(tài)的時間。例如將after定時器設(shè)置為7:00,表示A設(shè)備與B設(shè)備將在7:00退出中轉(zhuǎn)狀態(tài),并轉(zhuǎn)入到計算后的聚合狀態(tài),即通過使用新計算的端口狀態(tài)進行數(shù)據(jù)轉(zhuǎn)發(fā)。在A設(shè)備、B設(shè)備退出中轉(zhuǎn)狀態(tài)后,將修改自身的聚合表,將ethl/l端口置于非選中狀態(tài),并將中轉(zhuǎn)狀態(tài)置于否,同時將ethl/1端口修改后的2類配置下發(fā)到數(shù)據(jù)面(即將ethl/1端口的第2類配置更改為變化后的第2類配置),此時A設(shè)備的聚合表如表4所示。表4聚合組標識成員端口成員端口狀態(tài)操作key優(yōu)先級中轉(zhuǎn)狀態(tài)聚合組1Ethl/1非選中432768否11<table>tableseeoriginaldocumentpage12</column></row><table>可以看出,當聚合組重新計算過程完成后,修改聚合表,將ehtl/l置為非選中狀態(tài),發(fā)送LACPDU消息給B設(shè)備,重新協(xié)商選中端口,協(xié)商結(jié)果為eht1/2、ethl/3兩個端口成為選中端口,流量根據(jù)哈希算法從這兩個端口選擇出端口進行轉(zhuǎn)發(fā),此時流量能夠正常的發(fā)送和接收。本發(fā)明提出的一種防止聚合鏈路中流量中斷的裝置,應(yīng)用于包括本端設(shè)備和對端設(shè)備的系統(tǒng)中,所述本端設(shè)備的端口和所述對端設(shè)備的端口組成聚合鏈路,所述聚合鏈路中有處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,如圖5所示,所述裝置包括控制模塊51,用于協(xié)商所述本端設(shè)備與所述對端設(shè)備的端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)。其中,第2類配置信息發(fā)生變化的端口為所述本端設(shè)備處于選中狀態(tài)的端口時,所述控制模塊51還用于控制所述本端設(shè)備進入中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);在端口狀態(tài)協(xié)商完成后,控制所述本端設(shè)備退出所述中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)。具體的,在通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,所述控制模塊51還用于在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);在通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,所述控制模塊51還用于在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備退出中轉(zhuǎn)狀態(tài)。進一步的,通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,所述控制模塊51還用于在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備;通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,所述控制模塊51還用于在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備。需要說明的是,第2類配置信息發(fā)生變化的端口為所述對端設(shè)備處于選中狀態(tài)的端口時,所述控制模塊51具有類似的功能,本發(fā)明中不再贅述。處理模塊52,與所述控制模塊電性連接,用于在所述控制模塊對端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。其中,當協(xié)商后的端口狀態(tài)處于選中狀態(tài)時,所述處理模塊52用于通過使用選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);當協(xié)商后的端口狀態(tài)處于非選中狀態(tài)時,不能使用非選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)。其中,本發(fā)明裝置的各個模塊可以集成于一體,也可以分離部署。上述模塊可12以合并為一個模塊,也可以進一步拆分成多個子模塊。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進行分布于實施例的裝置中,也可以進行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進一步拆分成多個子模塊。上述本發(fā)明序號僅僅為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護范圍。權(quán)利要求一種防止聚合鏈路中流量中斷的方法,其特征在于,應(yīng)用于包括本端設(shè)備和對端設(shè)備的系統(tǒng)中,所述本端設(shè)備的端口和所述對端設(shè)備的端口組成聚合鏈路,所述聚合鏈路中有處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,所述方法包括以下步驟所述本端設(shè)備與所述對端設(shè)備協(xié)商端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);在端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。2.如權(quán)利要求1所述的方法,其特征在于,第2類配置信息發(fā)生變化的端口為所述本端設(shè)備處于選中狀態(tài)的端口時,所述方法還包括所述本端設(shè)備進入中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);端口狀態(tài)協(xié)商完成后,所述本端設(shè)備退出所述中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)。3.如權(quán)利要求2所述的方法,其特征在于,通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)具體包括所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)具體包括所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備退出中轉(zhuǎn)狀態(tài)。4.如權(quán)利要求3所述的方法,其特征在于,通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備;通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,所述本端設(shè)備在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備。5.如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā)具體包括當協(xié)商后的端口狀態(tài)處于選中狀態(tài)時,通過使用選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);當協(xié)商后的端口狀態(tài)處于非選中狀態(tài)時,不能使用非選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)。6.—種防止聚合鏈路中流量中斷的裝置,其特征在于,應(yīng)用于包括本端設(shè)備和對端設(shè)備的系統(tǒng)中,所述本端設(shè)備的端口和所述對端設(shè)備的端口組成聚合鏈路,所述聚合鏈路中有處于選中狀態(tài)的端口的第2類配置信息發(fā)生變化時,所述裝置包括控制模塊,用于協(xié)商所述本端設(shè)備與所述對端設(shè)備的端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);處理模塊,與所述控制模塊電性連接,用于在所述控制模塊對端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。7.如權(quán)利要求6所述的裝置,其特征在于,第2類配置信息發(fā)生變化的端口為所述本端設(shè)備處于選中狀態(tài)的端口時,所述控制模塊還用于控制所述本端設(shè)備進入中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);在端口狀態(tài)協(xié)商完成后,控制所述本端設(shè)備退出所述中轉(zhuǎn)狀態(tài),并通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)。8.如權(quán)利要求7所述的裝置,其特征在于,所述控制模塊還用于在通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài);在通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的信息,并將所述LACPDU消息發(fā)送給所述對端設(shè)備,以通知所述對端設(shè)備退出中轉(zhuǎn)狀態(tài)。9.如權(quán)利要求8所述的裝置,其特征在于,所述控制模塊還用于通知所述對端設(shè)備進入中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶進入中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備;通知所述對端設(shè)備退出所述中轉(zhuǎn)狀態(tài)時,在LACPDU消息中的Reserved字段攜帶退出中轉(zhuǎn)狀態(tài)的時間,并將所述LACPDU消息發(fā)送給所述對端設(shè)備。10.如權(quán)利要求6所述的裝置,其特征在于,所述處理模塊具體用于當協(xié)商后的端口狀態(tài)處于選中狀態(tài)時,通過使用選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);當協(xié)商后的端口狀態(tài)處于非選中狀態(tài)時,不能使用非選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā)。全文摘要本發(fā)明公開了一種防止聚合鏈路中流量中斷的方法,包括所述本端設(shè)備與所述對端設(shè)備協(xié)商端口狀態(tài),并保持當前處于選中狀態(tài)的端口的第2類配置信息不變,使用所述當前處于選中狀態(tài)的端口進行流量的轉(zhuǎn)發(fā);在端口狀態(tài)協(xié)商完成后,根據(jù)協(xié)商后的端口狀態(tài)進行流量的轉(zhuǎn)發(fā),并使用變化后的第2類配置信息更新對應(yīng)的端口。本發(fā)明中,保證聚合組帶寬得到最大程度的利用,提高了鏈路穩(wěn)定性,更好的實現(xiàn)了負載分擔(dān)。文檔編號H04L29/06GK101692652SQ20091017753公開日2010年4月7日申請日期2009年9月15日優(yōu)先權(quán)日2009年9月15日發(fā)明者王芳申請人:杭州華三通信技術(shù)有限公司