專利名稱:堆疊系統(tǒng)的拓撲收斂方法及成員設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)通信技術(shù)領(lǐng)域,具體涉及一種堆疊技術(shù)中的拓撲信息收斂方法及成員設(shè)備。
背景技術(shù):
堆疊技術(shù)是通過堆疊電纜將多臺網(wǎng)絡(luò)設(shè)備連接在一起組成堆疊系統(tǒng)(StackingSystem, SS),以便在有限的空間內(nèi)提供盡可能多的端口 ;對外呈現(xiàn)為一臺虛擬的較大型的設(shè)備。堆疊系統(tǒng)中的這些網(wǎng)絡(luò)設(shè)備統(tǒng)稱為堆疊系統(tǒng)的成員設(shè)備。每兩臺成員設(shè)備之間建立的堆疊鏈路稱為虛擬交換鏈路(VSL, Virtual Switching link),參與堆疊的多臺成員設(shè)備中,其中一臺成員設(shè)備為主設(shè)備(Master設(shè)備),其他成員設(shè)備都為從設(shè)備(Slave設(shè)備),其中,Master設(shè)備為Active (活動)狀態(tài),充當管理者和控制者的角色,其配置生效,而Slave設(shè)備則為Standby (備用)狀態(tài),其配置不生效。圖1是一個典型的堆疊系統(tǒng)的示意圖,包括三臺成員設(shè)備,其中,成員設(shè)備2為主設(shè)備,成員設(shè)備I和成員設(shè)備3均為從設(shè)備。堆疊系統(tǒng)形成前需要先進行拓撲信息收集,在堆疊系統(tǒng)中的拓撲信息已經(jīng)同步到所有成員設(shè)備后,各成員設(shè)備分別進入角色選舉狀態(tài),根據(jù)預設(shè)的選舉算法,選舉出主設(shè)備,其它成員設(shè)備都為從設(shè)備,并確定堆疊拓撲中的轉(zhuǎn)發(fā)路線。因此能夠快速且完整的將所有成員設(shè)備的信息同步到堆疊系統(tǒng)的所有成員設(shè)備,在物理線路不穩(wěn)定或者其它可能導致拓撲震蕩的因素影響下,如何確保堆疊系統(tǒng)的拓撲能夠穩(wěn)定收斂,避免多次進入角色選舉,成為堆疊系統(tǒng)穩(wěn)定的關(guān)鍵因素。拓撲收斂方法沒有統(tǒng)一標準,現(xiàn)有技術(shù)中一般是先將所有成員設(shè)備信息發(fā)送到主設(shè)備,再由主設(shè)備將堆疊系統(tǒng)中的拓撲信息同步到堆疊系統(tǒng)的所有從設(shè)備。通常情況下,如果是先將成員設(shè)備信息發(fā)送 到主設(shè)備,再由主設(shè)備同步到堆疊系統(tǒng)的所有從設(shè)備,這樣就要求必須預先選舉出一個主設(shè)備,如果選舉算法選擇不當,很容易出現(xiàn)主設(shè)備切換及反復選舉,影響堆疊的穩(wěn)定性。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的目的是提供堆疊系統(tǒng)的拓撲收斂方法,在無需預選主設(shè)備的情況下,通過廣播方式快速將堆疊系統(tǒng)中的拓撲信息同步到堆疊系統(tǒng)中的所有成員設(shè)備,減少堆疊形成時間,提升堆疊形成的穩(wěn)定性。本發(fā)明的技術(shù)方案是一種堆疊系統(tǒng)的拓撲收斂方法,具體包括A.每個成員設(shè)備在其連接的某條虛擬交換鏈路達到連通狀態(tài)后,發(fā)送拓撲收集報文到該虛擬交換鏈路的對端成員設(shè)備進行拓撲收集,并從該虛擬交換鏈路的對端成員設(shè)備接收拓撲收集報文,當從該虛擬交換鏈路的對端成員設(shè)備收到的拓撲收集報文中的成員設(shè)備信息與本地保存的成員設(shè)備信息一致時,所述成員設(shè)備設(shè)置該條虛擬交換鏈路為已收斂狀態(tài);B.每個成員設(shè)備判斷其連接的所有虛擬交換鏈路為已收斂狀態(tài)后,確定本成員設(shè)備為已收斂狀態(tài),并通過拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備;C.每個成員設(shè)備判斷堆疊系統(tǒng)中所有成員設(shè)備為已收斂狀態(tài)后,確定堆疊系統(tǒng)拓撲收斂完成,按照預設(shè)的選舉規(guī)則啟動主設(shè)備選舉。進一步的,所述步驟A之前,還包括如下初始化步驟A0.每個成員設(shè)備中,建立用于在本設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備的拓撲收集狀態(tài)的拓撲收集狀態(tài)表,以及建立用于在本設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備信息的成員設(shè)備信息表。具體的,所述拓撲收集狀態(tài)表中還記錄有本設(shè)備連接的所有達到連通狀態(tài)的虛擬交換鏈路的拓撲收集狀態(tài)信息。所述步驟AO進一步包括,每個成員設(shè)備計算其摘要信息,并記錄在本設(shè)備的拓撲收集狀態(tài)表中,并將所述拓撲收集狀態(tài)表中記錄的堆疊系統(tǒng)中除本設(shè)備之外的其他成員設(shè)備的摘要信息初始化為O。具體的,步驟A中 ,當每個成員設(shè)備從其連接的某條虛擬交換鏈路的對端設(shè)備收到的拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致時,則將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到本地保存的成員設(shè)備信息表中,并更新本地拓撲收集狀態(tài)表對應成員設(shè)備的摘要信息;并將該虛擬交換鏈的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;否則,該虛擬交換鏈的拓撲收集狀態(tài)設(shè)置為已收斂狀態(tài)。具體的,成員設(shè)備更新本地拓撲收集狀態(tài)表對應成員設(shè)備的摘要信息的方法為成員設(shè)備依據(jù)本地成員設(shè)備信息表中更新后的對應成員設(shè)備信息,通過MD5算法重新計算該對應成員設(shè)備的摘要信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備的摘要信息。具體的,當每個成員設(shè)備從其連接的某條虛擬交換鏈路的對端設(shè)備收到的拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致時,在將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到本地保存的成員設(shè)備信息表之前,判斷成員設(shè)備信息表保存的摘要信息不一致的成員設(shè)備對應的虛擬交換鏈路與本次接收拓撲收集報文的虛擬交換鏈路是否相同,如是,將拓撲收集報文中包括的該成員設(shè)備信息更新到本地保存的成員設(shè)備信息表,否則不進行后續(xù)處理。具體的,步驟B中,每個成員設(shè)備當判斷其連接的某條虛擬交換鏈路為已收斂狀態(tài)后,判斷本設(shè)備連接的所有虛擬交換鏈路是否為已收斂狀態(tài),如是,則確定本成員設(shè)備為已收斂狀態(tài),并發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備,所述拓撲收集報文中包括本設(shè)備的已收斂狀態(tài)和本地所有成員設(shè)備的摘要信息;否則,向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文。本發(fā)明的另一個目的,還提供一種堆疊系統(tǒng)的拓撲收斂方法的成員設(shè)備,包括拓撲收集模塊和成員設(shè)備信息學習模塊,所述拓撲收集模塊,用于所在成員設(shè)備連接的某條虛擬交換鏈路達到連通狀態(tài)后,發(fā)送拓撲收集報文到該虛擬交換鏈路的對端成員設(shè)備進行拓撲收集,當從該虛擬交換鏈路的對端成員設(shè)備收到的拓撲收集報文中的成員設(shè)備信息與本地保存的成員設(shè)備信息一致時,設(shè)置該條虛擬交換鏈路為已收斂狀態(tài);并在判斷所在成員設(shè)備連接的所有虛擬交換鏈路為已收斂狀態(tài)后,確定所在成員設(shè)備為已收斂狀態(tài),并通告所在成員設(shè)備連接的所有虛擬交換鏈路的對端成員設(shè)備;所述成員設(shè)備信息學習模塊,用于所在成員設(shè)備從連接的達到連通狀態(tài)的某條虛擬交換鏈路接收到拓撲收集報文后,保存所述拓撲收集報文中的成員設(shè)備信息。進一步的,所述成員設(shè)備還包括初始化模塊,用于建立所在成員設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備的拓撲收集狀態(tài)的拓撲收集狀態(tài)表,以及用于建立所在成員設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備信息的成員設(shè)備信息表;所述拓撲收集模塊,還用于當每個成員設(shè)備從其連接的虛擬交換鏈路的對端設(shè)備收到拓撲收集報文后,判斷拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的是否一致,如是,將該虛擬交換鏈的拓撲收集狀態(tài)設(shè)置為已收斂狀態(tài);否則,通知成員設(shè)備信息學習模塊更新成員設(shè)備信息表,并更新本地拓撲收集狀態(tài)表中對應成員設(shè)備的摘要信息;將該虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;所述拓撲收集模塊,還用于當判斷所在成員設(shè)備連接的某條虛擬交換鏈路為已收斂狀態(tài)后,判斷所在成員設(shè)備連接的所有虛擬交換鏈路是否為已收斂狀態(tài),如是,則確定本成員設(shè)備為已收斂狀態(tài),并發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備,否則,向所在成員設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;所述成員設(shè)備信息學習模塊,用于將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到成員設(shè)備信息表中。 本發(fā)明的有益效果本發(fā)明的拓撲收斂方法及實施該方法的成員設(shè)備通過三階段方式進行拓撲收斂,確保堆疊系統(tǒng)中的所有成員設(shè)備進入已收斂狀態(tài)后,堆疊系統(tǒng)進入拓撲收斂,之后才進行角色選舉階段,這樣減少了在多臺成員設(shè)備堆疊情況下,因為成員設(shè)備啟動順序及時間的差異導致的堆疊拓撲震蕩。本發(fā)明的拓撲收斂方法中,所有的堆疊成員設(shè)備均為平等的關(guān)系,讓堆疊拓撲中所有成員設(shè)備快速學習到拓撲信息。
圖1是本發(fā)明實施例的堆疊系統(tǒng)的拓撲收斂方法的流程示意圖。圖2是本發(fā)明實施例的一個堆疊系統(tǒng)示意圖。圖3是本發(fā)明實施例的堆疊設(shè)備的示意圖。圖4是本發(fā)明另一實施例的堆疊設(shè)備的示意圖。
具體實施例方式本發(fā)明的基本思想是提供堆疊系統(tǒng)拓撲收斂方法,通過發(fā)送拓撲收集報文快速將堆疊系統(tǒng)中的拓撲信息同步到堆疊系統(tǒng)中的所有成員設(shè)備,減少堆疊形成時間,提升堆疊形成的穩(wěn)定性。本發(fā)明的拓撲收集報文可采用廣播報文,通過廣播方式以最快的方式將所有信息通告到了所有成員設(shè)備,減少了堆疊系統(tǒng)拓撲信息收集所需要的時間,提高了堆疊形成的穩(wěn)定性。為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚,下面通過附圖及具體實施例對本發(fā)明再作進一步的詳細描述。本發(fā)明將拓撲收斂分為三個階段的收斂,第一階段是基于虛擬交換鏈路(VSL)的收斂,第二階段是基于每個堆疊成員設(shè)備的收斂,第三階段是整個堆疊拓撲收斂。本發(fā)明實施例的堆疊系統(tǒng)的拓撲收斂方法的流程示意圖參見圖1,包括如下步驟步驟100,每個成員設(shè)備計算其摘要信息,并記錄在本設(shè)備的拓撲收集狀態(tài)表中,并將所述拓撲收集狀態(tài)表中記錄的堆疊系統(tǒng)中除本設(shè)備之外的其他成員設(shè)備的摘要信息初始化為O。本步驟中,所述拓撲收集狀態(tài)表中還記錄有本設(shè)備連接的所有達到連通狀態(tài)的虛擬交換鏈路的拓撲收集狀態(tài)信息。每個成員設(shè)備計算其摘要信息,并記錄在本設(shè)備的拓撲收集狀態(tài)表中,并將所述拓撲收集狀態(tài)表中記錄的堆疊系統(tǒng)中除本設(shè)備之外的其他成員設(shè)備的摘要信息初始化為O。針對堆疊拓撲信息通告過程中如果堆疊成員較多情況下,拓撲收集報文中成員設(shè)備信息過多導致報文過長的問題,可以通過MD5算法將每個成員信息壓縮成對應的摘要,成員設(shè)備收到拓撲收集報文后,只需要比較成員設(shè)備對應摘要即可確認是否信息一致,如果不一致,再保存并通告該成員設(shè)備的所有信息。通過這種方式,即減少了報文長度,同時也減少了信息比較的開銷。步驟101,每個成員設(shè)備在其連接的某條虛擬交換鏈路達到連通狀態(tài)后,發(fā)送拓撲收集報文到該虛擬交換鏈路的對端成員設(shè)備進行拓撲收集,并從該虛擬交換鏈路的對端成員設(shè)備接收拓撲收集報文,當從該虛擬交換鏈路的對端成員設(shè)備收到的拓撲收集報文中的成員設(shè)備信息與本地保存的成員設(shè)備信息一致時,所述成員設(shè)備設(shè)置該條虛擬交換鏈路為已收斂狀態(tài)。步驟102,每 個成員設(shè)備判斷其連接的所有虛擬交換鏈路為已收斂狀態(tài)后,確定本成員設(shè)備為已收斂狀態(tài),并通過發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備。步驟103,每個成員設(shè)備判斷堆疊系統(tǒng)中所有成員設(shè)備為已收斂狀態(tài)后,確定堆疊系統(tǒng)拓撲收斂完成,按照預設(shè)的選舉規(guī)則啟動主設(shè)備選舉。具體實施例下面以圖1所示的堆疊系統(tǒng)對上述圖2的過程進行說明。設(shè)所述堆疊系統(tǒng)包括三個成員設(shè)備,設(shè)其中的三個成員設(shè)備分別記為成員設(shè)備1、成員設(shè)備2和成員設(shè)備3,成員設(shè)備2通過第一虛擬交換鏈路和成員設(shè)備I相連,成員設(shè)備2通過第二虛擬交換鏈路和成員設(shè)備3相連。每個成員設(shè)備初始化時,都在本地的拓撲收集狀態(tài)表中為本設(shè)備維護了一個摘要信息,該摘要信息根據(jù)自身設(shè)備信息的變化而有所變化,每個成員設(shè)備均擁有一個唯一的摘要信息。以成員設(shè)備2為例詳細說明本發(fā)明的堆疊系統(tǒng)拓撲收斂的過程。以圖2所示的一個堆疊系統(tǒng)的例子說明上述步驟101具體實現(xiàn)過程,重點以成員設(shè)備2為主進行說明,由于方法和原理是一樣的,不對所有的成員設(shè)備進行詳述。成員設(shè)備2在其連接的第一虛擬交換鏈路達到連通狀態(tài)即UP狀態(tài)后,發(fā)送拓撲收集報文到該第一虛擬交換鏈路的對端成員設(shè)備即成員設(shè)備I進行拓撲收集,該拓撲收集報文中包括了成員設(shè)備2自身的摘要信息;成員設(shè)備I收到成員設(shè)備2發(fā)送的拓撲收集報文后,判斷該拓撲收集報文中包括的成員設(shè)備2的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致(本地初始化除自身設(shè)備以外的成員設(shè)備對應的摘要信息為0),則在本地的成員設(shè)備信息表中為成員設(shè)備2創(chuàng)建成員設(shè)備信息表項,并在該表項信息中保存成員設(shè)備2的編號信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備2的摘要信息。具體的更新方法為,成員設(shè)備依據(jù)本地成員設(shè)備信息表中更新后的對應成員設(shè)備信息(本處為新添加的成員設(shè)備信息表中的成員設(shè)備2的所有信息),通過MD5算法重新計算成員設(shè)備2的摘要信息,更新本地拓撲收集狀態(tài)表中成員設(shè)備2的摘要信息。成員設(shè)備I將該第一虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的第一虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息即成員設(shè)備I和成員設(shè)備2的拓撲收集報文。成員設(shè)備2收到來自于成員設(shè)備I包括成員設(shè)備I和成員設(shè)備2的拓撲收集報文,判斷該拓撲收集報文中包括的成員設(shè)備I的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致,為成員I創(chuàng)建成員設(shè)備信息表項,并在該表項信息中保存成員設(shè)備I的編號信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備I的摘要信息;將該第一虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路包括第一虛擬交換鏈路和第二虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文。這里假設(shè)第二虛擬交換鏈路已經(jīng)UP且已經(jīng)在拓撲收集中,此時,成員設(shè)備2向成員設(shè)備I發(fā)送拓撲收集報文中包括成員設(shè)備1,成員設(shè)備2和成員設(shè)備3 ;成員設(shè)備I收到來自于成員設(shè)備2的拓撲收集報文,判斷該拓撲收集報文中包括的成員設(shè)備3的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致(本地初始化除自身設(shè)備以外的成員設(shè)備對應的摘要信息為0),則在本地的成員設(shè)備信息表中為成員設(shè)備3創(chuàng)建成員設(shè)備信息表項,并在該表項信息中保存成員設(shè)備3的編號信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備3的摘要信息;將該第一虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路包括第一虛擬交換鏈路和第二虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;該拓撲收集報文中包括成員設(shè)備1,成員設(shè)備2和成員設(shè)備3 ;成員設(shè)備2從第一虛擬交換鏈路上收到來自于成員設(shè)備I的拓撲收集報文,檢查摘要信息后發(fā)現(xiàn)與本地記錄的成員設(shè)備1、成員設(shè)備2和成員設(shè)備3的摘要信息相同,則判斷第一虛擬交換鏈路進入已收斂狀態(tài);設(shè)置該第一虛擬交換鏈路進入已收斂狀態(tài)。成員設(shè)備2在其連接的第二虛擬交換鏈路達到連通狀態(tài)即UP后,發(fā)送拓撲收集報文到該第二虛擬交換鏈路的對端成員設(shè)備即成員設(shè)備3進行拓撲收集;該拓撲收集報文中包括了成員設(shè)備2自身的摘要信息;成員設(shè)備3收到成員設(shè)備2發(fā)送的拓撲收集報文后,判斷該拓撲收集報文中包括的成員設(shè)備2的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致(本地初始化除自身設(shè)備以外的成員設(shè)備對應的摘要信息為0),則在本地的成員設(shè)備信息表中為成員設(shè)備2創(chuàng)建成員設(shè)備信息表項,并在該表項信息中保存成員設(shè)備2的編號信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備2的摘要信息。成員設(shè)備3將該第二虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)第二虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息即成員設(shè)備2和成員設(shè)備3的拓撲收集報文。成員設(shè)備2收到來自于成員3的包括成員設(shè)備3和成員設(shè)備2的的拓撲收集報文,判斷該拓撲收集報文中包括的成員設(shè)備3的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致,為成員3創(chuàng)建成員設(shè)備信息表項,并在該表項信息中保存成員設(shè)備3的編號信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備3的摘要信息;將該第二虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路包括第一虛擬交換鏈路和第二虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;這里假設(shè)第一虛擬交換鏈路已經(jīng)UP且已經(jīng)在拓撲收集中,此時,成員設(shè)備2向成員設(shè)備3發(fā)送拓撲收集報文中包括成員設(shè)備1,成員設(shè)備2和成員設(shè)備3 ;成員設(shè)備3收到來自于成員設(shè)備2的拓撲收集報文,判斷該拓撲收集報文中包括的成員設(shè)備I的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致(本地初始化除自身設(shè)備以外的成員設(shè)備對應的摘要信息為0),則在本地的成員設(shè)備信息表中為成員設(shè)備I創(chuàng)建成員設(shè)備信息表項,并在該表項信息中保存成員設(shè)備I的編號信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備I的摘要信息;將該第二虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的第二虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息即包括成員設(shè)備1,成員設(shè)備2和成員設(shè)備3 ;成員設(shè)備2從第二虛擬交換鏈路上收到來自于成員設(shè)備I的拓撲收集報文,檢查摘要信息后發(fā)現(xiàn)與本地記錄的成員設(shè)備1、成員設(shè)備2和成員設(shè)備3的摘要信息相同,則判斷第二虛擬交換鏈路進入已收斂狀態(tài);設(shè)置該第二虛擬交換鏈路進入已收斂狀態(tài)。以圖2所示的堆疊系統(tǒng)的例子說明上述步驟102具體實現(xiàn)過程,重點以成員設(shè)備2為主進行說明,由于方法和原理是一樣的,不對所有的成員設(shè)備進行詳述。與成員設(shè)備2相連的第一虛擬交換鏈路和第二虛擬交換鏈路均進入已收斂狀態(tài)后,成員設(shè)備2進入已收斂狀態(tài);成員設(shè)備2向成員設(shè)備I發(fā)送拓撲收集報文,報文內(nèi)容包括成員設(shè)備2的已收斂狀態(tài)及成員設(shè)備信息,成員設(shè)備信息包括成員設(shè)備1、成員設(shè)備2和成員設(shè)備3 ;成員設(shè)備I收到來自于成員設(shè)備2的拓撲收集報文,更新本地記錄的成員設(shè)備2的拓撲收集狀態(tài)為已收斂狀態(tài);將報文中包含的成員設(shè)備1、成員設(shè)備2、成員設(shè)備3的摘要信息摘要與本地記錄的摘要進行比較發(fā)現(xiàn)一致,則認為收到報文的虛擬交換鏈路進入已收斂狀態(tài)。成員設(shè)備I判斷其相連的所有的虛擬交換鏈路都進入已收斂狀態(tài),成員設(shè)備I進入拓撲已收斂狀態(tài),并向成員設(shè)備2發(fā)送拓撲收集報文,報文內(nèi)容包括成員1、成員2的已收斂狀態(tài)及成員設(shè)備信息,成員設(shè)備`信息包括成員設(shè)備1、成員設(shè)備2、成員設(shè)備3,成員設(shè)備2收到來自于成員設(shè)備I的拓撲收集報文,并更新成員設(shè)備I的拓撲收集狀態(tài)為已收斂狀態(tài)。成員設(shè)備2向成員設(shè)備3發(fā)送拓撲收集報文,報文內(nèi)容包括成員設(shè)備2的拓撲收集狀態(tài)為已收斂狀態(tài)及成員設(shè)備信息,成員設(shè)備信息包括成員設(shè)備1、成員設(shè)備2和成員設(shè)備3 ;成員設(shè)備3收到來自于成員設(shè)備2的拓撲收集報文,更新本地拓撲收集狀態(tài)表中記錄的成員設(shè)備2的拓撲收集狀態(tài)為已收斂狀態(tài);將拓撲收集報文中包含的成員設(shè)備1、成員設(shè)備2、成員設(shè)備3的摘要信息與本地拓撲收集狀態(tài)表中記錄的摘要進行比較,本地保存的摘要信息與報文中成員設(shè)備信息一致則認為收到報文的虛擬交換鏈路進入已收斂狀態(tài)。成員設(shè)備3相連的所有的虛擬交換鏈路都進入已收斂狀態(tài),成員3進入拓撲已收斂狀態(tài),并向成員設(shè)備2發(fā)送拓撲收集報文,報文內(nèi)容包括成員設(shè)備2、成員設(shè)備3的已收斂狀態(tài)及成員設(shè)備信息,成員設(shè)備信息包括成員設(shè)備1、成員設(shè)備2、成員設(shè)備3,成員設(shè)備2收到來自于成員設(shè)備3的拓撲收集報文,更新成員設(shè)備3的拓撲已收斂狀態(tài)。堆疊系統(tǒng)中的一個成員設(shè)備進入已收斂狀態(tài)后,并不能立即進入角色選舉,而是需要等待堆疊系統(tǒng)中的所有成員設(shè)備都進入已收斂狀態(tài)后才表示堆疊拓撲信息已經(jīng)完全收斂,才能觸發(fā)角色選舉,確保堆疊的穩(wěn)定性。
以圖2所示的堆疊系統(tǒng)的例子說明上述步驟103具體實現(xiàn)過程,成員設(shè)備2向成員設(shè)備I發(fā)送拓撲收集報文,報文中包括成員設(shè)備1、成員設(shè)備2、成員設(shè)備3的拓撲已收斂狀態(tài)及成員設(shè)備信息;成員設(shè)備I收到來自于成員設(shè)備2的拓撲收集報文,根據(jù)報文中的內(nèi)容更新本地拓撲收集狀態(tài)表中記錄的成員拓撲已收斂狀態(tài)及成員設(shè)備信息;成員設(shè)備I檢查本地記錄的成員設(shè)備1、成員設(shè)備2、成員設(shè)備3的拓撲已收斂狀態(tài)均已經(jīng)進入穩(wěn)定,則成員設(shè)備I認為整個堆疊系統(tǒng)已經(jīng)穩(wěn)定,對成員設(shè)備2外通知拓撲已收斂狀態(tài)穩(wěn)定,開始觸發(fā)本地的角色選舉;成員設(shè)備2向成員設(shè)備3發(fā)送拓撲收集報文,報文中包括成員設(shè)備1、成員設(shè)備2、成員設(shè)備3的拓撲已收斂狀態(tài)及成員設(shè)備信息;成員設(shè)備3收到來自于成員設(shè)備2的拓撲收集報文,根據(jù)報文中的內(nèi)容更新本地記錄的成員拓撲已收斂狀態(tài)及成員設(shè)備信息;成員設(shè)備3檢查本地記錄的成設(shè)備員1、成員設(shè)備2、成員設(shè)備3的拓撲已收斂狀態(tài)均已經(jīng)進入穩(wěn)定,則成員設(shè)備3認為整個堆疊系統(tǒng)已經(jīng)穩(wěn)定,對外通知拓撲穩(wěn)定,開始觸發(fā)本地的角色選舉;成員設(shè)備2檢查到本地記錄的成員設(shè)備I,成員設(shè)備2,成員設(shè)備3的拓撲已收斂狀態(tài)均已經(jīng)進入穩(wěn)定,則成員設(shè)備2認為整個堆疊系統(tǒng)已經(jīng)穩(wěn)定,對外通知拓撲穩(wěn)定,開始觸發(fā)本地的角色選舉。上面是以三個成員設(shè)備為例進行說明步驟A、B、C的實施過程,可以很容易得出堆疊系統(tǒng)只有兩個成員設(shè)備時的實施過程,即只進行成員I和成員2的信息交互即可,不再詳細說明。另外,本發(fā)明不僅僅適用于線性連接的堆疊系統(tǒng),還適用于環(huán)形連接的堆疊系統(tǒng),所實現(xiàn)方法基本相同,但有一點需要注意的是,當某個成員設(shè)備從其連接的某條虛擬交換鏈路的對端設(shè)備收到的拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致時,在將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到本地保存的成員設(shè)備信息表之前,判 斷成員設(shè)備信息表保存的摘要信息不一致的成員設(shè)備對應的虛擬交換鏈路與本次接收拓撲收集報文的虛擬交換鏈路是否相同,如是,將拓撲收集報文中包括的該成員設(shè)備信息更新到本地保存的成員設(shè)備信息表,否則不進行后續(xù)處理。通過上述步驟可以看出,本發(fā)明的拓撲收斂方法不需要預設(shè)配置信息,也不需要預選配置主設(shè)備,讓所有堆疊成員設(shè)備均為平等的關(guān)系,通過三階段方式進行拓撲收斂,確保堆疊系統(tǒng)中的所有成員設(shè)備進入已收斂狀態(tài)后,堆疊系統(tǒng)進入拓撲收斂,之后才進行角色選舉階段,這樣減少了在多臺設(shè)備堆疊情況下,因為設(shè)備啟動順序及時間的差異導致的堆疊拓撲震蕩。參見圖3是本發(fā)明實施例的堆疊設(shè)備的示意圖,實施上述如圖2所示的堆疊系統(tǒng)的拓撲收斂方法,本發(fā)明實施例的堆疊設(shè)備包括拓撲收集模塊和成員設(shè)備信息學習模塊,具體說明如下所述拓撲收集模塊,用于所在成員設(shè)備連接的某條虛擬交換鏈路達到連通狀態(tài)后,發(fā)送拓撲收集報文到該虛擬交換鏈路的對端成員設(shè)備進行拓撲收集,當從該虛擬交換鏈路的對端成員設(shè)備收到的拓撲收集報文中的成員設(shè)備信息與本地保存的成員設(shè)備信息一致時,設(shè)置該條虛擬交換鏈路為已收斂狀態(tài);并在判斷所在成員設(shè)備連接的所有虛擬交換鏈路為已收斂狀態(tài)后,確定所在成員設(shè)備為已收斂狀態(tài),并通告所在成員設(shè)備連接的所有虛擬交換鏈路的對端成員設(shè)備。所述拓撲收集模塊,還用于當每個成員設(shè)備從其連接的虛擬交換鏈路的對端設(shè)備收到拓撲收集報文后,判斷拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的是否一致,如是,將該虛擬交換鏈的拓撲收集狀態(tài)設(shè)置為已收斂狀態(tài);否則,通知成員設(shè)備信息學習模塊更新成員設(shè)備信息表,并更新本地拓撲收集狀態(tài)表中對應成員設(shè)備的摘要信息;將該虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文。所述拓撲收集模塊,還用于當判斷所在成員設(shè)備連接的某條虛擬交換鏈路為已收斂狀態(tài)后,判斷所在成員設(shè)備連接的所有虛擬交換鏈路是否為已收斂狀態(tài),如是,則確定本成員設(shè)備為已收斂狀態(tài),并發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備,否則,向所在成員設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;所述成員設(shè)備信息學習模塊,用于所在成員設(shè)備從連接的達到連通狀態(tài)的某條虛擬交換鏈路接收到拓撲收集報文后,保存所述拓撲收集報文中的成員設(shè)備信息。所述成員設(shè)備信息學習模塊,用于將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到成員設(shè)備信息表中。參見圖4是本發(fā)明另一實施例的堆疊設(shè)備的示意圖,所述堆疊設(shè)備除了包括圖3中的拓撲收集模塊和成員設(shè)備信息學習模塊外,還包括初始化模塊,用于建立所在成員設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備的拓撲收集狀態(tài)的拓撲收集狀態(tài)表,以及用于建立所在成員設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備信息的成員設(shè)備信息表。新成員設(shè)備加入情況下,需要確保新成員信息能夠快速通知到整個堆疊拓撲中的所有成員設(shè)備,以確保能夠快速確認從主控設(shè)備到新成員設(shè)備的轉(zhuǎn)發(fā)路徑,具體通過如下步驟實現(xiàn)當所述堆疊系統(tǒng)中加入新成員設(shè)備時,與該成員設(shè)備相連的虛擬交換鏈路的工作狀態(tài)會變化為UP,拓撲收集模塊發(fā)現(xiàn)有虛擬交換鏈路的工作狀態(tài)為UP,會將該虛擬交換鏈路狀態(tài)設(shè)置為拓撲收集狀態(tài) ,并觸發(fā)新的一輪堆疊系統(tǒng)的拓撲收斂;堆疊中的其它成員設(shè)備如果發(fā)現(xiàn)從某條虛擬交換鏈路上收到的拓撲收集報文中包括的成員設(shè)備信息比本地成員設(shè)備信息表中的信息多,則根據(jù)拓撲收集報文中的成員列表,增加本地不存在但是拓撲收集報文中存在的設(shè)備信息,將該虛擬交換鏈路的狀態(tài)置為拓撲收集狀態(tài),并觸發(fā)新的一輪堆疊系統(tǒng)的拓撲收斂。成員設(shè)備退出堆疊拓撲情況下,需要確保成員退出能夠快速通知到整個堆疊拓撲中的所有成員設(shè)備,重新進行路徑計算,減少因為成員設(shè)備退出堆疊帶來的流量等負面影響。具體如下步驟實現(xiàn)當所述堆疊系統(tǒng)中有成員設(shè)備退出時,與該成員設(shè)備相連的虛擬交換鏈路的工作狀態(tài)變化為DOWN,若發(fā)現(xiàn)有虛擬交換鏈路的工作狀態(tài)變化為DOWN,會相應的將從該虛擬交換鏈路上學習到的成員信息刪除,同時將與刪除的成員設(shè)備相連的其它虛擬交換鏈路狀態(tài)置為拓撲收集狀態(tài),并觸發(fā)新的一輪堆疊系統(tǒng)的拓撲收斂;堆疊中的其它成員設(shè)備如果發(fā)現(xiàn)從某條虛擬交換鏈路上收到的拓撲收集報文中包括的成員設(shè)備信息比本地成員設(shè)備信息表中的信息少,則根據(jù)拓撲收集報文中的成員列表,刪除本地存在但是拓撲收集報文中不存在的設(shè)備信息,將該虛擬交換鏈路的狀態(tài)置為拓撲收集狀態(tài),并觸發(fā)新的一輪堆疊系統(tǒng)的拓撲收斂。本領(lǐng)域的普通技術(shù)人員將會意識到,這里所述的實施例是為了幫助讀者理解本發(fā)明的原理,應被理解為本發(fā)明的保護范圍并不局限于這樣的特別陳述和實施例。本領(lǐng)域的普通技術(shù)人員可以根據(jù)本發(fā)明公開的這些技術(shù)啟示做出各種不脫離本發(fā)明實質(zhì)的其它各種具體變形和組合,這 些變形和組合仍然在本發(fā)明的保護范圍內(nèi)。
權(quán)利要求
1.一種堆疊系統(tǒng)的拓撲收斂方法,其特征在于,具體包括如下步驟A.每個成員設(shè)備在其連接的某條虛擬交換鏈路達到連通狀態(tài)后,發(fā)送拓撲收集報文到該虛擬交換鏈路的對端成員設(shè)備進行拓撲收集,并從該虛擬交換鏈路的對端成員設(shè)備接收拓撲收集報文,當從該虛擬交換鏈路的對端成員設(shè)備收到的拓撲收集報文中的成員設(shè)備信息與本地保存的成員設(shè)備信息一致時,所述成員設(shè)備設(shè)置該條虛擬交換鏈路為已收斂狀態(tài);B.每個成員設(shè)備判斷其連接的所有虛擬交換鏈路為已收斂狀態(tài)后,確定本成員設(shè)備為已收斂狀態(tài),并通過發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備;C.每個成員設(shè)備判斷堆疊系統(tǒng)中所有成員設(shè)備為已收斂狀態(tài)后,確定堆疊系統(tǒng)拓撲收斂完成,按照預設(shè)的選舉規(guī)則啟動主設(shè)備選舉。
2.根據(jù)權(quán)利要求1所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于,所述步驟A之前,還包括如下初始化步驟A0.每個成員設(shè)備中,建立用于在本設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備的拓撲收集狀態(tài)的拓撲收集狀態(tài)表,以及建立用于在本設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備信息的成員設(shè)備信息表。
3.根據(jù)權(quán)利要求2所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于,所述拓撲收集狀態(tài)表中還記錄有本設(shè)備連接的所有達到連通狀態(tài)的虛擬交換鏈路的拓撲收集狀態(tài)信息。
4.根據(jù)權(quán)利要求2所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于,所述步驟AO進一步包括,每個成員設(shè)備計算其摘要信息,并記錄在本設(shè)備的拓撲收集狀態(tài)表中,并將所述拓撲收集狀態(tài)表中記錄的堆疊系統(tǒng)中除本設(shè)備之外的其他成員設(shè)備的摘要信息初始化為O。
5.根據(jù)權(quán)利要求2所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于,步驟A中,當每個成員設(shè)備從其連接的虛擬交換鏈路的對端設(shè)備收到拓撲收集報文后,判斷拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的是否一致,如是,成員設(shè)備將該虛擬交換鏈的拓撲收集狀態(tài)設(shè)置為已收斂狀態(tài);否則,將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到本地保存的成員設(shè)備信息表中,并更新本地拓撲收集狀態(tài)表中對應成員設(shè)備的摘要信息;將該虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文。
6.根據(jù)權(quán)利要求5所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于,成員設(shè)備更新本地拓撲收集狀態(tài)表中對應成員設(shè)備的摘要信息的方法為成員設(shè)備依據(jù)本地成員設(shè)備信息表中更新后的對應成員設(shè)備信息,通過MD5算法重新計算該對應成員設(shè)備的摘要信息,更新本地拓撲收集狀態(tài)表對應成員設(shè)備的摘要信息。
7.根據(jù)權(quán)利要求5所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于,當某個成員設(shè)備從其連接的某條虛擬交換鏈路的對端設(shè)備收到的拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的不一致時,在將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到本地保存的成員設(shè)備信息表之前,判斷成員設(shè)備信息表保存的摘要信息不一致的成員設(shè)備對應的虛擬交換鏈路與本次接收拓撲收集報文的虛擬交換鏈路是否相同,如是,將拓撲收集報文中包括的該成員設(shè)備信息更新到本地保存的成員設(shè)備信息表,否則不進行后續(xù)處理。
8.根據(jù)權(quán)利要求1-7任一項權(quán)利要求所述的堆疊系統(tǒng)的拓撲收斂方法,其特征在于, 所述步驟B中,當某個成員設(shè)備判斷其連接的某條虛擬交換鏈路為已收斂狀態(tài)后,判斷本設(shè)備連接的所有虛擬交換鏈路是否為已收斂狀態(tài),如是,則確定本成員設(shè)備為已收斂狀態(tài), 并發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備,所述拓撲收集報文中包括本設(shè)備的已收斂狀態(tài)和本地所有成員設(shè)備的摘要信息;否則,向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文。
9.實施權(quán)利要求1-8所述的堆疊系統(tǒng)的拓撲收斂方法的成員設(shè)備,其特征在于,包括拓撲收集模塊和成員設(shè)備信息學習模塊,所述拓撲收集模塊,用于所在成員設(shè)備連接的某條虛擬交換鏈路達到連通狀態(tài)后,發(fā)送拓撲收集報文到該虛擬交換鏈路的對端成員設(shè)備進行拓撲收集,當從該虛擬交換鏈路的對端成員設(shè)備收到的拓撲收集報文中的成員設(shè)備信息與本地保存的成員設(shè)備信息一致時, 設(shè)置該條虛擬交換鏈路為已收斂狀態(tài);并在判斷所在成員設(shè)備連接的所有虛擬交換鏈路為已收斂狀態(tài)后,確定所在成員設(shè)備為已收斂狀態(tài),并通告所在成員設(shè)備連接的所有虛擬交換鏈路的對端成員設(shè)備;所述成員設(shè)備信息學習模塊,用于所在成員設(shè)備從連接的達到連通狀態(tài)的某條虛擬交換鏈路接收到拓撲收集報文后,保存所述拓撲收集報文中的成員設(shè)備信息。
10.根據(jù)權(quán)利要求9所述的成員設(shè)備,其特征在于,所述成員設(shè)備還包括初始化模塊, 用于建立所在成員設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備的拓撲收集狀態(tài)的拓撲收集狀態(tài)表, 以及用于建立所在成員設(shè)備保存堆疊系統(tǒng)中所有成員設(shè)備信息的成員設(shè)備信息表;所述拓撲收集模塊,還用于當每個成員設(shè)備從其連接的虛擬交換鏈路的對端設(shè)備收到拓撲收集報文后,判斷拓撲收集報文中包括的成員設(shè)備的摘要信息與本地拓撲收集狀態(tài)表中保存的是否一致,如是,將該虛擬交換鏈的拓撲收集狀態(tài)設(shè)置為已收斂狀態(tài);否則,通知成員設(shè)備信息學習模塊更新成員設(shè)備信息表,并更新本地拓撲收集狀態(tài)表中對應成員設(shè)備的摘要信息;將該虛擬交換鏈路的拓撲收集狀態(tài)設(shè)置為拓撲收集中,并向本設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;所述拓撲收集模塊,還用于當判斷所在成員設(shè)備連接的某條虛擬交換鏈路為已收斂狀態(tài)后,判斷所在成員設(shè)備連接的所有虛擬交換鏈路是否為已收斂狀態(tài),如是,則確定本成員設(shè)備為已收斂狀態(tài),并發(fā)送拓撲收集報文通告其連接的所有虛擬交換鏈路的對端成員設(shè)備,否則,向所在成員設(shè)備連接的達到連通狀態(tài)的所有虛擬交換鏈路發(fā)送包括本地所有成員設(shè)備信息的拓撲收集報文;所述成員設(shè)備信息學習模塊,用于將拓撲收集報文中包括的摘要信息不一致的成員設(shè)備信息更新到成員設(shè)備信息表中。
全文摘要
本發(fā)明公開了一種堆疊系統(tǒng)的拓撲收斂方法及成員設(shè)備,具體包括判斷堆疊系統(tǒng)的虛擬交換鏈路是否收斂,判斷堆疊系統(tǒng)的每個堆疊成員設(shè)備是否收斂,判斷堆疊系統(tǒng)的堆疊拓撲是否收斂。本發(fā)明拓撲收斂方法不需要預設(shè)配置信息,也不需要預選主控,讓所有堆疊成員設(shè)備均為平等的關(guān)系,通過三階段方式進行拓撲收斂,確保堆疊系統(tǒng)中的所有成員設(shè)備進入已收斂狀態(tài)后,堆疊系統(tǒng)進入拓撲收斂,之后才進行角色選舉階段,這樣減少了在多臺設(shè)備堆疊情況下,因為設(shè)備啟動順序及時間的差異導致的堆疊拓撲震蕩,同時通過廣播方式以最快的方式將所有信息通告到了所有成員設(shè)備,減少了堆疊系統(tǒng)拓撲信息收集所需要的時間,提高了堆疊形成的穩(wěn)定性。
文檔編號H04L12/46GK103036760SQ201210551548
公開日2013年4月10日 申請日期2012年12月18日 優(yōu)先權(quán)日2012年12月18日
發(fā)明者董琴, 胡雅慶 申請人:邁普通信技術(shù)股份有限公司