技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通訊領(lǐng)域的,尤其是指一種路由快速收斂的方法及裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多用戶采用高速廣播鏈路專線(一般帶寬在10Mbps(含)以上)代替低速DDN專線(一般帶寬在2Mbps左右),用于數(shù)據(jù)傳輸。這里廣播鏈路專線是指路由設(shè)備能在上面建立一個以上IS-IS鄰居或OSPF鄰居,并且需要選舉DIS(Designated Intermediate System,指定中間系統(tǒng))或DR(Designated Router)用于路由學(xué)習(xí)的線路。
如圖1所示是現(xiàn)有技術(shù)中使用廣播鏈路專線的一個典型應(yīng)用拓?fù)鋱D。為了確保數(shù)據(jù)通信可靠,實現(xiàn)不中斷通信,分支機構(gòu)和總部機構(gòu)之間通過兩條主備線路進行通信,主線路是大帶寬廣播鏈路專線,備線路是低帶寬DDN專線。
正常情況下,總部機構(gòu)和分支機構(gòu)之間的數(shù)據(jù)通過主線路進行傳輸,在主線路發(fā)生震蕩情況下(如由于線路存在問題導(dǎo)致報文傳輸時斷時續(xù)或者傳輸時間不穩(wěn)定等),數(shù)據(jù)要快速切換到備份線路進行傳輸以免數(shù)據(jù)丟失,確??偛繖C構(gòu)和分支機構(gòu)之間的業(yè)務(wù)正常進行,線路恢復(fù)正常之后,數(shù)據(jù)切換回主線路進行傳輸。
為切換線路,首先要進行路由學(xué)習(xí),這里使用廣泛使用的IS-IS協(xié)議;另外,為進行快速切換,首先需要快速的探測到線路問題,從而引入了BFD技術(shù),通過BFD探測發(fā)生震蕩的可能導(dǎo)致問題的線路狀態(tài)。但實際上即使在線路震蕩期間,IS-IS鄰接狀態(tài)仍然可以保持著,這是因為鄰接狀態(tài)變化要經(jīng)過較長的時間,屬于數(shù)秒級,遠(yuǎn)低于BFD的數(shù)毫秒級的間隔,在這較長的時間里,控制面的協(xié)議報文是可以正常收發(fā)的。但是,因為轉(zhuǎn)發(fā)數(shù)據(jù)報文需要使用穩(wěn)定的線路,不然就會丟失報文,所以路由還是需要切換到備份線路。
Router-A和Router-B之間在主線路上成功建立IS-IS鄰居之后,IS-IS路由協(xié)議通知BFD檢測主線路的質(zhì)量。這里假設(shè),Router-A優(yōu)先級比Router-B高,被選舉主線路的DIS。主線路發(fā)生震蕩,BFD會通告IS-IS;Router-A IS-IS根據(jù)BFD線路震蕩通告,刪除DIS的LSP(Link State Pakcet,鏈路狀態(tài)報文)中的鄰居信息(即Router-B),同時Router-B刪除自己的鏈路狀態(tài)報文中的DIS鄰居信息(即Router-A)。Router-B和Router-A收到對方的最新的鏈路狀態(tài)報文之后,進行路由計算,計算出選擇備份線路進行數(shù)據(jù)傳輸。線路恢復(fù)正常之后,BFD通知IS-IS,Router-A和Router-B恢復(fù)鏈路狀態(tài)報文中鄰居信息。Router-B和Router-A收到對方的最新的鏈路狀態(tài)報文之后,進行路由計算,重新選擇主線路進行數(shù)據(jù)傳輸。
根據(jù)IS-IS鄰接狀態(tài)機,在同一條廣播鏈路中只能選擇一臺優(yōu)先級最高的設(shè)備作為DIS,該DIS為該廣播鏈路生成的PSN(即Pseudo Subnet Node,虛擬子網(wǎng)節(jié)點)鄰居節(jié)點,鏈路上的其他設(shè)備添加虛擬子網(wǎng)節(jié)點作為其鄰居節(jié)之一,以該虛擬子網(wǎng)節(jié)點鄰居節(jié)點作為路由計算的中轉(zhuǎn)節(jié)點,生成最優(yōu)路由。
在圖1應(yīng)用場景中,如果總部機構(gòu)或者分支機構(gòu)由于接入主機增加,需要增加路由設(shè)備。簡化假設(shè)拓?fù)淙鐖D2。
在圖2中,分支機構(gòu)和總部機構(gòu)分別有兩臺路由設(shè)備,這樣,在同一條廣播鏈路上就有四臺設(shè)備。為了探測客戶機與服務(wù)器之間的主線路狀態(tài),Router-B、Router-D分別與Router-A進行主線路上的BFD檢測。
于該拓?fù)渲校僭O(shè)Router-A優(yōu)先級最高,為主線路上的DIS。主線路發(fā)生震蕩,在現(xiàn)有公開技術(shù)中,Router-A收到BFD通告之后,刪除DIS的鏈路狀態(tài)報文的鏈路狀態(tài)報文中的鄰居信息(即Router-B、Router-D),Router-B、Router-C、Router-D刪除自己的鏈路狀態(tài)報文的鏈路狀態(tài)報文中的DIS鄰居信息(即Router-A),Router-C的鏈路狀態(tài)報文保持正常(因為Router-C不需要也未進行BFD探測)。四臺設(shè)備收到Router-A、Router-B、Router-D更新的鏈路狀態(tài)報文,啟動路由計算,由于Router-B、Router-D的鏈路狀態(tài)報文中都刪除DIS的虛擬子網(wǎng)節(jié)點鄰居節(jié)點信息,沒有的虛擬子網(wǎng)節(jié)點鄰居節(jié)點的中轉(zhuǎn),Router-B就無法將到達(dá)分支機構(gòu)的路由切換指向到Router-D,則路由出現(xiàn)中斷或無法收斂。服務(wù)器B到客戶機A的數(shù)據(jù)將被Router-B丟棄。這種情況會一直持續(xù)到線路恢復(fù)正常。
綜上所述可見,現(xiàn)有的路由收斂技術(shù)存在如下缺陷:
IS-IS和BFD在同一條廣播鏈路上聯(lián)動,一旦線路發(fā)生震蕩情況,如果鏈路一端有兩臺(含)以上路由設(shè)備,并且都不是DIS設(shè)備,那么非DIS端路由就會出現(xiàn)路由中斷或無法收斂的問題。
可見根據(jù)現(xiàn)有的協(xié)議標(biāo)準(zhǔn)無法滿足以上主動切換線路的需求。專利號201110408494.3,名稱為“一種路由確定方法及路由設(shè)備”的專利提供了一種通過擴展標(biāo)準(zhǔn)協(xié)議來解決本案問題的方法,具體為:
即通過在IS-IS HELLO協(xié)議報文增加一種新型TLV(稱之為鏈路ID TLV),同一條廣播鏈路上的鄰居收到之后,根據(jù)鏈路ID將在該鏈路上建立的鄰居分為本地鄰居(鏈路ID與本地相同的鄰居)和遠(yuǎn)端鄰居(鏈路ID與本地不同的鄰居),然后在鏈路發(fā)生震蕩情況下,如果DIS不在本地鄰居中,則在本地鄰居中重新選舉一個DIS,本地鄰居根據(jù)新的DIS進行路由學(xué)習(xí),實現(xiàn)了路由收斂。
上述方法,關(guān)鍵技術(shù)點是:通過HELLO協(xié)議報文中新型鏈路ID TLV,實現(xiàn)本地鄰居和遠(yuǎn)端鄰居的區(qū)分;在線路震蕩期間,同一條廣播鏈路上維護獨立的兩個DIS用于本地鄰居和遠(yuǎn)端鄰居的路由學(xué)習(xí),解決非DIS端設(shè)備路由無法收斂問題。
然而,該方案的缺點在于:要引入新的鏈路ID TLV,且要在同一廣播鏈路上維護多個DIS。因此,該方法不僅增加了協(xié)議報文,并且將鄰居狀態(tài)機復(fù)雜化——需要進行配置;需要遠(yuǎn)程設(shè)備(發(fā)生震蕩的廣播鏈路的另一端的那些設(shè)備,可能與本地設(shè)備不同廠商)采用一樣的方式,降低了設(shè)備兼容性。因為如果遠(yuǎn)程設(shè)備不進行相同的擴展的話,則會由于遠(yuǎn)近兩端不同時支持新擴展的TLV從而依然無法解決上述問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于克服了上述缺陷,提供一種無需增加協(xié)議報文,實現(xiàn)簡單的路由快速收斂的方法及裝置。
本發(fā)明的目的是這樣實現(xiàn)的:一種路由快速收斂的方法,它包括依次的設(shè)備鏈路狀態(tài)報文生成步驟及最短路徑優(yōu)先計算步驟;
所述設(shè)備鏈路狀態(tài)報文生成步驟包括,在線路震蕩期間,若本設(shè)備為DIS端則刪除其鏈路狀態(tài)報文中的遠(yuǎn)程設(shè)備鄰居表項,從而生成新的鏈路狀態(tài)報文,并泛洪該新生成的鏈路狀態(tài)報文;若;若本設(shè)備為非DIS端,則在其自生成的鏈路狀態(tài)報文中刪除該發(fā)生震蕩的廣播鏈路上的DIS端設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居節(jié)點項并增加同一廣播鏈路上其它各非DIS的鄰居為鄰居項形成新的鏈路狀態(tài)報文泛洪;
所述最短路徑優(yōu)先計算步驟包括,進行SPF計算且若鏈路狀態(tài)報文為雙向連通的,則當(dāng)存在非DIS端生成的新的鏈路狀態(tài)報文集合中,各非DIS鄰居不是通過PSN中轉(zhuǎn)建立連接的LAN類型或是各自直接建立連接的P2P類型的鄰接表項時,驗證通過;
上述方法中,所述設(shè)備鏈路狀態(tài)報文生成步驟具體包括,
A)、本設(shè)備根據(jù)收到的線路震蕩通告確定發(fā)生震蕩的線路及震蕩遠(yuǎn)程設(shè)備;
B)、判斷本設(shè)備是否為廣播線路上的DIS端設(shè)備,是則轉(zhuǎn)到步驟D,否則轉(zhuǎn)到步驟C;
C)、查詢由震蕩遠(yuǎn)程設(shè)備生成的發(fā)生震蕩的線路鏈路上的震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,獲取震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表,而后將本設(shè)備自生成的本設(shè)備的鏈路狀態(tài)報文中震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居項刪除,并將震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表中除本設(shè)備之外的其它鄰居添加到本設(shè)備的鏈路狀態(tài)報文中,從而生成新的本設(shè)備的鏈路狀態(tài)報文,而后轉(zhuǎn)到步驟E;
D)、查詢由本設(shè)備生成的發(fā)生震蕩的線路鏈路上的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,將震蕩遠(yuǎn)程設(shè)備鄰居表項從中刪除,從而生成新的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,而后轉(zhuǎn)到步驟E;
E)、泛洪新生成的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文;
上述方法中,所述最短路徑優(yōu)先計算步驟具體包括,
F)、接收其他設(shè)備泛洪的鏈路狀態(tài)報文并將其更新至本地鏈路狀態(tài)庫中;
G)、進行SPF計算;包括對鏈路狀態(tài)報文校驗是否聲明與鄰居存在雙向連通,是則獲取連通性信息而后進行驗證鄰居的連通性;
所述連通性信息包括震蕩廣播鏈路ID、本設(shè)備的類型(DIS或非DIS)、對應(yīng)的鄰居ID、以及鏈路狀態(tài)報文中聲明的連通類型(如P2P或LAN);
所述驗證鄰居的連通性時,對應(yīng)獲取連通性信息中本設(shè)備的類型不為DIS時,判斷該鄰居ID滿足:存在于震蕩廣播鏈路、該鄰居ID的類型也不為DIS,鏈路狀態(tài)報文中聲明的與該鄰居的連通類型為P2P類型,且本設(shè)備(進行SPF計算的節(jié)點:根節(jié)點)上存在對應(yīng)于該鄰居ID的LAN類型的鄰接表項時認(rèn)定為驗證通過。
本發(fā)明還提供了一種路由快速收斂的裝置,它包括相連的設(shè)備鏈路狀態(tài)報文生成模塊及最短路徑優(yōu)先計算模塊;
所述設(shè)備鏈路狀態(tài)報文生成模塊,用于在廣播鏈路震蕩期間,若本設(shè)備為DIS端則刪除其鏈路狀態(tài)報文中的遠(yuǎn)程設(shè)備鄰居表項,從而生成新的鏈路狀態(tài)報文,并泛洪該新生成的鏈路狀態(tài)報文;若本設(shè)備為非DIS端,則在其自生成的鏈路狀態(tài)報文中刪除該發(fā)生震蕩的廣播鏈路上的DIS端設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居節(jié)點項并增加同一廣播鏈路上其它各非DIS的鄰居為鄰居項形成新的鏈路狀態(tài)報文泛洪而后轉(zhuǎn)到最短路徑優(yōu)先計算模塊;
所述最短路徑優(yōu)先計算模塊,用于進行SPF計算且若鏈路狀態(tài)報文為雙向連通的,則當(dāng)存在非DIS端生成的新的鏈路狀態(tài)報文集合中,各非DIS鄰居不是通過PSN中轉(zhuǎn)建立連接的LAN類型或是各自直接建立連接的P2P類型的鄰接表項時,驗證通過;
上述中,所述設(shè)備鏈路狀態(tài)報文生成模塊具體包括,
接收單元,用于本設(shè)備根據(jù)收到的線路震蕩通告確定發(fā)生震蕩的線路及震蕩遠(yuǎn)程設(shè)備,而后轉(zhuǎn)到DIS判斷單元;
DIS判斷單元,用于判斷本設(shè)備是否為廣播線路上的DIS端設(shè)備,是則轉(zhuǎn)到DIS處理單元,否則轉(zhuǎn)到非DIS處理單元;
非DIS處理單元,用于查詢由震蕩遠(yuǎn)程設(shè)備生成的發(fā)生震蕩的線路鏈路上的震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,獲取震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表,而后將本設(shè)備自生成的本設(shè)備的鏈路狀態(tài)報文中震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居項刪除,并將震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表中除本設(shè)備之外的其它鄰居添加到本設(shè)備的鏈路狀態(tài)報文中,從而生成新的本設(shè)備的鏈路狀態(tài)報文,而后轉(zhuǎn)到泛洪單元;
DIS處理單元,用于查詢由本設(shè)備生成的發(fā)生震蕩的線路鏈路上的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,將震蕩遠(yuǎn)程設(shè)備鄰居表項從中刪除,從而生成新的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,而后轉(zhuǎn)到泛洪單元;
泛洪單元,用于泛洪新生成的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文;
上述中,所述最短路徑優(yōu)先計算模塊具體包括,
更新單元,用于接收其他設(shè)備泛洪的鏈路狀態(tài)報文并將其更新至本地鏈路狀態(tài)庫中,而后轉(zhuǎn)到SPF計算單元;
SPF計算單元,用于進行SPF計算;包括對鏈路狀態(tài)報文校驗是否與鄰居存在雙向連通,是則獲取連通性信息而后進行驗證鄰居的連通性,對應(yīng)獲取連通性信息中本設(shè)備的類型不為DIS時,判斷該鄰居ID滿足:存在于震蕩廣播鏈路、該鄰居ID的類型也不為DIS,鏈路狀態(tài)報文中聲明的與該鄰居的連通類型為P2P類型,且本設(shè)備(進行SPF計算的節(jié)點:根節(jié)點)上存在對應(yīng)于該鄰居ID的LAN類型的鄰接表項時認(rèn)定為驗證通過;
所述連通性信息包括震蕩廣播鏈路ID、本設(shè)備的類型(DIS或非DIS)、對應(yīng)的鄰居ID、以及鏈路狀態(tài)類型(如P2P或LAN)。
本發(fā)明的有益效果在于在線路震蕩的情況下,通過構(gòu)造生成新的LSP報文并泛洪,并在SPF計算時使用新的連通性校驗方法,解決了廣播鏈路非DIS端多臺設(shè)備在鏈路震蕩期間路由中斷的問題。
附圖說明
下面結(jié)合附圖詳述本發(fā)明的具體結(jié)構(gòu)
圖1為現(xiàn)有技術(shù)中IS-IS與BFD聯(lián)動的典型拓?fù)鋱D;
圖2為現(xiàn)有技術(shù)中多設(shè)備間IS-IS與BFD聯(lián)動的典型拓?fù)鋱D;
圖3為本發(fā)明的一實施例處理時序圖。
具體實施方式
為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、構(gòu)造特征、所實現(xiàn)目的及效果,以下結(jié)合實施方式并配合附圖詳予說明。
本發(fā)明涉及一種路由快速收斂的方法,它包括依次的設(shè)備鏈路狀態(tài)報文生成步驟及最短路徑優(yōu)先計算步驟;
所述設(shè)備鏈路狀態(tài)報文生成步驟包括,在線路震蕩期間,若本設(shè)備為DIS端則刪除其鏈路狀態(tài)報文中的鄰居信息;若本設(shè)備為非DIS端,則在其自生成的鏈路狀態(tài)報文中刪除該發(fā)生震蕩的廣播鏈路上的DIS端設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居節(jié)點項并增加同一廣播鏈路上其它各非DIS的鄰居為鄰居項形成新的鏈路狀態(tài)報文泛洪;
所述最短路徑優(yōu)先計算步驟包括,進行SPF計算且若鏈路狀態(tài)報文為雙向連通的,則當(dāng)存在LAN類型或P2P類型的鄰接表項時,驗證通過。
可見,本專利方案的優(yōu)點在于
1、在廣播鏈路震蕩期間,只需要通過改造本設(shè)備自生成的鏈路狀態(tài)報文(LSP)和調(diào)整本設(shè)備SPF校驗算法,就能解決鏈路震蕩期間非DIS端設(shè)備路由中斷或無法收斂的問題。由于不需要擴展原有的標(biāo)準(zhǔn)協(xié)議,只是做了界限于本機設(shè)備的修改;不需要配置,只需要本地設(shè)備間(發(fā)生震蕩的廣播鏈路的同一端的那些設(shè)備)采取相同的實現(xiàn)方式;不存在與其它設(shè)備交互的修訂;由以上幾點也從而降低了出錯可能性,也降低了復(fù)雜度。
2、保持Hello報文、鄰接狀態(tài)機不變、只是修改了本地設(shè)備間的鏈路狀態(tài)報文生成方式和SPF的算法,不需要遠(yuǎn)程設(shè)備(發(fā)生震蕩的廣播鏈路的另一端的那些設(shè)備,可能與本地設(shè)備不同廠商)采用一樣的方式,提高了設(shè)備兼容性(只需要本地設(shè)備間采取同樣的方式)。
上述方法中,所述設(shè)備鏈路狀態(tài)報文生成步驟具體包括,
A)、本設(shè)備根據(jù)收到的線路震蕩通告確定發(fā)生震蕩的線路及震蕩遠(yuǎn)程設(shè)備;
B)、判斷本設(shè)備是否為廣播線路上的DIS端設(shè)備,是則轉(zhuǎn)到步驟D,否則轉(zhuǎn)到步驟C;
C)、查詢由震蕩遠(yuǎn)程設(shè)備生成的發(fā)生震蕩的線路鏈路上的震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,獲取震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表,而后將本設(shè)備自生成的本設(shè)備的鏈路狀態(tài)報文中震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居項刪除,并將震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表中除本設(shè)備之外的其它鄰居添加到本設(shè)備的鏈路狀態(tài)報文中,從而生成新的本設(shè)備的鏈路狀態(tài)報文,而后轉(zhuǎn)到步驟E;
D)、查詢由本設(shè)備生成的發(fā)生震蕩的線路鏈路上的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,將震蕩遠(yuǎn)程設(shè)備鄰居表項從中刪除,從而生成新的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,而后轉(zhuǎn)到步驟E;
E)、泛洪新生成的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文。
由此,使得拓?fù)渲蟹荄IS的路由設(shè)備生成的新的鏈路狀態(tài)報文集合中,各非DIS鄰居不是通過PSN中轉(zhuǎn)建立連接(LAN類型),而是各自直接建立連接(P2P類型),從而使在LSP層面,拓?fù)涫请p向連通的(即相互識別為鄰居項)。
上述方法中,所述最短路徑優(yōu)先計算步驟具體包括,
F)、接收其他設(shè)備泛洪的鏈路狀態(tài)報文并將其更新至本地鏈路狀態(tài)庫中;
G)、進行SPF計算;包括對鏈路狀態(tài)報文校驗是否與鄰居存在雙向連通,是則獲取連通性信息而后進行驗證鄰居的連通性;
所述連通性信息包括震蕩廣播鏈路ID、本設(shè)備的類型、對應(yīng)的鄰居ID、以及鏈路狀態(tài)類型;
所述驗證鄰居的連通性時,對應(yīng)獲取聯(lián)通信息中本設(shè)備的類型不為DIS時,判斷該鄰居ID滿足:存在于震蕩廣播鏈路、該鄰居ID的類型也不為DIS、鏈路狀態(tài)報文中聲明的與該鄰居的連通類型為P2P類型,且本設(shè)備(進行SPF計算的節(jié)點:根節(jié)點)上存在對應(yīng)于該鄰居ID的LAN類型的鄰接表項時認(rèn)定為驗證通過。
習(xí)知的,在SPF計算時,進行計算的設(shè)備為根節(jié)點設(shè)備。在計算與根節(jié)點連接的鄰居設(shè)備的連通性時,一般要進行如下檢驗:不但要求在LSP層面是雙向連通的,還要求在鄰接性層面驗證雙向連通性:根節(jié)點上存在對應(yīng)類型的鄰接表項(比如LSP層面連通性為P2P,則需要存在P2P類型的對應(yīng)鄰接表項)。而本專利中為了適應(yīng)上述新生成的設(shè)備鏈路狀態(tài)報文,各個路由設(shè)備根據(jù)新收到的LSP進行拓?fù)浜吐酚捎嬎悖⑶以赟PF計算時,若是處在線路震蕩期間,則計算的檢驗調(diào)整為:要求在LSP層面是連通的,還要求在鄰接性層面驗證連通性:根節(jié)點上存在對應(yīng)鄰接表項;并且,如果LSP層面連通性是P2P,要求存在LAN類型或P2P類型的鄰接表項(即此時不要求鄰居項類型必須是P2P類型,LAN類型的也可以)。
具體實施例
本實施例基于IS-IS的路由設(shè)備上,其提供IS-IS模塊,并且該IS-IS模塊提供有BFD處理模塊、LSP處理模塊及SPF處理模塊及功能。
如圖3,在線路發(fā)生震蕩期間,IS-IS模塊會收到BFD模塊線路震蕩通告,指明哪個遠(yuǎn)程設(shè)備BFD震蕩(這同時就指定了哪個線路發(fā)生震蕩);同時假定遠(yuǎn)程設(shè)備為R1,本設(shè)備為R-self
IS-IS進行如下處理:
1)“BFD處理模塊”:
收到BFD模塊線路震蕩通告,確定發(fā)生震蕩的線路,假設(shè)為Link1,震蕩遠(yuǎn)程設(shè)備為R1;通告“LSP處理模塊”鏈路切換;執(zhí)行2)。
2)“LSP處理模塊”:
a)若本設(shè)備R-self是該廣播線路上的非DIS設(shè)備(那么遠(yuǎn)程設(shè)備R1是DIS設(shè)備),則:
查詢由R1生成的Link1鏈路上的R1的PSN的LSP,獲取該R1的PSN的LSP的鄰居列表(記為R1-PSN-neigh-List,包括了R1在Link1鏈路上的所有鄰居,包括R-self,但沒有R1);將R-self自生成的R-self LSP中的鄰居項R1的PSN刪除,并將R1-PSN-neigh-List表中除R-self之外的其它鄰居添加到R-self自生成的R-self LSP中,并重新生成新的R-self LSP。而后跳到執(zhí)行c)。
b)若本設(shè)備R-self是該廣播線路上的DIS設(shè)備,則:
查詢由本設(shè)備R-self生成的Link1鏈路上的R-self的PSN的LSP,將R1鄰居表項從中刪除,從而生成新的R-self PSN LSP,而后跳到執(zhí)行c)。
c)立即泛洪新生成的LSP。
接下來涉及IS-IS的“SPF計算處理模塊”。具體為在計算根節(jié)點的鄰居、并檢驗連通性時:
a)在LSP層面校驗與鄰居存在雙向連通性,通過連通性信息可計算獲取:
震蕩廣播鏈路ID(如Link1)、本設(shè)備的類型(DIS或非DIS)、對應(yīng)的鄰居ID、以及LSP層面連通性類型(如P2P或LAN)。
b)在鄰接性層面校驗與鄰居存在連通性,添加如下允許項(即如下條件滿足則校驗通過):
若本設(shè)備為非DIS,且對應(yīng)于該鄰居ID的鄰居存在于Link1且不是DIS、且LSP層面與該鄰居連通性是P2P,若根節(jié)點上存在對應(yīng)于該鄰居ID的LAN類型的鄰接表項,則也算校驗通過。
該實施例僅以IS-IS協(xié)議為例,實際上OSPF協(xié)議與IS-IS協(xié)議很多方面類似,以O(shè)SPF代替上文中的IS-IS進行網(wǎng)絡(luò)部署,則也存在與本發(fā)明要解決的問題類似的問題,并且其解決方案也可采取由本文中提及的方法或原理進行相應(yīng)地套用。
本發(fā)明還提供了一種路由快速收斂的裝置,它包括相連的設(shè)備鏈路狀態(tài)報文生成模塊及最短路徑優(yōu)先計算模塊;
所述設(shè)備鏈路狀態(tài)報文生成模塊,用于在廣播鏈路震蕩期間,若本設(shè)備為DIS端則刪除其鏈路狀態(tài)報文中的鄰居信息;若本設(shè)備為非DIS端,則在其自生成的鏈路狀態(tài)報文中刪除該發(fā)生震蕩的廣播鏈路上的DIS端設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居節(jié)點項并增加同一廣播鏈路上其它各非DIS的鄰居為鄰居項形成新的鏈路狀態(tài)報文泛洪而后轉(zhuǎn)到最短路徑優(yōu)先計算模塊;
所述最短路徑優(yōu)先計算模塊,用于進行SPF計算且若鏈路狀態(tài)報文為雙向連通的,則當(dāng)存在LAN類型或P2P類型的鄰接表項時,驗證通過。
上述中,所述設(shè)備鏈路狀態(tài)報文生成模塊具體包括,
接收單元,用于本設(shè)備根據(jù)收到的線路震蕩通告確定發(fā)生震蕩的線路及震蕩遠(yuǎn)程設(shè)備,而后轉(zhuǎn)到DIS判斷單元;
DIS判斷單元,用于判斷本設(shè)備是否為廣播線路上的DIS端設(shè)備,是則轉(zhuǎn)到DIS處理單元,否則轉(zhuǎn)到非DIS處理單元;
非DIS處理單元,用于查詢由震蕩遠(yuǎn)程設(shè)備生成的發(fā)生震蕩的線路鏈路上的震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,獲取震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表,而后將本設(shè)備自生成的本設(shè)備的鏈路狀態(tài)報文中震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鄰居項刪除,并將震蕩遠(yuǎn)程設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文的鄰居列表中除本設(shè)備之外的其它鄰居添加到本設(shè)備的鏈路狀態(tài)報文中,從而生成新的本設(shè)備的鏈路狀態(tài)報文,而后轉(zhuǎn)到泛洪單元;
DIS處理單元,用于查詢由本設(shè)備生成的發(fā)生震蕩的線路鏈路上的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,將震蕩遠(yuǎn)程設(shè)備鄰居表項從中刪除,從而生成新的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文,而后轉(zhuǎn)到泛洪單元;
泛洪單元,用于泛洪新生成的本設(shè)備的虛擬子網(wǎng)節(jié)點的鏈路狀態(tài)報文。
上述中,所述最短路徑優(yōu)先計算模塊具體包括,
更新單元,用于接收其他設(shè)備泛洪的鏈路狀態(tài)報文并將其更新至本地鏈路狀態(tài)庫中,而后轉(zhuǎn)到SPF計算單元;
SPF計算單元,用于進行SPF計算;包括對鏈路狀態(tài)校驗是否與鄰居存在雙向連通,是則獲取連通性信息而后進行驗證鄰居的連通性,對應(yīng)獲取聯(lián)通信息中本設(shè)備的類型不為DIS時,判斷該鄰居ID滿足:存在于震蕩廣播鏈路、該鄰居ID的類型也不為DIS、與該鄰居的鏈路狀態(tài)類型為P2P且根節(jié)點上存在對應(yīng)于該鄰居ID的LAN類型的鄰接表項時認(rèn)定為驗證通過;
所述連通性信息包括震蕩廣播鏈路ID、本設(shè)備的類型、對應(yīng)的鄰居ID、以及鏈路狀態(tài)類型。
該裝置的有益效果與方法相同,在此不做冗述。
以上所述僅為本發(fā)明的實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護范圍內(nèi)。