應(yīng)當(dāng)明白,盡管圖中未示出,可以結(jié)合計(jì)算機(jī)系統(tǒng)/服務(wù)器12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、RAID系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。
[0038]SPF算法是一種通用的計(jì)算路由信息的算法,該算法需要算出是從本節(jié)點(diǎn)到目的節(jié)點(diǎn)有哪些路可以走,代價(jià)是多少,可能存在多條路徑;然后在這些多條路徑信息中擇優(yōu),選擇一個(gè)最佳的出接口和下一跳,作為路由信息??梢?,SPF計(jì)算路由是不區(qū)分流量類型的。
[0039]在TRILL網(wǎng)絡(luò)使用SPF算法計(jì)算路由過程中,對(duì)于不同的流量類型,會(huì)計(jì)算出不同的路由表,即對(duì)于單播流量類型可以得到單播路由表、對(duì)組播和廣播流量類型,會(huì)得到非單播路由表。例如計(jì)算單播路由表時(shí),每個(gè)RBridge是針對(duì)將自己作為根節(jié)點(diǎn)組成的網(wǎng)絡(luò)拓?fù)涫褂肧PF算法計(jì)算得到路由信息的,因此,每個(gè)RBridge計(jì)算中使用的拓?fù)渚W(wǎng)絡(luò)是不同的,因此各RBridge得到的單播路由表也是不同的。但是對(duì)于非單播路由表的計(jì)算,每個(gè)RBridge使用的網(wǎng)絡(luò)拓?fù)涞母?jié)點(diǎn)都是選舉出來的若干RBridge,網(wǎng)絡(luò)拓?fù)涫沁@些根節(jié)點(diǎn)為根的若干棵樹,因此,在選舉所覆蓋的所有RBridge范圍內(nèi),其使用的網(wǎng)絡(luò)拓?fù)涫窍嗤?,?jì)算出的路由信息也是相同的,因此,沒有必要如現(xiàn)有技術(shù)那樣,讓每一個(gè)RBridge都計(jì)算出若干個(gè)非單播路由信息為組播和廣播服務(wù),可以只由特定的RBridge計(jì)算非單播路由信息,然后通知選舉范圍內(nèi)的所有RBridge,這就是本發(fā)明的基本思想。通過這樣計(jì)算組播和廣播路由信息,可以使得相當(dāng)多的RBridge省卻非單播路由信息的計(jì)算,將節(jié)省大量的CPU資源。
[0040]根據(jù)本發(fā)明的一種實(shí)施方式,公開了一種在多鏈接透明互聯(lián)TRILL網(wǎng)絡(luò)中處理非單播路由信息的方法,其中具有路由轉(zhuǎn)發(fā)特性的網(wǎng)橋RBr i dge與其它RBr i dge在該TRILL網(wǎng)絡(luò)中具有鄰居關(guān)系,并且該RBridge為所述鄰居關(guān)系中的計(jì)算非單播路由信息的RBridge,圖3示出了在TRILL網(wǎng)絡(luò)中處理非單播路由信息的方法的方法流程,根據(jù)圖3,該方法中該RBridge執(zhí)行如下步驟:
[0041]在步驟S301,向所述其它RBridge發(fā)送確認(rèn)消息,其中所述確認(rèn)消息確認(rèn)該RBridge為計(jì)算非單播路由信息的RBridge ;
[0042]在步驟S302,獲得該TRILL網(wǎng)絡(luò)中與所述非單播路由信息相關(guān)的網(wǎng)絡(luò)拓?fù)洌?br>[0043]在步驟S303,根據(jù)所述網(wǎng)絡(luò)拓?fù)溆?jì)算所述非單播路由信息;以及
[0044]在步驟S304,將算出的所述非單播路由信息分發(fā)到所述其它RBridge。
[0045]上述方法中,所述與該RBridge具有鄰居關(guān)系的所述其它RBridge就可以從該RBridge中獲取非單播路由信息,就不必計(jì)算非單播路由信息,就可以節(jié)省其CPU資源。
[0046]在一種實(shí)施方式中,鄰居關(guān)系可以根據(jù)TRILL網(wǎng)絡(luò)的連接關(guān)系進(jìn)行定義,并且同一個(gè)網(wǎng)絡(luò)可以定義不同的鄰居關(guān)系。圖4示出了一種TRILL網(wǎng)絡(luò)的多個(gè)RBirdge組成鄰居關(guān)系的示意圖,在圖4中,R1、R2、R3、R4、R5和R6是位于同一個(gè)鏈路(link)上,在一種實(shí)施方式中,具有鄰居關(guān)系的RBridge位于TRILL網(wǎng)絡(luò)的一個(gè)鏈路(Link)上。也就是說,R1-R6組成鄰居關(guān)系。同樣,R8-R13也組成鄰居關(guān)系。當(dāng)然,鄰居關(guān)系也可以由網(wǎng)絡(luò)管理員定義,例如,可以將R1-R13定義成鄰居關(guān)系。
[0047]在現(xiàn)有技術(shù)中,鄰居關(guān)系中的RBridge是通過交互hello報(bào)文來發(fā)現(xiàn)TRILL網(wǎng)絡(luò)中的鄰居RBridge的,每個(gè)RBridge都知道它是同一個(gè)link上所有其他RBridge的鄰居。Hello報(bào)文主要用于TRILL鄰居的發(fā)現(xiàn)和?;睿ǔ0纬舌従拥囊恍┍貍浜涂蛇x條件,所有的信息都使用TLV形式編碼在Hello報(bào)文中。所有使能了 TRILL的接口的RBridge都會(huì)發(fā)送Hello報(bào)文。鄰居之間會(huì)定期互相發(fā)送Hello報(bào)文。TLV是一種在報(bào)文中表達(dá)信息的方式,TLV分別代表類型(Type),長度(Length),值(Value)。發(fā)送方和接收方約定報(bào)文中的信息是以TLV形式編碼的,接收方收到報(bào)文后將以TLV的格式解析報(bào)文。
[0048]在一種實(shí)施方式中,該RBridge是由鄰居關(guān)系中的指定的具有路由轉(zhuǎn)發(fā)特性的網(wǎng)橋(Designated RBridge,以下簡稱DRB,)指定為計(jì)算非單播路由信息的具有路由轉(zhuǎn)發(fā)特性的網(wǎng)橋(以下簡稱計(jì)算RBridge)的。在現(xiàn)有技術(shù)中,具有鄰居關(guān)系的多個(gè)RBridge中,可以通過選舉來獲得DRB。然后在本發(fā)明中由選舉的DRB來指定鄰居關(guān)系中的計(jì)算非單播路由信息的RBridge。具體如何選舉在RFC中已經(jīng)規(guī)定,就是通過比較各個(gè)RBridge接口優(yōu)先級(jí),將接口優(yōu)先級(jí)高的RBridge選舉為DRB,這屬于現(xiàn)有技術(shù),這里不再贅述。以下描述中,假設(shè)R1_R6的鏈路組成鄰居關(guān)系中,R6被選舉為DRB。在另一種實(shí)施方式中,具有鄰居關(guān)系的多個(gè)RBridge中,也可以通過系統(tǒng)管理員指定DRB。然后由DRB來指定計(jì)算RBridge,指定的方式與上述方式相同。另外,該指定被所述DRB編碼在報(bào)文中傳播到所述其它RBridge。如何傳播后面會(huì)詳細(xì)描述。
[0049]在又一種實(shí)施方式中,該RBridge是通過接收命令被指定為計(jì)算RBridge的。例如系統(tǒng)管理員在某個(gè)RBridge中使用命令就可以將該計(jì)算RBridge指定為計(jì)算RBridge。該指定被該RBridg編碼在報(bào)文中傳播到所述其它RBridge。如何傳播后面會(huì)詳細(xì)描述。
[0050]在上述的實(shí)施方式中,無論是由DRB指定計(jì)算RBridge,還是在該RBridge中通過接收命令被指定為計(jì)算RBridge,響應(yīng)于鄰居關(guān)系中包括超過3個(gè)RBridge,在鄰居關(guān)系中可以指定兩個(gè)計(jì)算RBridge,其中一個(gè)為主計(jì)算RBridge,另一個(gè)為從計(jì)算RBridge。通常,主計(jì)算RBridge負(fù)責(zé)計(jì)算非單播路由信息并向鄰居關(guān)系中的其它RBridge (不包括從計(jì)算RBridge)發(fā)送非單播路由信息;從計(jì)算RBridge也計(jì)算非單播路由信息,但是在主計(jì)算RBridge工作的情況下,不向鄰居關(guān)系中的鄰居RBridge發(fā)送非單播路由信息。如果主計(jì)算RBridge不可用了,例如出現(xiàn)故障,從計(jì)算RBridge將代替主計(jì)算RBridge承擔(dān)計(jì)算和發(fā)送非單播路由信息的工作。
[0051]在DRB指定計(jì)算RBridge的實(shí)施方式中,DRB可以將指定的計(jì)算RBridge傳播到鄰居關(guān)系中的其它RBridge,一種傳播方式可以利用hello報(bào)文,具體來說,指定的計(jì)算RBridge信息被DRB編碼在Hello報(bào)文的TLV中。圖5示出了一種將指定的計(jì)算RBridge傳播到鄰居關(guān)系中的其它RBridge的TLV格式,圖5中,Type表示TLV的類型,可以定義為 Role-Appointment,即角色定義,Length 表不該 TLV 的長度,Master compute nodeappointment 和 slave compute node appointment 就是 TLV 中的值,分別表不主計(jì)算RBridge 和從計(jì)算 RBridge 的別名(nickname)。
[0052]針對(duì)在圖4中,R4是DRB,R4指定R6為主計(jì)算RBridge,R5為備計(jì)算RBridge。其他RBridge,包括Rl,R2,R3和R4都是非計(jì)算RBridge,圖6示出了圖4中R6的通知TLV消息內(nèi)容。
[0053]在通過命令指定計(jì)算RBridge的實(shí)施方式中,系統(tǒng)管理員可以使用命令“Compute-node role<Master, Slave〉” 指定主計(jì)算 RBridge 和從計(jì)算 RBridge,并且在主計(jì)算RBridge上通過命令“Slave nickname xxxx”同步從計(jì)算RBridge信息,在從計(jì)算RBridge上通過命令“Master nickname yyyy”同步主計(jì)算RBridge信息。例如在圖4的R1-R6組成的鄰居關(guān)系中,可以在R6上配置如下命令:Compute-node role Master以及Slave nickname R5來告訴R6其為主計(jì)算RBridge并且其從計(jì)算RBridge為R5,可以在R5上配置類似的命令。另外,主計(jì)算RBridge被指定為計(jì)算非單播路由信息的RBridge被該主計(jì)算RBridge編碼在Hello報(bào)文中傳播到鄰居關(guān)系的其它RBridge中,使用的編碼格式與圖5描述的格式相同,傳播方式也與DRB傳播的方式相同,這里不再贅述。
[0054]當(dāng)然,本領(lǐng)域技術(shù)人員可以知道,上述使用Hello報(bào)文的TLV傳播任命信息到鄰居關(guān)系的其它RBridge中只是一種具體的實(shí)施方式,本領(lǐng)域技術(shù)人員完全可以參照上述實(shí)施方式,定義使用其它報(bào)文類型的傳播方式,例如使用LSP報(bào)文或者SNP報(bào)文等,甚至本領(lǐng)域技術(shù)人員可以定義單獨(dú)的報(bào)文,來傳播上述信息,這里不再贅述。
[0055]在一種實(shí)施方式中,被指定為計(jì)算非單播路由信息的RBridge不是邊界(edge)RBridge,而是中間(transit)RBridge,例如,上述R1-R6的鄰居關(guān)系中,R4和R3為邊界RBridge,不能為計(jì)算非單播路由信息的RBridge,計(jì)算非單播路由信息的RBridge只能為R1、R2、R5