專利名稱:一種鏈路狀態(tài)通告信息交互方法和ospf設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),尤其涉及一種鏈路狀態(tài)通告信息交互方法和 OSPF設(shè)備。
背景技術(shù):
OSPF (Open Shortest Path First,開放最短路徑優(yōu)先路由協(xié)議)是IETF (The Internet Engineering Task Force,互聯(lián)網(wǎng)工程任務(wù)組)制定的一個(gè)內(nèi)部 網(wǎng)關(guān)協(xié)議,根據(jù)OSPF協(xié)議的規(guī)定,路由器通過互相發(fā)送直接相連的鏈路信 息和它擁有的到其他路由器的鏈路信息,最終學(xué)習(xí)到全網(wǎng)的拓?fù)湫畔?,然?每臺(tái)路由器根據(jù)這些網(wǎng)絡(luò)拓?fù)湫畔ⅹ?dú)立計(jì)算各自的最短路徑樹,生成設(shè)備的 路由表。
在OSPF中,OSPF路由器需要與與其直接相連的鄰居路由器建立鄰接 關(guān)系,以進(jìn)行報(bào)文交互,而在OSPF路由器與鄰居路由器建立鄰接關(guān)系的過 程中,OSPF路由器需要與鄰居路由器進(jìn)行數(shù)據(jù)描述(DD, Database Description)報(bào)文交互,并通過鏈路狀態(tài)請(qǐng)求報(bào)文LS-Req、鏈路狀態(tài)更新報(bào) 文LS-Update、以及鏈路狀態(tài)應(yīng)答報(bào)文LS-Ack同步鏈路狀態(tài)通告(LSA, Link State Advertisement)信息。
其中,DD報(bào)文包含了 LSA的摘要信息,LSA描述了本路由器所有的鏈 路信息,包括接口信息、路由器鄰居信息以及他們的狀態(tài)信息。OSPF路由 器會(huì)將自身已知的LSA通告給鄰居路由器,鄰居路由器收到LSA的同時(shí), 會(huì)將學(xué)習(xí)到的LSA信息通告給其它的OSPF鄰居路由器。通過這種機(jī)制,最 終所有的OSPF設(shè)備都學(xué)習(xí)到整網(wǎng)OSPF拓?fù)湫畔?,并通過該拓?fù)湫畔?,?jì) 算出正確的路由。在LSA中,還攜帶了路由器標(biāo)識(shí)信息,該路由器標(biāo)識(shí)信 息用于識(shí)別該LSA描述的是哪臺(tái)路由器的鏈路狀態(tài)信息。根據(jù)OSPF協(xié)議規(guī)定,不同類型的LSA具有不同的通告范圍,目前,LSA的通告范圍分為3
類,分別為鏈路范圍,表示該LSA只承載了本OSPF鏈路的信息,該LSA
只在這個(gè)OSPF鏈路內(nèi)通告;區(qū)域范圍,表示LSA承載的信息為OSPF區(qū)域
屬性的信息,該LSA在對(duì)應(yīng)的OSPF區(qū)域內(nèi)通告;以及整個(gè)OSPF域范圍,
表示LSA承載的信息為整個(gè)OSPF域的,該LSA需要在整個(gè)OSPF域內(nèi)通 告。
發(fā)明人在實(shí)現(xiàn)本發(fā)明的過程中發(fā)現(xiàn),當(dāng)兩臺(tái)OSPF設(shè)備RTA與RTB之 間通過多個(gè)鏈路互連時(shí),按照OSPF協(xié)議標(biāo)準(zhǔn)(RFC 2328)規(guī)定,該多個(gè)鏈 路都需要建立OSPF鄰居關(guān)系,并且互相通告學(xué)習(xí)LSA信息,這樣就會(huì)造成 大量冗余的報(bào)文。
例如,兩臺(tái)OSPF設(shè)備RTA與R丁B之間,已經(jīng)通過鏈路Ethl和Eth2 建立好鄰接關(guān)系,此時(shí)新增加一個(gè)連接Eth3,建立OSPF鄰接關(guān)系時(shí),按照 OSPF協(xié)議標(biāo)準(zhǔn),OSPF設(shè)備RTA需要與鄰居路由器RTB交互DD報(bào)文,向 鄰居路由器RTB通告本機(jī)RTA己學(xué)到的所有LSA信息;再例如,兩臺(tái)OSPF 設(shè)備RTA與RTB已經(jīng)通過多個(gè)鏈路Ethl和Eth2建立鄰接關(guān)系時(shí),此時(shí)若 RTA學(xué)習(xí)到一個(gè)新的LSA信息,按照OSPF協(xié)議規(guī)定,需要通過LSA通告 范圍內(nèi)所有鏈路,通過LS-Update報(bào)文向鄰居路由器RTB通告這條LSA, 鄰居路由器RTB收到LSA信息時(shí),同時(shí)需要應(yīng)答一個(gè)LS-Ack報(bào)文,表示 己經(jīng)接收到了這個(gè)LSA。
發(fā)明內(nèi)容
為了解決兩臺(tái)OSPF設(shè)備通過多條鏈路建立鄰接關(guān)系,可能存在大量的 冗余報(bào)文,例如DD報(bào)文、LS-Update報(bào)文與LS-Ack報(bào)文等的問題,本發(fā)明 實(shí)施例提供一種鏈路狀態(tài)通告信息交互方法和OSPF設(shè)備。 本發(fā)明實(shí)施例的上述目的是通過如下技術(shù)方案實(shí)現(xiàn)的 一種鏈路狀態(tài)通告信息交互方法,所述方法包括獲取鏈路狀態(tài)通告信 息;根據(jù)所述鏈路狀態(tài)通告信息及其通告范圍,在所述鏈路狀態(tài)通告信息的通告范圍內(nèi)選擇一條鏈路傳遞所述鏈路狀態(tài)通告信息到對(duì)端。
—種開放式最短路徑優(yōu)先理由協(xié)議OSPF設(shè)備,所述OSPF設(shè)備包括 獲取單元,用于獲取鏈路狀態(tài)通告信息;選擇單元,用于根據(jù)所述獲取單元 獲取的鏈路狀態(tài)通告信息以及OSPF協(xié)議規(guī)定的各鏈路狀態(tài)通告信息的通告
范圍,在所述鏈路狀態(tài)通告信息的通告范圍內(nèi)選擇一條鏈路;傳遞單元,用
于根據(jù)所述選擇單元所選擇的鏈路,通過所選擇的鏈路傳遞所述鏈路狀態(tài)通 告信息到對(duì)端。
通過本發(fā)明實(shí)施例提供的方法和設(shè)備,當(dāng)兩臺(tái)OSPF設(shè)備之間存在多條 鏈路通過OSPF協(xié)議互聯(lián)時(shí),在保證雙方報(bào)文正確交互的前提下,只選擇其 中的某些必要鏈路交互LSA信息,避免了其它鏈路的冗余通告,有效降低 了報(bào)文的帶寬消耗,以及兩端設(shè)備處理報(bào)文的CPU消耗。
此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部 分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中 圖1為本發(fā)明實(shí)施例的方法流程圖; 圖2為本發(fā)明實(shí)施例的OSPF設(shè)備組網(wǎng)示意圖; 圖3為本發(fā)明實(shí)施例的OSPF設(shè)備組成框圖。
具體實(shí)施例方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí) 施例和附圖,對(duì)本發(fā)明實(shí)施例做進(jìn)一步詳細(xì)說明。在此,本發(fā)明的示意性實(shí) 施例及其說明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
實(shí)施例一
本發(fā)明實(shí)施例提供一種鏈路狀態(tài)通告信息交互方法,以下結(jié)合附圖對(duì)本
實(shí)施例進(jìn)行詳細(xì)說明。
圖1為本實(shí)施例的方法流程圖,請(qǐng)參照?qǐng)Dl,本實(shí)施例的鏈路狀態(tài)通告信息交互方法包括
101:獲取鏈路狀態(tài)通告信息;
102:根據(jù)所述鏈路狀態(tài)通告信息及其通告范圍,在所述鏈路狀態(tài)通告 信息的通告范圍內(nèi)選擇一條鏈路傳遞所述鏈路狀態(tài)通告信息到對(duì)端。
根據(jù)本實(shí)施例的步驟101,鏈路狀態(tài)通告信息可以是在與對(duì)端建立鄰接 關(guān)系的過程中所生成的鏈路狀態(tài)通告的摘要信息,通過數(shù)據(jù)描述DD報(bào)文傳 遞;也可以是在與對(duì)端建立鄰接關(guān)系之后新學(xué)習(xí)到的鏈路狀態(tài)通告的詳細(xì)信 息,通過鏈路狀態(tài)更新報(bào)文傳遞,具體將在以下的實(shí)施例中進(jìn)行詳細(xì)說明。 其中,當(dāng)鏈路狀態(tài)通告信息是在與對(duì)端建立鄰接關(guān)系過程中所生成的鏈
路狀態(tài)通告的摘要信息,并通過數(shù)據(jù)描述DD報(bào)文傳遞時(shí),如果該鏈路狀態(tài)
通告信息是通過一條新建鏈路首次與對(duì)端建立鄰接關(guān)系的過程中生成的,則
根據(jù)OSPF協(xié)議規(guī)定的標(biāo)準(zhǔn)流程,該鏈路狀態(tài)通告信息在上述新建鏈路上傳
遞,在這種情況下,與對(duì)端之間只有一條鏈路;而如果該鏈路狀態(tài)通告信息
不是首次與對(duì)端建立鄰接關(guān)系的過程中生成的,也就是說,在通過該新建鏈
路與對(duì)端建立鄰接關(guān)系之前,已經(jīng)通過別的鏈路與對(duì)端建立了鄰接關(guān)系,則
根據(jù)本實(shí)施例的方法,如果不同通告范圍的鏈路狀態(tài)通告信息己經(jīng)通過其他
鏈路傳遞到對(duì)端,則不再傳送,而對(duì)于沒有被傳遞到對(duì)端的鏈路狀態(tài)通告信
息,還是會(huì)在各自的通告范圍內(nèi)選擇一條鏈路傳遞到對(duì)端。
其中,當(dāng)鏈路狀態(tài)通告信息是在與對(duì)端建立鄰接關(guān)系之后新學(xué)習(xí)到的鏈
路狀態(tài)通告的詳細(xì)信息,并通過鏈路狀態(tài)更新報(bào)文傳遞時(shí),如果該鏈路狀態(tài)
通告信息是由本地生成的,則針對(duì)每一個(gè)鄰居,本實(shí)施例的方法要將該鏈路
狀態(tài)通告信息中不同通告范圍的鏈路狀態(tài)通告信息在各個(gè)通告范圍內(nèi)選擇 一條鏈路分別傳遞;如果該鏈路狀態(tài)通告信息是從某一個(gè)鄰居接收到的,則
針對(duì)除該鄰居之外的其他鄰居,本實(shí)施例的方法要將該鏈路狀態(tài)通告信息中 不同通告范圍的信息在各個(gè)通告范圍內(nèi)選擇一條鏈路分別傳遞。
根據(jù)本實(shí)施例的步驟102,由于鏈路狀態(tài)通告信息根據(jù)通告范圍的不同分為三類,分別為鏈路內(nèi)通告、區(qū)域內(nèi)通告以及自治域通告,因此,對(duì)于通
告范圍為鏈路內(nèi)通告的鏈路狀態(tài)通告信息,根據(jù)本實(shí)施例的方法的步驟102, 要在所述鏈路上通告;對(duì)于通告范圍為區(qū)域內(nèi)通告的鏈路狀態(tài)通告信息,根 據(jù)本實(shí)施例的方法的步驟102,要在所述區(qū)域范圍內(nèi)選擇一條鏈路來通告;
對(duì)于通告范圍為自治域內(nèi)通告的鏈路狀態(tài)信息,根據(jù)本實(shí)施例的方法的步驟
102,要在該OSPF域內(nèi)選擇一條鏈路來通告。其中,選擇鏈路的方式有多 種,例如可以在上述區(qū)域內(nèi)或自治域內(nèi)選擇一條接口帶寬最大的鏈路,或者, 如果上述區(qū)域或自治域內(nèi),接口帶寬最大對(duì)應(yīng)多條鏈路,可以選擇所述多條 鏈路中接口索引值最大或者最小的鏈路,上述選擇鏈路的方式只是舉例說 明,本實(shí)施例并不以此作為限制。
根據(jù)本實(shí)施例的方法,如果在鏈路狀態(tài)通告信息傳遞過程中,鏈路狀態(tài) 通告信息對(duì)應(yīng)的通告鏈路斷掉,則對(duì)于通告范圍為鏈路內(nèi)通告的鏈路狀態(tài)通 告信息,不再選擇其他鏈路傳遞;對(duì)于通告范圍為區(qū)域內(nèi)通告的鏈路狀態(tài)通 告信息,則在上述區(qū)域內(nèi)另外選擇一條鏈路傳遞;對(duì)于通告范圍為自治域范 圍內(nèi)通告的鏈路狀態(tài)通告信息,則在上述自治域范圍內(nèi)另外選擇一條鏈路傳 遞。其中,選擇鏈路的方式與前述相同,這里不再贅述。
通過本實(shí)施例的方法,在確保鏈路狀態(tài)通告信息已經(jīng)通過一條鏈路傳遞 給鄰居的前提下,不在更多的鏈路上進(jìn)行冗余的傳輸,有效減少了多鏈路應(yīng) 用中,OSPF報(bào)文(例如DD報(bào)文、鏈路狀態(tài)更新及應(yīng)答報(bào)文等)的冗余通 告,降低了鏈路帶寬消耗及CPU額外的收?qǐng)?bào)處理消耗。
為使本實(shí)施例的方法更加清楚易懂,以下結(jié)合具體的兩個(gè)OSPF設(shè)備之 間LSA信息交互的流程對(duì)本實(shí)施例的方法進(jìn)行詳細(xì)說明。
圖2為網(wǎng)絡(luò)環(huán)境中,兩個(gè)OSPF設(shè)備RTA和RTB的組網(wǎng)示意圖,請(qǐng)參 照?qǐng)D2, RTA的ID為l丄l.l, RTB的ID為2.2.2.2, RTA與RTB之間按先 后順序分別通過屬于區(qū)域area0的鏈路Eth 1,屬于區(qū)域area0的鏈路Eth 2 與屬于區(qū)域areal的鏈路Eth 3建立鄰接關(guān)系。應(yīng)用本實(shí)施例方法,當(dāng)RTA和RTB在通過Eth 1建立鄰接關(guān)系時(shí),由 于是首次建立鄰接關(guān)系,RTA首次檢測(cè)到router-id為2.2.2.2的鄰居RTB, 所以RTA將所有需要向該鄰居RTB傳遞的LSA信息加入到DD匯總表中, DD匯總列表用于匯總與鄰居交互的所有LSA信息,再根據(jù)該DD匯總表生 成DD報(bào)文,在Ethl上與RTB交互上述DD報(bào)文。
應(yīng)用本實(shí)施例方法,當(dāng)RTA和RTB在通過Eth 2建立鄰接關(guān)系時(shí),RTA 檢測(cè)到RTB時(shí),由于在本區(qū)域area0內(nèi)已經(jīng)通過Eth I與RTB建立鄰接關(guān)系, 即RTA已經(jīng)通過Eth 1將LSA信息發(fā)給了鄰居RTB,所以RTA在通過Eth2 進(jìn)行DD通告時(shí),針對(duì)不同通告范圍的LSA需要進(jìn)行如下不同的處理
對(duì)于通告范圍為鏈路的LSA,由于在本鏈路Eth2上沒有進(jìn)行DD報(bào)文 交互,因此,需要將通告范圍為鏈路的LSA加入鄰居RTB的DD匯總表中, 通過鏈路Eth2與鄰居RTB進(jìn)行DD報(bào)文交互。
對(duì)于通告范圍為區(qū)域的LSA,由于在本區(qū)域areaO范圍內(nèi)已經(jīng)通過鏈路 Ethl與RTB建立了鄰接關(guān)系,即通告范圍為區(qū)域的LSA己經(jīng)通過鏈路Ethl 通告給了RTB,因此,通告范圍為區(qū)域內(nèi)通告的LSA,不加入DD匯總表里 進(jìn)行DD報(bào)文交互。
對(duì)于通告范圍為整個(gè)OSPF域內(nèi)的LSA,由于在整個(gè)普通區(qū)已經(jīng)通過鏈 路Ethl與RTB建立了鄰接關(guān)系,即通告范圍為OSPF域的LSA已經(jīng)通過鏈 路Ethl通告給了 RTB,因此,通告范圍為OSPF域的LSA不加入DD匯總 表里進(jìn)行DD報(bào)文交互。
應(yīng)用本實(shí)施例方法,當(dāng)RTA和RTB在通過Eth 3建立鄰接關(guān)系時(shí),RTA 檢測(cè)到RTB時(shí),由于在不同區(qū)域areaO內(nèi)已經(jīng)通過Eth 1與RTB建立鄰接關(guān) 系,即在區(qū)域areaO內(nèi),RTA已經(jīng)將LSA信息發(fā)給了鄰居RTB,所以RTA 在通過Eth3進(jìn)行DD通告時(shí),針對(duì)不同通告范圍的LSA需要進(jìn)行如下不同 的處理
對(duì)于通告范圍為鏈路的LSA,由于在本鏈路Eth3上沒有進(jìn)行DD報(bào)文交互,因此,需要將通告范圍為鏈路的LSA加入鄰居RTB的DD匯總表中, 通過鏈路Eth3與鄰居RTB進(jìn)行DD報(bào)文交互。
對(duì)于通告范圍為區(qū)域的LSA,由于在本區(qū)域areal范圍內(nèi)沒有鏈路與 RTB建立鄰接關(guān)系,即通告范圍為區(qū)域的LSA還沒有在區(qū)域areal范圍內(nèi)通 過任何鏈路通告給RTB,因此,通告范圍為區(qū)域內(nèi)通告的LSA,仍要加入 DD匯總表里,通過鏈路Eth3與RTB進(jìn)行DD報(bào)文交互。
對(duì)于通告范圍為整個(gè)OSPF域內(nèi)的LSA,由于在整個(gè)普通區(qū)已經(jīng)通過鏈 路Ethl與RTB建立了鄰接關(guān)系,即通告范圍為OSPF域的LSA已經(jīng)通過鏈 路Ethl通告給了 RTB,因此,通告范圍為OSPF域的LSA不加入DD匯總 表里進(jìn)行DD報(bào)文交互。
應(yīng)用本實(shí)施例的方法,當(dāng)RTA與RTB已經(jīng)通過多條鏈路建立鄰接關(guān)系, 此時(shí),如果RTA新學(xué)習(xí)到一個(gè)LSA,例如從某一鄰居收到一個(gè)LS-Update 報(bào)文,RTA需要確認(rèn)該報(bào)文中的LSA信息,并將相應(yīng)的LSA信息在其通告 范圍內(nèi)選擇一條鏈路通告給除上述鄰居之外的其他鄰居。
下面以RTA(l丄l.l)收到一個(gè)LSA信息,通過選擇的鏈路通告給鄰居 RTB (2.2.2.2)為例進(jìn)行說明,其中
當(dāng)從區(qū)域area 0,可以是區(qū)域area 0的鏈路Eth 1 ,區(qū)域area 0的鏈路Eth 2或其它任意area0內(nèi)的鏈路上的鄰居收到一個(gè)LSA信息時(shí),針對(duì)不同通告 范圍的LSA,選擇不同的鏈路,包括
對(duì)于通告范圍為鏈路的LSA,按照協(xié)議規(guī)定的洪泛(FLOOD)規(guī)則, 該LSA只在接收接口通告給其它鄰居,不通過其他接口通告。其中, 一個(gè) 接收接口對(duì)應(yīng)一個(gè)鏈路,但不一定只有一個(gè)鄰居,如設(shè)備A、 B、 C通過hub 連接,則設(shè)備A接收到設(shè)備B通告的LSA時(shí),通告給設(shè)備C。
對(duì)于通告范圍為區(qū)域的LSA,按照協(xié)議規(guī)定的洪泛規(guī)則,該LSA需要 通告給area0內(nèi)的所有鄰居,包含通過Eth 1 口與Eth2 口建立的鄰居,根據(jù) 本實(shí)施例的方法,此時(shí)LSA只通過Eth 1 口發(fā)送給鄰居,而不向Eth2口發(fā)送。
對(duì)于通告范圍為整個(gè)OSPF域內(nèi)的LSA,按照協(xié)議規(guī)定的洪泛規(guī)則,該 LSA需要通告給普通區(qū)的所有鄰居,根據(jù)本實(shí)施例的方法,將通告的鄰居優(yōu) 化為,只通過Ethl 口發(fā)送給鄰居,節(jié)約了帶寬。
當(dāng)從區(qū)域area 1內(nèi)的鏈路上的鄰居收到一個(gè)LSA信息時(shí),針對(duì)不同通 告范圍的LSA,選擇不同的鏈路,包括
對(duì)于通告范圍為鏈路的LSA,按照協(xié)議規(guī)定,在接收端口Eth3通告給 其它鄰居,不向areal內(nèi)的其它接口 (圖未示)洪泛該LSA。
對(duì)于通告范圍為區(qū)域的LSA,按照協(xié)議規(guī)定的洪泛規(guī)則,該LSA需要 通告給areal內(nèi)的所有其它鄰居,包含通過Eth 3通告給鄰居RTB。
對(duì)于通告范圍為整個(gè)OSPF域內(nèi)的LSA,按照協(xié)議規(guī)定的洪泛規(guī)則,該 LSA需要通告給普通區(qū)的所有鄰居,包含通過Ethl, Eth2, Eth3三個(gè)接口 洪泛給RTB,根據(jù)本實(shí)施例的方法,將通告給RTB的報(bào)文優(yōu)化為,只通過 Ethl口發(fā)送。對(duì)于此LSA,節(jié)約了2/3的帶寬及處理報(bào)文的CPU消耗。
應(yīng)用本實(shí)施例的方法,當(dāng)傳遞某一類LSA信息的鏈路斷掉,例如Ethl 接口對(duì)應(yīng)的鄰居RTB斷掉,則根據(jù)這些LSA信息的通告范圍另外選擇鏈路 進(jìn)行傳遞,包括-
對(duì)于通告范圍為鏈路的LSA,由于一個(gè)鏈路與一個(gè)鄰居只會(huì)建立一個(gè)鏈 接,而該鏈路已經(jīng)斷掉,因此這類LSA無需重傳。
對(duì)于通告范圍為區(qū)域的LSA,此時(shí)需要判斷在Ethl接口對(duì)應(yīng)的區(qū)域area 0內(nèi)是否還存在另一個(gè)鏈路與RTB建立了鄰接關(guān)系,在本實(shí)施例中,鏈路 Eth2與RTB也建立了鄰接關(guān)系,因此,根據(jù)本實(shí)施例的方法,將這類LSA 通過Eth2 口傳遞給RTB。保證這個(gè)LSA信息正確通告給RTB。
對(duì)于通告范圍為整個(gè)OSPF域內(nèi)的LSA,此時(shí)需要判斷在所有普通區(qū)內(nèi) 是否存在額外的鏈路與RTB建立了鄰接關(guān)系,在本實(shí)施例中,鏈路Eth2與 Eth3都與RTB建立了鄰接關(guān)系,因此,根據(jù)本實(shí)施例的方法,選擇上述完好鏈路的其中之一向RTB重新通告這類LSA。
相對(duì)于現(xiàn)有技術(shù)中,OSPF設(shè)備在通過多鏈路與鄰居建立鄰接關(guān)系過程 中,會(huì)通過DD報(bào)文交互鏈路狀態(tài)通告的摘要信息,而在OSPF設(shè)備與鄰居 已經(jīng)建立了鄰接關(guān)系后,會(huì)通過鏈路狀態(tài)更新報(bào)文和鏈路狀態(tài)應(yīng)答報(bào)文交互 鏈路狀態(tài)通告的詳細(xì)信息,根據(jù)本實(shí)施例的方法,在兩臺(tái)OSPF設(shè)備之間使 用多鏈路備份的應(yīng)用中,在確保LSA信息己經(jīng)通過一條鏈路傳遞給鄰居的 前提下,不在更多的鏈路上進(jìn)行冗余的傳輸,有效降低了通信的報(bào)文量,降 低了鏈路帶寬消耗及CPU額外的收?qǐng)?bào)處理消耗。
實(shí)施例二
本發(fā)明實(shí)施例還提供一種OSPF設(shè)備,以下結(jié)合附圖對(duì)本實(shí)施例的OSPF 設(shè)備進(jìn)行詳細(xì)說明。
圖3為本實(shí)施例的OSPF設(shè)備組成框圖,請(qǐng)參照?qǐng)D3,本實(shí)施例的OSPF 設(shè)備主要包括
獲取單元31,用于獲取鏈路狀態(tài)通告信息;
選擇單元32,用于根據(jù)所述獲取單元獲取的鏈路狀態(tài)通告信息以及 OSPF協(xié)議規(guī)定的各鏈路狀態(tài)通告信息的通告范圍,在所述鏈路狀態(tài)通告信 息的通告范圍內(nèi)選擇一條鏈路;
傳遞單元33,用于根據(jù)所述選擇單元所選擇的鏈路,通過所選擇的鏈路 傳遞所述鏈路狀態(tài)通告信息到對(duì)端。
根據(jù)本實(shí)施例的一個(gè)較佳實(shí)施例方式,該OSPF設(shè)備還包括
第一判斷單元34,用于根據(jù)獲取單元31獲取到的鏈路狀態(tài)通告信息, 判斷所述鏈路狀態(tài)通告信息中,是否已經(jīng)有不同通告范圍的鏈路狀態(tài)通告信 息在各個(gè)通告范圍內(nèi)被傳遞到對(duì)端。
在本實(shí)施例方式中,如果所述鏈路狀態(tài)通告信息中,已經(jīng)有不同通告范 圍的鏈路狀態(tài)通告信息在各個(gè)通告范圍內(nèi)被傳遞到對(duì)端,則傳遞單元33不 再發(fā)送己經(jīng)傳遞到對(duì)端的鏈路狀態(tài)通告信息。根據(jù)本實(shí)施例的另一個(gè)較佳實(shí)施例方式,獲取單元31可以包括 第一選擇模塊311,用于選擇本鏈路作為鏈路狀態(tài)通告信息中的通告范
圍為鏈路范圍內(nèi)通告的鏈路狀態(tài)通告信息的傳遞鏈路;
第二選擇模塊312,用于在本區(qū)域內(nèi)選擇一條鏈路作為鏈路狀態(tài)通告信
息中的通告范圍為區(qū)域范圍內(nèi)通告的鏈路狀態(tài)通告信息的傳遞鏈路;
第三選擇模塊313,用于在本OSPF域內(nèi)選擇一條鏈路作為鏈路狀態(tài)通
告信息中的通告范圍為自治域范圍內(nèi)通告的鏈路狀態(tài)通告信息的傳遞鏈路。
在本實(shí)施方式中,第二選擇模塊312可以在本區(qū)域內(nèi)選擇一條接口帶寬 最大的鏈路作為傳遞鏈路;或者,也可以在本區(qū)域內(nèi)接口帶寬最大對(duì)應(yīng)多條 鏈路時(shí),選擇所述多條鏈路中接口索引值最大或者最小的鏈路作為傳遞鏈 路。第三選擇模塊313可以在本OSPF域內(nèi)選擇一條接口帶寬最大的鏈路作 為傳遞鏈路;或者,也可以在本OSPF域內(nèi)接口帶寬最大對(duì)應(yīng)多條鏈路時(shí), 選擇所述多條鏈路中接口索引值最大或者最小的鏈路作為傳遞鏈路。
根據(jù)本實(shí)施例的另一個(gè)較佳實(shí)施例方式,該OSPF設(shè)備還包括
第二判斷單元35,用于判斷正在傳遞鏈路狀態(tài)通告信息的鏈路是否失 效,并在所述正在傳遞鏈路狀態(tài)通告信息的鏈路失效,且在所述鏈路狀態(tài)通 告信息的通告范圍內(nèi)還存在至少一條鏈路時(shí),通過選擇單元32根據(jù)所述鏈 路狀態(tài)通告信息的通告范圍,在通告范圍內(nèi)重新選擇一條鏈路,以便傳遞單 元33在所選擇的鏈路上傳遞所述鏈路狀態(tài)通告信息。
本實(shí)施例的OSPF設(shè)備用于實(shí)現(xiàn)前述實(shí)施例的方法的各步驟的功能,由 于在前述方法實(shí)施例中,已經(jīng)對(duì)各步驟進(jìn)行了詳細(xì)說明,故在此不再贅述。
通過本實(shí)施例的OSPF設(shè)備,在確保鏈路狀態(tài)通告信息己經(jīng)通過一條鏈 路傳遞給鄰居的前提下,不在更多的鏈路上進(jìn)行冗余的傳輸,有效減少了多 鏈路應(yīng)用中,OSPF報(bào)文(例如DD報(bào)文、鏈路狀態(tài)更新及應(yīng)答報(bào)文等)的 冗余通告,降低了鏈路帶寬消耗及CPU額外的收?qǐng)?bào)處理消耗。
相對(duì)于現(xiàn)有技術(shù)中,OSPF設(shè)備在通過多鏈路與鄰居建立鄰接關(guān)系過程中,會(huì)通過DD報(bào)文交互鏈路狀態(tài)通告的摘要信息,而在OSPF設(shè)備與鄰居 已經(jīng)建立了鄰接關(guān)系后,會(huì)通過鏈路狀態(tài)更新報(bào)文和鏈路狀態(tài)應(yīng)答報(bào)文交互 鏈路狀態(tài)通告的詳細(xì)信息,根據(jù)本實(shí)施例的OSPF設(shè)備,在兩臺(tái)OSPF設(shè)備 之間使用多鏈路備份的應(yīng)用中,在確保LSA信息已經(jīng)通過一條鏈路傳遞給 鄰居的前提下,不在更多的鏈路上進(jìn)行冗余的傳輸,通過對(duì)傳遞鏈路狀態(tài)通 告的摘要信息的數(shù)據(jù)描述報(bào)文的優(yōu)化,和對(duì)傳遞鏈路狀態(tài)通告的詳細(xì)信息的 鏈路狀態(tài)更新報(bào)文和鏈路狀態(tài)應(yīng)答報(bào)文的優(yōu)化,有效降低了通信的報(bào)文量, 降低了鏈路帶寬消耗及CPU額外的收?qǐng)?bào)處理消耗。
以上所述的具體實(shí)施例,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了 進(jìn)一步詳細(xì)說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施例而己, 并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任 何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種鏈路狀態(tài)通告信息交互方法,其特征在于,所述方法包括獲取鏈路狀態(tài)通告信息;根據(jù)所述鏈路狀態(tài)通告信息及其通告范圍,在所述鏈路狀態(tài)通告信息的通告范圍內(nèi)選擇一條鏈路傳遞所述鏈路狀態(tài)通告信息到對(duì)端。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取鏈路狀態(tài)通告信息 的步驟之后,所述方法還包括如果所述鏈路狀態(tài)通告信息中,已經(jīng)有不同通告范圍的鏈路狀態(tài)通告信 息在各個(gè)通告范圍內(nèi)被傳遞到對(duì)端,則不在所述各個(gè)通告范圍內(nèi)發(fā)送已經(jīng)傳 遞到對(duì)端的鏈路狀態(tài)通告信息。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述獲取鏈路狀態(tài) 通告信息的步驟包括本地生成鏈路狀態(tài)通告信息;或者接收鄰居發(fā)送的鏈路狀態(tài)通告信息。
4. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在所述鏈路狀態(tài)通 告信息的通告范圍內(nèi)選擇一條鏈路傳遞所述鏈路狀態(tài)通告信息到對(duì)端的步 驟包括將所述鏈路狀態(tài)通告信息中,通告范圍為鏈路范圍內(nèi)通告的鏈路狀態(tài)通告信息在所述鏈路上傳遞;將所述鏈路狀態(tài)通告信息中,通告范圍為區(qū)域范圍內(nèi)通告的鏈路狀態(tài)通告信息在所述區(qū)域內(nèi)選擇一條鏈路傳遞;將所述鏈路狀態(tài)通告信息中,通告范圍為自治域范圍內(nèi)通告的鏈路狀態(tài) 通告信息在所述自治域內(nèi)選擇一條鏈路傳遞。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,所述選擇一條鏈路傳輸?shù)牟襟E包括選擇一條接口帶寬最大的鏈路傳輸;或者如果接口帶寬最大對(duì)應(yīng)多條鏈路,則選擇所述多條鏈路中接口索引值最 大或者最小的鏈路傳輸。
6. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于如果傳遞鏈路狀態(tài)通告信息的鏈路失效,且在所述鏈路狀態(tài)通告信息的 通告范圍內(nèi)還存在至少一條鏈路,則根據(jù)所述鏈路狀態(tài)通告信息的通告范 圍,在通告范圍內(nèi)重新選擇一條鏈路傳遞所述鏈路狀態(tài)通告信息。
7. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述鏈路狀態(tài)通告信息為鏈路狀態(tài)通告的摘要信息,則所述鏈路狀態(tài)通 告信息通過數(shù)據(jù)描述報(bào)文傳遞;或者所述鏈路狀態(tài)通告信息為鏈路狀態(tài)通告的詳細(xì)信息,則所述鏈路狀態(tài)通 告信息通過鏈路狀態(tài)更新報(bào)文傳遞。
8. —種開放式最短路徑優(yōu)先理由協(xié)議OSPF設(shè)備,其特征在于,所述OSPF設(shè)備包括獲取單元,用于獲取鏈路狀態(tài)通告信息;選擇單元,用于根據(jù)所述獲取單元獲取的鏈路狀態(tài)通告信息以及OSPF協(xié)議規(guī)定的各鏈路狀態(tài)通告信息的通告范圍,在所述鏈路狀態(tài)通告信息的通告范圍內(nèi)選擇一條鏈路;傳遞單元,用于根據(jù)所述選擇單元所選擇的鏈路,通過所選擇的鏈路傳 遞所述鏈路狀態(tài)通告信息到對(duì)端。
9. 根據(jù)權(quán)利要求8所述的OSPF設(shè)備,其特征在于,所述OSOF設(shè)備還包括-第一判斷單元,用于根據(jù)所述獲取單元獲取到的鏈路狀態(tài)通告信息,判 斷所述鏈路狀態(tài)通告信息中,是否己經(jīng)有不同通告范圍的鏈路狀態(tài)通告信息 在各個(gè)通告范圍內(nèi)被傳遞到對(duì)端;如果所述鏈路狀態(tài)通告信息中,已經(jīng)有不同通告范圍的鏈路狀態(tài)通告信 息在各個(gè)通告范圍內(nèi)被傳遞到對(duì)端,則所述傳遞單元不再發(fā)送已經(jīng)傳遞到對(duì)端的鏈路狀態(tài)通告信息。
10. 根據(jù)權(quán)利要求8或9所述的OSPF設(shè)備,其特征在于,所述獲取單元包括生成模塊,用于在本地生成鏈路狀態(tài)通告信息;以及或者 接收模塊,用于接收鄰居發(fā)送的鏈路狀態(tài)通告信息。
11. 根據(jù)權(quán)利要求8或9所述的OSPF設(shè)備,其特征在于,所述選擇單元包括第一選擇模塊,用于選擇本鏈路作為鏈路狀態(tài)通告信息中的通告范圍為 鏈路范圍內(nèi)通告的鏈路狀態(tài)通告信息的傳遞鏈路;第二選擇模塊,用于在本區(qū)域內(nèi)選擇一條鏈路作為鏈路狀態(tài)通告信息中 的通告范圍為區(qū)域范圍內(nèi)通告的鏈路狀態(tài)通告信息的傳遞鏈路;第三選擇模塊,用于在本OSPF域內(nèi)選擇一條鏈路作為鏈路狀態(tài)通告信 息中的通告范圍為自治域范圍內(nèi)通告的鏈路狀態(tài)通告信息的傳遞鏈路。
12. 根據(jù)權(quán)利要求8或9所述的OSPF設(shè)備,其特征在于,所述OSPF設(shè)備還包括第二判斷單元,用于判斷正在傳遞鏈路狀態(tài)通告信息的鏈路是否失效, 并在所述正在傳遞鏈路狀態(tài)通告信息的鏈路失效,且在所述鏈路狀態(tài)通告信 息的通告范圍內(nèi)還存在至少一條鏈路時(shí),通過所述選擇單元根據(jù)所述鏈路狀 態(tài)通告信息的通告范圍,在通告范圍內(nèi)重新選擇一條鏈路,并通過所述傳遞 單元傳遞所述鏈路狀態(tài)通告信息。
全文摘要
本發(fā)明實(shí)施例提供一種鏈路狀態(tài)通告信息交互方法和OSPF設(shè)備,所述方法包括獲取鏈路狀態(tài)通告信息;根據(jù)所述鏈路狀態(tài)通告信息及其通告范圍,在所述鏈路狀態(tài)通告信息的通告范圍內(nèi)選擇一條鏈路傳遞所述鏈路狀態(tài)通告信息到對(duì)端。通過本發(fā)明實(shí)施例提供的方法和設(shè)備,當(dāng)兩臺(tái)OSPF設(shè)備之間存在多條鏈路通過OSPF協(xié)議互聯(lián)時(shí),在保證雙方報(bào)文正確交互的前提下,只選擇其中的某些必要鏈路交互LSA信息,避免了其它鏈路的冗余通告,有效降低了報(bào)文的帶寬消耗,以及兩端設(shè)備處理報(bào)文的CPU消耗。
文檔編號(hào)H04L29/06GK101588303SQ20091015070
公開日2009年11月25日 申請(qǐng)日期2009年6月22日 優(yōu)先權(quán)日2009年6月22日
發(fā)明者余崢嶸 申請(qǐng)人:福建星網(wǎng)銳捷網(wǎng)絡(luò)有限公司