專利名稱:一種更新ospf路由的方法及ospf路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及開放最短路徑優(yōu)先(OSPF,Open Shortest Path First)路由協(xié)議技術(shù),尤指一種更新OSPF路由的方法及OSPF路由器。
背景技術(shù):
OSPF是一種分層次的路由協(xié)議,其層次中最大的實(shí)體是自治系統(tǒng)(AS,Autonomous System),即遵循共同路由策略管理下的一部分網(wǎng)絡(luò)實(shí)體。在AS中,將網(wǎng)絡(luò)劃分為不同的區(qū)域。區(qū)域是從邏輯上將路由劃分為不同的組,每個(gè)組用區(qū)域號(hào)標(biāo)識(shí)。參見圖1,圖1為OSPF 區(qū)域劃分的示意圖。在OSPF中,區(qū)域0為骨干區(qū)。OSPF路由器根據(jù)在AS中的位置,分為以下四種>區(qū)域內(nèi)路由器(Internal Router),該路由器的所有接口屬于同一個(gè)OSPF區(qū)域;>區(qū)域邊界路由器(ABR,Area Border Router),該路由器用來(lái)連接骨干區(qū)域和非骨干區(qū)域;>骨干路由器(Backbone,Router),該路由器至少有一個(gè)接口屬于骨干區(qū)域,所有的ABR和區(qū)域0中的區(qū)域內(nèi)路由器都是骨干路由器;> 自治系統(tǒng)邊界路由器(ASBR, Autonomous System Border Router),該路由器用來(lái)與其他AS交換路由信息的路由器稱為ASBR。在AS內(nèi),每個(gè)區(qū)域都維持一張唯一的拓?fù)浣Y(jié)構(gòu)圖,各域根據(jù)自己的拓?fù)鋱D各自計(jì)算路由,同時(shí)ABR把各個(gè)區(qū)域的內(nèi)部路由總結(jié)后在域間擴(kuò)散,ASBR將到其他AS域的外部路由通過(guò)ABR在區(qū)域間擴(kuò)散。OSPF中對(duì)鏈路狀態(tài)信息的描述都是封裝在鏈路狀態(tài)通告(LSA,LinkState Advertisement)發(fā)布出去,OSPF中的路由器主要根據(jù)以下幾種類型的LSA進(jìn)行路由計(jì)算>路由器 LSA 通常稱為第一類LSA,該LSA描述了路由器物理接口所連接的鏈路或接口,指明了鏈路的狀態(tài),代價(jià)等。每個(gè)OSPF區(qū)域內(nèi)的路由器均會(huì)生成第一類LSA,在生成的區(qū)域內(nèi)泛/共。>網(wǎng)絡(luò) LSA通常稱為第二類LSA,由廣播網(wǎng)的指定路由器(DR,Designated Router)產(chǎn)生,描述本廣播網(wǎng)段所有路由器的鏈路狀態(tài),在其始發(fā)的區(qū)域內(nèi)傳播,網(wǎng)絡(luò)LSA攜帶兩個(gè)關(guān)鍵信息,一是生成該網(wǎng)絡(luò)LSA的廣播網(wǎng)的IP網(wǎng)段,用于在區(qū)域內(nèi)通告本廣播網(wǎng)直接可達(dá)的IP前綴;另外一個(gè)是本廣播網(wǎng)所連接的所有節(jié)點(diǎn),用Attached Router字段表示,用于描述網(wǎng)絡(luò)拓?fù)洹?gt;網(wǎng)絡(luò)匯總LSA通常稱為第三類LSA,由ABR產(chǎn)生,描述區(qū)域內(nèi)某個(gè)IP網(wǎng)段的路由,并通告給其他區(qū)域,用于在區(qū)域間通告可達(dá)IP前綴。
> ASBR 匯總 LSA通常稱為第四類LSA,由ABR產(chǎn)生,描述到ASBR的路由,并通告給相關(guān)區(qū)域,用于描述到達(dá)ASBR節(jié)點(diǎn)的網(wǎng)絡(luò)拓?fù)洹?gt; AS 外部 LSA通常稱為第五類LSA,由ASBR產(chǎn)生,描述到AS外部的路由,通告到所有的區(qū)域,用于通告從其他協(xié)議引入到OSPF中的可達(dá)IP前綴。>非純末梢區(qū)域(NSSA,Not-So-Stubby Area)外部 LSA通常稱為第七類LSA,由NSSA區(qū)域內(nèi)的ASBR產(chǎn)生,描述到AS外部的路由,僅在 NSSA區(qū)域內(nèi)傳播。用于在NSSA區(qū)域內(nèi)通告從其他協(xié)議引入到OSPF中的可達(dá)IP前綴。OSPF網(wǎng)絡(luò)中的每臺(tái)路由器都會(huì)根據(jù)實(shí)際的鏈路狀態(tài)情況生成相應(yīng)的LSA在網(wǎng)絡(luò)中進(jìn)行擴(kuò)散,每臺(tái)路由器根據(jù)接收到的LSA形成自己的鏈路狀態(tài)數(shù)據(jù)庫(kù)(LSDB,Link State Date Base)0OSPF路由器會(huì)進(jìn)行兩類路由的計(jì)算,包括OSPF內(nèi)部路由和OSPF外部路由。OSPF 內(nèi)部路由是指在OSPF路由域根據(jù)OSPF協(xié)議計(jì)算出來(lái)的路由;OSPF外部路由是指根據(jù)由其他路由協(xié)議弓I入而計(jì)算得到的路由。區(qū)域內(nèi)和區(qū)域間的路由都屬于OSPF內(nèi)部路由。在進(jìn)行區(qū)域內(nèi)路由計(jì)算時(shí),根據(jù)自身的LSDB計(jì)算出到區(qū)域內(nèi)其他路由器的路由;并為本區(qū)域的Mub及網(wǎng)段路由生成第三類 LSA和第四類LSA。在計(jì)算區(qū)域間路由時(shí),根據(jù)收到的第三類LSA和第四類LSA以及本區(qū)域的路由,計(jì)算出到其它區(qū)域IP前綴的路由以及到其他區(qū)域ASBR的路由。Area 0要為本區(qū)域?qū)W習(xí)到的IP前綴路由及ASBR路由傳播至路由源區(qū)域外的其他區(qū)域。在計(jì)算OSPF外部路由時(shí)根據(jù)收到的第五類和第七類LSA以及本區(qū)域的路由,計(jì)算得到外部路由。在本文中, 如無(wú)特殊說(shuō)明,外部路由均代表OSPF外部路由。參見圖2,圖2為現(xiàn)有技術(shù)OSPF路由更新示意圖。具體情況如下在步驟201中,當(dāng)鏈路狀態(tài)信息發(fā)生變化時(shí),OSPF路由器會(huì)根據(jù)實(shí)際變化的情況, 觸發(fā)全部路由計(jì)算、區(qū)域間三類增量計(jì)算、區(qū)域間四類增量計(jì)算或者外部增量計(jì)算。當(dāng)OSPF路由器收到第三類LSA時(shí),觸發(fā)區(qū)域間三類增量計(jì)算;收到第四類LSA時(shí), 觸發(fā)區(qū)域間四類增量計(jì)算;收到第五/七類LSA,觸發(fā)外部增量計(jì)算;在收到其他類型的 LSA或者自身的鏈路狀態(tài)發(fā)生變化時(shí),將觸發(fā)全部路由計(jì)算。在步驟202中,根據(jù)變化后的鏈路狀態(tài)執(zhí)行區(qū)域內(nèi)路由計(jì)算,得到區(qū)域內(nèi)路由,到區(qū)域內(nèi)的ABR以及ASBR路由。在步驟203中,根據(jù)重新計(jì)算的區(qū)域內(nèi)路由,執(zhí)行區(qū)域間路由全部計(jì)算,即對(duì)應(yīng)本路由器上每條第三類LSA以及第四類LSA重新計(jì)算路由,然后執(zhí)行步驟208。在步驟204中,針對(duì)收到的第三類LSA執(zhí)行區(qū)域間三類增量計(jì)算。在步驟205中,根據(jù)區(qū)域間三類增量的計(jì)算結(jié)果,判斷是否影響了本路由器到達(dá)轉(zhuǎn)發(fā)地址(FA,F(xiàn)orwarding Address)的路由,如果是,則執(zhí)行208 ;否則,結(jié)束當(dāng)前更新流程。其中,F(xiàn)A是OSPF協(xié)議設(shè)計(jì)用來(lái)避免在訪問(wèn)AS外部地址時(shí)增加多余的跳數(shù)。ASBR 在引入外部路由時(shí),將下一跳地址填到LSA的i^rwardingAddress中。這樣,路由器在處理該條LSA,首先判斷自身是否有到該forwarding Address的路徑,如果有,從到達(dá)FA的路由繼承下一跳,從而在轉(zhuǎn)發(fā)報(bào)文時(shí)只需要將報(bào)文發(fā)送給Rewarding Address即可,不必再經(jīng)過(guò)ASBR的轉(zhuǎn)發(fā);如果沒(méi)有,則查找到達(dá)該ASBR路由,從找到的ASBR路由繼承下一跳。在步驟206中,對(duì)收到的第四類LSA執(zhí)行區(qū)域間四類增量計(jì)算。在步驟207中,根據(jù)區(qū)域間四類增量的計(jì)算結(jié)果,判斷是否影響了本路由器到達(dá) ASBR的路由,如果是,則執(zhí)行步驟208 ;否則,結(jié)束當(dāng)前更新流程。在步驟205和207中,判斷計(jì)算結(jié)果是否影響到了到達(dá)FA的路由或到達(dá)ASBR的路由,主要是判斷在區(qū)域間三類和四類增量計(jì)算前后到達(dá)FA依賴路由或者到達(dá)ASBR的路由是否發(fā)生變化。在步驟208中,對(duì)應(yīng)本路由器上每條外部LSA,重新計(jì)算全部外部路由,結(jié)束當(dāng)前更新流程。在步驟209中,執(zhí)行外部路由增量計(jì)算,即針對(duì)收到的第五類或第七類LSA執(zhí)行外部路由計(jì)算,結(jié)果當(dāng)前更新流程。其中,所述的增量計(jì)算是相對(duì)于全部路由計(jì)算而言的,增量計(jì)算表示僅對(duì)變化LSA 進(jìn)行路由計(jì)算,對(duì)未變化的LSA不執(zhí)行路由計(jì)算;而全部路由計(jì)算是指對(duì)所有相關(guān)的LSA條目進(jìn)行計(jì)算,不論對(duì)應(yīng)的LSA條目是否發(fā)生變化。通過(guò)現(xiàn)有更新OSPF路由流程可知,只要觸發(fā)了全部計(jì)算,以及執(zhí)行區(qū)域間三類增量計(jì)算后影響了到達(dá)FA的路由,以及執(zhí)行區(qū)域間四類增量計(jì)算后影響了到達(dá)ASBR的路由時(shí),都會(huì)觸發(fā)外部路由的全部計(jì)算。由于外部路由的確定僅與所依賴的FA路由以及ASBR 路由相關(guān),因此在上述情況下,一些外部路由所依賴的FA路由以及ASBR路由并沒(méi)有發(fā)生變化,不一定需要觸發(fā)外部路由的全部計(jì)算。在實(shí)際的應(yīng)用中,區(qū)域內(nèi)路由和區(qū)域間路由數(shù)量較少,而外部路由的規(guī)格較大,在數(shù)十萬(wàn),甚至百萬(wàn)級(jí)別。這樣,在進(jìn)行路由更新時(shí),頻繁的對(duì)外部路由進(jìn)行全部計(jì)算,嚴(yán)重影響了 OSPF路由整體收斂速度。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種更新OSPF路由的方法及OSPF路由器, 通過(guò)本發(fā)明提供的方法以及OSPF路由器能夠減少OSPF路由更新時(shí)的計(jì)算量。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種更新OSPF路由的方法,該方法包括保存OSPF路由的各外部關(guān)聯(lián)路由;并記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部鏈路狀態(tài)通告LSA ;在執(zhí)行完OSPF內(nèi)部路由計(jì)算后,根據(jù)所述保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化,如果均未發(fā)生變化,則結(jié)束當(dāng)前更新流程;如果發(fā)生變化,對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的外部LSA計(jì)算對(duì)應(yīng)的 OSPF外部路由。一種OSPF路由器,該OSPF路由器包括處理單元和執(zhí)行單元;所述處理單元,用于保存OSPF路由的各外部關(guān)聯(lián)路由;并記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部鏈路狀態(tài)通告LSA ;所述執(zhí)行單元,用于在執(zhí)行完OSPF內(nèi)部路由計(jì)算后,根據(jù)所述處理單元的保存判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化,如果均未發(fā)生變化,則結(jié)束當(dāng)前更新流程;如果發(fā)生變化,對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述處理單元的記錄找到其對(duì)應(yīng)的外部 LSA,針對(duì)找到的外部LSA計(jì)算對(duì)應(yīng)的OSPF外部路由。本發(fā)明所提供的一種更新OSPF路由的方法及OSPF路由器,通過(guò)在更新OSPF路由時(shí),找到發(fā)生變化的外部關(guān)聯(lián)路由、以及該外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA,使在計(jì)算外部路由時(shí),只需對(duì)受影響的外部路由進(jìn)行計(jì)算,而不需要執(zhí)行外部路由的全部計(jì)算,減少了外部路由計(jì)算的工作量,加快了 OSPF路由整體收斂速度,減少了 OSPF路由更新時(shí)的計(jì)算量。
圖1為OSPF區(qū)域劃分的示意圖;圖2為現(xiàn)有技術(shù)OSPF路由更新流程圖;圖3為本發(fā)明OSPF路由更新示例性流程圖;圖4為本發(fā)明OSPF路由器的結(jié)構(gòu)圖;圖5為本發(fā)明實(shí)施例OSPF路由更新流程圖。
具體實(shí)施例方式在本部分的詳細(xì)描述中,僅通過(guò)對(duì)實(shí)施本發(fā)明的發(fā)明者所預(yù)期的最佳方式的示例,示出并描述了本發(fā)明的較佳實(shí)施例。應(yīng)意識(shí)到,可以在不背離本發(fā)明的前提下,就各個(gè)顯而易見的方面對(duì)其進(jìn)行修改。相應(yīng)地,附圖和說(shuō)明書應(yīng)被視為在本質(zhì)上是示例性的,而不是限制性的。為了實(shí)現(xiàn)本發(fā)明的發(fā)明目的,本發(fā)明提供了一種更新OSPF路由的方法。該方法的示例性流程圖可參見圖3。具體的,在步驟301中,保存OSPF路由的各外部關(guān)聯(lián)路由;并記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部鏈路狀態(tài)通告LSA ;在步驟302中,在執(zhí)行完OSPF內(nèi)部路由計(jì)算后,根據(jù)所述保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化,如果均未發(fā)生變化,則結(jié)束當(dāng)前更新流程;如果發(fā)生變化,執(zhí)行步驟303 ;在步驟303中,對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的外部LSA計(jì)算外部路由。 其中,記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA就是記錄外部關(guān)聯(lián)路由與外部LSA之間的對(duì)應(yīng)關(guān)系。本發(fā)明通過(guò)在外部關(guān)聯(lián)路由發(fā)生變化時(shí),找到發(fā)生變化的外部關(guān)聯(lián)路由、以及該外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA,使得在計(jì)算外部路由時(shí),只需對(duì)找到的外部LSA進(jìn)行外部路由計(jì)算,實(shí)施外部路由的增量計(jì)算。這樣,由于不需要執(zhí)行外部路由的全部計(jì)算,本發(fā)明的技術(shù)方案減少了外部路由計(jì)算的工作量,加快了 OSPF路由整體收斂速度。這里,所述記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA為記錄外部關(guān)聯(lián)路由對(duì)應(yīng)的外部前綴,以及所述外部前綴對(duì)應(yīng)的外部LSA ;相應(yīng)的,所述對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由, 根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA為根據(jù)所述記錄對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由找到其對(duì)應(yīng)的外部前綴,并找到該外部前綴對(duì)應(yīng)的外部LSA。其中,可以通過(guò)二叉樹、紅黑樹等構(gòu)建外部前綴與外部LSA的對(duì)應(yīng)關(guān)系。其中,所述的外部關(guān)聯(lián)路由在不同的情況下,包含不同的內(nèi)容。具體的,在觸發(fā)全部計(jì)算的情況下,所述外部關(guān)聯(lián)路由包括到達(dá)各ASBR路由和各FA依賴路由。OSPF內(nèi)部路由計(jì)算為區(qū)域內(nèi)和區(qū)域間路由計(jì)算,此時(shí)所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化為根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各 ASBR路由以及各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由以及FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。在觸發(fā)區(qū)域間三類增量計(jì)算的情況下,所述外部關(guān)聯(lián)路由包括各FA依賴路由。 OSPF內(nèi)部路由計(jì)算為區(qū)域間三類增量計(jì)算,此時(shí)所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化為根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。在觸發(fā)區(qū)域間四類增量計(jì)算的情況下,所述外部關(guān)聯(lián)路由包括到達(dá)各ASBR路由。 OSPF內(nèi)部路由計(jì)算為區(qū)域間四類增量計(jì)算,此時(shí)所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化為根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各ASBR路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由,根據(jù)所述記錄找到其對(duì)應(yīng)的LSA,針對(duì)找到的LSA計(jì)算外部路由。本發(fā)明還提供了一種OSPF路由器,該OSPF路由器包括處理單元和執(zhí)行單元??蓞⒁妶D4。需要說(shuō)明的是,為了更加清楚、簡(jiǎn)要的描述本發(fā)明的實(shí)現(xiàn)方式,在圖4中省略了 OSPF路由器的原有功能模塊、僅示出了與本發(fā)明相關(guān)的功能模塊。具體的,所述處理單元,用于保存OSPF路由的各外部關(guān)聯(lián)路由;并記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA ;所述執(zhí)行單元,用于在執(zhí)行完OSPF內(nèi)部路由計(jì)算后,根據(jù)所述處理單元的保存判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化,如果均未發(fā)生變化,則結(jié)束當(dāng)前更新流程;如果發(fā)生變化,對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述處理單元的記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的外部LSA計(jì)算對(duì)應(yīng)的OSPF外部路由。其中,所述處理單元,用于在記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA時(shí),記錄外部關(guān)聯(lián)路由對(duì)應(yīng)的外部前綴,以及所述外部前綴對(duì)應(yīng)的外部LSA ;相應(yīng)的,所述執(zhí)行單元,用于對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA時(shí),根據(jù)所述處理單元的記錄對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由找到其對(duì)應(yīng)的外部前綴,并找到該外部前綴對(duì)應(yīng)的外部LSA。所述處理單元保存的外部關(guān)聯(lián)路由包括到達(dá)各ASBR路由和各FA依賴路由;所述執(zhí)行單元,用于在執(zhí)行完區(qū)域內(nèi)和區(qū)域間路由計(jì)算后,根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化時(shí),根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各ASBR路由以及各 FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由以及FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。所述處理單元保存的外部關(guān)聯(lián)路由包括各FA依賴路由;所述執(zhí)行單元,用于在執(zhí)行完區(qū)域間三類增量計(jì)算后,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化時(shí),根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。
所述處理單元保存的外部關(guān)聯(lián)路由包括到達(dá)各ASBR路由;所述執(zhí)行單元,用于在執(zhí)行完區(qū)域間四類增量計(jì)算后,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化時(shí),根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各ASBR路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由,根據(jù)所述記錄找到其對(duì)應(yīng)的LSA,針對(duì)找到的LSA計(jì)算外部路由。為了更加清楚的理解本發(fā)明的技術(shù)方案,現(xiàn)列舉實(shí)施例對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步詳細(xì)介紹。具體參見圖5。OSPF路由器在接收到外部LSA時(shí),記錄ASBR路由器與外部LSA,以及在存在FA時(shí), 記錄FA與外部LSA之間的對(duì)應(yīng)關(guān)系;并在進(jìn)行區(qū)域內(nèi)/區(qū)域間路由計(jì)算時(shí),記錄到達(dá)ASBR 的路由以及到達(dá)FA的依賴路由。由于不同的外部LSA可能會(huì)對(duì)應(yīng)相同的外部前綴,因此在記錄ASBR與外部LSA以及FA與外部LSA之間的對(duì)應(yīng)關(guān)系,可以記錄ASBR或FA與外部LSA中攜帶的外部前綴的對(duì)應(yīng)關(guān)系,再記錄外部前綴與外部LSA之間的關(guān)系。當(dāng)?shù)竭_(dá)ASBR路由或FA依賴路由變化時(shí), 先找到變化的ASBR或FA,然后通過(guò)ASBR或FA關(guān)聯(lián)的外部前綴查找到關(guān)聯(lián)的外部LSA,最終實(shí)現(xiàn)部分LSA計(jì)算。其中,為了提高查找效率,可以通過(guò)樹構(gòu)建外部前綴與外部LSA的關(guān)聯(lián)關(guān)系,樹上的節(jié)點(diǎn)指向一個(gè)或多個(gè)LSA。通過(guò)外部前綴在樹上查找到節(jié)點(diǎn)上記錄的外部 LSA,實(shí)現(xiàn)快速查找。樹的建立是在接收到外部LSA時(shí),提取LSA中的外部前綴,構(gòu)建樹的節(jié)點(diǎn)及與LSA對(duì)應(yīng)關(guān)系。在步驟501中,鏈路狀態(tài)信息發(fā)生變化時(shí),OSPF路由器會(huì)根據(jù)實(shí)際情況觸發(fā)全部路由計(jì)算、區(qū)域間三類增量計(jì)算、區(qū)域間四類增量計(jì)算或者外部增量計(jì)算,同時(shí)保存自身當(dāng)前到達(dá)各ASBR路由以及到達(dá)各FA的依賴路由。OSPF路由器的具體觸發(fā)情況可見步驟201中的介紹,在此不再詳述。同時(shí),為了簡(jiǎn)化描述,將自身當(dāng)前到各ASBR路由簡(jiǎn)稱為ASBR路由,到達(dá)各FA的依賴路由簡(jiǎn)稱為FA依賴路由。在步驟502 503中,在觸發(fā)全部計(jì)算的情況下,執(zhí)行區(qū)域內(nèi)路由計(jì)算以及區(qū)域間路由全部計(jì)算。在步驟504中,根據(jù)當(dāng)前保存的計(jì)算前的ASBR路由和FA依賴路由,判斷計(jì)算前后的各FA依賴路由和ASBR路由是否發(fā)生變化,如果均未發(fā)生變化,結(jié)束當(dāng)前更新流程;如果是,執(zhí)行步驟505。在步驟505中,對(duì)于發(fā)生變化的FA依賴路由和ASBR路由,根據(jù)記錄的ASBR路由和外部LSA的對(duì)應(yīng)關(guān)系,以及FA依賴路由和外部LSA的對(duì)應(yīng)關(guān)系,找到其對(duì)應(yīng)的外部LSA, 執(zhí)行步驟512。在步驟506中,對(duì)收到的第三類LSA執(zhí)行區(qū)域間三類增量計(jì)算。在步驟507中,根據(jù)保存的計(jì)算之間的FA依賴路由,判斷計(jì)算前后各FA依賴路由是否發(fā)生變化,均未發(fā)生變化,結(jié)束當(dāng)前更新流程;如果發(fā)生變化,執(zhí)行步驟508。在步驟508中,對(duì)于發(fā)生變化的FA依賴路由,根據(jù)記錄的FA依賴路由和外部LSA 之間的對(duì)應(yīng)關(guān)系,找到其對(duì)應(yīng)的外部LSA,執(zhí)行步驟512。在步驟509中,對(duì)收到的第四類LSA執(zhí)行區(qū)域間四類增量計(jì)算。在步驟510中,根據(jù)保存的計(jì)算之前的ASBR路由,判斷計(jì)算前后各ASBR路由是否發(fā)生了變化,如果均未發(fā)生,結(jié)束當(dāng)前更新流程;如果發(fā)生變化,執(zhí)行步驟511。在步驟511中,對(duì)于發(fā)生變化的ASBR路由,根據(jù)記錄的ASBR和外部LSA之間的對(duì)應(yīng)關(guān)系,找到其對(duì)應(yīng)的外部LSA,執(zhí)行步驟512。在步驟512中,針對(duì)找到的外部LSA計(jì)算外部路由,實(shí)施外部路由的增量計(jì)算。結(jié)束當(dāng)前更新流程。在步驟513中,執(zhí)行外部路由增量計(jì)算,即針對(duì)收到的第五類或第七類LSA執(zhí)行外部路由計(jì)算,結(jié)果當(dāng)前更新流程。以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種更新OSPF路由的方法,其特征在于,該方法包括保存OSPF路由的各外部關(guān)聯(lián)路由;并記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部鏈路狀態(tài)通告LSA ;在執(zhí)行完OSPF內(nèi)部路由計(jì)算后,根據(jù)所述保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化,如果均未發(fā)生變化,則結(jié)束當(dāng)前更新流程;如果發(fā)生變化,對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的外部LSA計(jì)算對(duì)應(yīng)的OSPF 外部路由。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法包括所述記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA為記錄外部關(guān)聯(lián)路由對(duì)應(yīng)的外部前綴,以及所述外部前綴對(duì)應(yīng)的外部LSA ;所述對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA為根據(jù)所述記錄對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由找到其對(duì)應(yīng)的外部前綴,并找到該外部前綴對(duì)應(yīng)的外部 LSA。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述外部關(guān)聯(lián)路由包括到達(dá)各自治系統(tǒng)邊界路由器ASBR路由和各轉(zhuǎn)發(fā)地址FA依賴路由;所述OSPF內(nèi)部路由計(jì)算為區(qū)域內(nèi)和區(qū)域間路由計(jì)算;相應(yīng)的,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化為根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各 ASBR路由以及各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由以及FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述外部關(guān)聯(lián)路由包括各FA依賴路由;所述OSPF內(nèi)部路由計(jì)算為區(qū)域間三類增量計(jì)算;相應(yīng)的,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化為根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的FA 依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于, 所述外部關(guān)聯(lián)路由包括到達(dá)各ASBR路由;所述OSPF內(nèi)部路由計(jì)算為區(qū)域間四類增量計(jì)算;相應(yīng)的,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化為根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各ASBR 路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR 路由,根據(jù)所述記錄找到其對(duì)應(yīng)的LSA,針對(duì)找到的LSA計(jì)算外部路由。
6.一種OSPF路由器,其特征在于,該OSPF路由器包括處理單元和執(zhí)行單元;所述處理單元,用于保存OSPF路由的各外部關(guān)聯(lián)路由;并記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部鏈路狀態(tài)通告LSA ;所述執(zhí)行單元,用于在執(zhí)行完OSPF內(nèi)部路由計(jì)算后,根據(jù)所述處理單元的保存判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化,如果均未發(fā)生變化,則結(jié)束當(dāng)前更新流程;如果發(fā)生變化,對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述處理單元的記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的外部LSA計(jì)算對(duì)應(yīng)的OSPF外部路由。
7.根據(jù)權(quán)利要求6所述的OSPF路由器,其特征在于,所述處理單元,用于在記錄各外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA時(shí),記錄外部關(guān)聯(lián)路由對(duì)應(yīng)的外部前綴,以及所述外部前綴對(duì)應(yīng)的外部LSA ;所述執(zhí)行單元,用于對(duì)發(fā)生變化的外部關(guān)聯(lián)路由,根據(jù)所述處理單元的記錄對(duì)于發(fā)生變化的外部關(guān)聯(lián)路由找到其對(duì)應(yīng)的外部前綴,并找到該外部前綴對(duì)應(yīng)的外部LSA。
8.根據(jù)權(quán)利要求6所述的OSPF路由器,其特征在于,所述處理單元保存的外部關(guān)聯(lián)路由包括到達(dá)各自治系統(tǒng)邊界路由器ASBR路由和各轉(zhuǎn)發(fā)地址FA依賴路由;所述執(zhí)行單元,用于在觸發(fā)全部計(jì)算的情況下,在執(zhí)行完區(qū)域內(nèi)和區(qū)域間路由計(jì)算后, 根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化時(shí),根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各ASBR路由以及各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由以及FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。
9.根據(jù)權(quán)利要求6所述的OSPF路由器,其特征在于,所述處理單元保存的外部關(guān)聯(lián)路由包括各FA依賴路由;所述執(zhí)行單元,用于在執(zhí)行完區(qū)域間三類增量計(jì)算后,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化時(shí),根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各FA依賴路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的FA依賴路由,根據(jù)所述記錄找到其對(duì)應(yīng)的外部LSA,針對(duì)找到的LSA計(jì)算外部路由。
10.根據(jù)權(quán)利要求6所述的OSPF路由器,其特征在于,所述處理單元保存的外部關(guān)聯(lián)路由包括到達(dá)各ASBR路由;所述執(zhí)行單元,用于在執(zhí)行完區(qū)域間四類增量計(jì)算后,所述根據(jù)保存的內(nèi)容判斷計(jì)算前后各外部關(guān)聯(lián)路由是否發(fā)生變化時(shí),根據(jù)所述保存的內(nèi)容判斷計(jì)算前后到達(dá)各ASBR路由是否發(fā)生變化,如果均沒(méi)有發(fā)生變化,結(jié)束當(dāng)前更新流程;否則,對(duì)于發(fā)生變化的ASBR路由,根據(jù)所述記錄找到其對(duì)應(yīng)的LSA,針對(duì)找到的LSA計(jì)算外部路由。
全文摘要
本發(fā)明公開了一種更新OSPF路由的方法及OSPF路由器,通過(guò)在更新OSPF路由時(shí),找到發(fā)生變化的外部關(guān)聯(lián)路由、以及該外部關(guān)聯(lián)路由對(duì)應(yīng)的外部LSA,使得在計(jì)算OSPF外部路由時(shí),只需對(duì)受影響的OSPF外部路由進(jìn)行計(jì)算,而不需要執(zhí)行OSPF外部路由的全部計(jì)算,減少了外部路由計(jì)算的工作量,加快了OSPF路由整體收斂速度,減少了OSPF路由更新時(shí)的計(jì)算量。
文檔編號(hào)H04L12/56GK102316005SQ20101021870
公開日2012年1月11日 申請(qǐng)日期2010年7月5日 優(yōu)先權(quán)日2010年7月5日
發(fā)明者劉暢, 徐婧, 林長(zhǎng)望, 王克峰, 羅國(guó)兵 申請(qǐng)人:杭州華三通信技術(shù)有限公司