專(zhuān)利名稱(chēng):一種路由滲透方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)通訊領(lǐng)域,尤其涉及一種基于開(kāi)放式最短路徑優(yōu)先協(xié)議 的路由滲透方法。
背景技術(shù):
開(kāi)放式最短路徑優(yōu)先協(xié)議(OSPF)是目前使用范圍最廣泛的一種內(nèi)部 網(wǎng)關(guān)協(xié)議,它是一種基于鏈路狀態(tài)的動(dòng)態(tài)路由協(xié)議,路由器通過(guò)產(chǎn)生和交換 鏈路狀態(tài)公告(LSA)信息來(lái)描述網(wǎng)絡(luò)的拓樸情況,通過(guò)層次化的區(qū)域劃分, 實(shí)現(xiàn)對(duì)超大規(guī)模網(wǎng)絡(luò)的路由計(jì)算和控制。OSPF區(qū)域是對(duì)自治系統(tǒng)(AS )內(nèi)部運(yùn)行OSPF協(xié)議的路由器及其鏈路 的邏輯上的劃分。多臺(tái)路由器可以屬于同一個(gè)區(qū)域,同一個(gè)區(qū)域內(nèi)部路由器 之間相互交換LSA信息并保存在LSA數(shù)據(jù)庫(kù)中,因此區(qū)域內(nèi)部路由器的鏈 路狀態(tài)數(shù)據(jù)庫(kù)是完全一致的。根據(jù)區(qū)域作用的不同,OSPF區(qū)域可以分成骨 干(Backbone)區(qū)域和非骨干(non-Backbone)區(qū)域,其中非骨干區(qū)域又分 成普通區(qū)域,根區(qū)域(stub -area), 充全才艮區(qū)i或(Total stubby area)和非冗 全根區(qū)域(Not-so-stubby area NSSA)。處于兩個(gè)區(qū)域邊界的路由器稱(chēng)為區(qū)域邊界路由器(ABR),此路由器保 存兩個(gè)區(qū)域的鏈路狀態(tài)數(shù)據(jù)庫(kù)。在OSPF中,由于ABR連接了不同的區(qū)域, 因此當(dāng)其計(jì)算出某個(gè)區(qū)域的域內(nèi)(intra-area)路由后,需要產(chǎn)生3型(type 3 ) LSA向其他區(qū)域通告,從而讓其他區(qū)域中的路由器知道如何通過(guò)ABR到達(dá) 區(qū)域外部的網(wǎng)段。當(dāng)ABR連接的某個(gè)區(qū)域中存在自治系統(tǒng)邊界路由器(ASBR)時(shí),ABR 還需要產(chǎn)生4型(type4) LSA向其所連接的其他區(qū)域通告,從而讓其他區(qū) 域中的路由器知道如何到達(dá)ASBR路由器。ASBR其作用是引入非OSPF路 由域產(chǎn)生的路由,這種路由稱(chēng)為外部路由,外部路由通過(guò)5型(type5)LSA在整個(gè)OSPF自治域內(nèi)通告,可見(jiàn),如果要計(jì)算外部路由首先要根據(jù)4型 LSA計(jì)算出到達(dá)ASBR的路由,因此,4型和5型LSA都需要在網(wǎng)絡(luò)中進(jìn) 行洪泛。在很多情況下,OSPF LSA數(shù)據(jù)庫(kù)中大部分都是由外部路由所產(chǎn)生的, 因而這些LSA的通告可能會(huì)占用大量網(wǎng)絡(luò)帶寬并消耗大量的路由器資源。 對(duì)于有些應(yīng)用來(lái)說(shuō),這些外部LSA可能也沒(méi)必要在某些區(qū)域中通告。如圖1的情況,由于無(wú)論通告給Areal的外部LSA是什么,該區(qū)域中 的路由器要想到達(dá)目的網(wǎng)段1 ( destl )都必須經(jīng)過(guò)R3這個(gè)ABR路由器,因 此完全可以通過(guò)ABR路由器通告默認(rèn)路由給區(qū)域1 (Areal)中其他設(shè)備而 無(wú)需通告4型和5型LSA,于是OSPF產(chǎn)生了根區(qū)域(stub-area)的概念, 本文以后統(tǒng)一采用stub區(qū)域描述。stub區(qū)域是指4型和5型LSA不能產(chǎn)生和進(jìn)入的區(qū)域。在stub區(qū)域的區(qū)域內(nèi)的流量要到達(dá)區(qū)域外部的目的網(wǎng)段,則可以通過(guò)默認(rèn)3各由先到達(dá) ABR,而后ABR再將流量轉(zhuǎn)發(fā)到目的網(wǎng)段。這樣就產(chǎn)生了一個(gè)最優(yōu)路徑的選擇問(wèn)題。如圖2所示,區(qū)域1是stub 區(qū)域,其通過(guò)ABR路由器R2, R3和骨干區(qū)域相連,R7為骨干區(qū)域中的一 個(gè)ASBR路由器,所有鏈路上OSPF的cost(代價(jià))值都是一樣的,假設(shè)都為 10。由于區(qū)域1是stub區(qū)域,因此,其邊界路由器R2和R3都會(huì)通告默認(rèn) 路由給S,對(duì)于S來(lái)說(shuō)由于其不知道區(qū)域1外部的網(wǎng)絡(luò)拓樸情況,而在區(qū)域 1內(nèi)部,S到R3的cost要小于S到R2的cost,因此她會(huì)認(rèn)為R3通告的默 認(rèn)路由優(yōu)于R2通告的默認(rèn)路由,這樣從S發(fā)出的到目的網(wǎng)段1 ( dest 1)的 流量會(huì)轉(zhuǎn)發(fā)到R3路由器上,最后由R3路由器經(jīng)過(guò)R4, R5, R6, R7而到 達(dá)目的網(wǎng)段l。顯然,這條路徑并非最優(yōu)路徑。出現(xiàn)這種現(xiàn)象的原因就是, stub區(qū)域內(nèi)部的路由器不知道區(qū)域外網(wǎng)絡(luò)拓樸情況,因此某條路徑可能在 stub區(qū)域內(nèi)部是最優(yōu)的,但整條路徑卻是非最優(yōu)路徑。對(duì)于上面所描述的這種情況,目前采用OSPF協(xié)議的現(xiàn)有技術(shù)是無(wú)法解 決的。發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問(wèn)題是提供一種路由滲透方法,解決現(xiàn)有路由選擇 技術(shù)中,可能僅僅選擇區(qū)域內(nèi)部最優(yōu)路徑,而整條路徑卻非最優(yōu)路徑的問(wèn)題。為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種路由滲透方法,包括如下步驟區(qū)域邊界路由器計(jì)算外部路由,根據(jù)該外部路由生成鏈路狀態(tài)公告,該 鏈路狀態(tài)公告能進(jìn)入?yún)^(qū)域內(nèi)部路由器;區(qū)域內(nèi)部路由器計(jì)算出到達(dá)區(qū)域邊界路由器的區(qū)域內(nèi)部路由,并根據(jù)接 收到的所述鏈路狀態(tài)公告中的外部路由計(jì)算出到達(dá)區(qū)域外部目的網(wǎng)段的路 由。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述區(qū)域邊界路由器計(jì)算外部 路由主要包含(al)所述區(qū)域邊界路由器從自治系統(tǒng)邊界路由器接收5型鏈路狀態(tài)公 告,檢查該5型鏈路狀態(tài)公告的有效性,如果所述5型鏈路狀態(tài)公告有效, 執(zhí)行步驟(a2 );(a2)判斷該5型鏈路狀態(tài)公告中是否填寫(xiě)了轉(zhuǎn)發(fā)地址,如果填寫(xiě)了轉(zhuǎn) 發(fā)地址,根據(jù)轉(zhuǎn)發(fā)地址確定下一跳,否則,根據(jù)所述區(qū)域邊界i 各由器到達(dá)所 述自治系統(tǒng)邊界路由器的路由確定下一跳;(a3 )確定區(qū)域邊界路由器到達(dá)下一跳的距離,根據(jù)5型鏈路狀態(tài)公告 中攜帶的路由距離、類(lèi)型及區(qū)域邊界路由器到達(dá)下一跳的距離計(jì)算外部路 由。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述區(qū)域邊界路由器檢查有效 性包括檢查所述5型鏈路狀態(tài)公告攜帶的距離metric值不是路由不可達(dá) LSInfinity,生存周期age值不是最大生存周期MaxAge,且該5型鏈路狀態(tài) 公告不是所述區(qū)域邊界路由器自己所產(chǎn)生的,且通告該5型鏈路狀態(tài)公告的 自治系統(tǒng)邊界路由器可達(dá),滿足上述所有條件的5型鏈路狀態(tài)公告有效。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述步驟(a2)中,如果填寫(xiě) 了轉(zhuǎn)發(fā)地址,進(jìn)一步判斷轉(zhuǎn)發(fā)地址是否為0.0.0.0,如果不是,根據(jù)轉(zhuǎn)發(fā)地址 確定下一跳,否則,根據(jù)所述區(qū)域邊界路由器到達(dá)所述自治系統(tǒng)邊界路由器 的路由確定下一跳。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述步驟(a3)中還包括所述區(qū)域邊界路由器遍歷路由表,判斷路由表中是否存在到達(dá)所述自治 系統(tǒng)邊界路由器的5型鏈路狀態(tài)公告通告的目的網(wǎng)段N的路由,如果不存在到達(dá)目的網(wǎng)段N的路由,在路由表中新增到達(dá)目的網(wǎng)段N 的^各由;如果存在到達(dá)目的網(wǎng)段N的路由,則比較路由表中的路由和當(dāng)前計(jì)算如果路由表中的路由更優(yōu),不計(jì)算該外部路由; 如果當(dāng)前計(jì)算的路由更優(yōu),用當(dāng)前計(jì)算的路由替換路由表中的路由; 如果二者優(yōu)先級(jí)一樣,將當(dāng)前計(jì)算的路由的下一跳和路由表中的路由的 下一跳進(jìn)行合并。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述區(qū)域邊界路由器根據(jù)計(jì)算 出的外部路由生成鏈路狀態(tài)公告主要包括如下步驟檢查是否設(shè)置了路由滲透策略;如果沒(méi)有設(shè)置路由滲透策略,為所有計(jì)算出的外部路由生成鏈路狀態(tài)公 告,所述區(qū)域邊界路由器生成的鏈路狀態(tài)公告中攜帶的距離值為所述外部路 由的距離值;如果設(shè)置了路由滲透策略,將計(jì)算出的外部路由和所述路由滲透策略進(jìn) 行匹配,為匹配上的外部路由生成鏈路狀態(tài)公告,所述區(qū)域邊界路由器生成 的鏈路狀態(tài)公告中攜帶的距離值為所述外部路由的距離值。進(jìn)一步地,上述方法還可具有以下特點(diǎn),如果設(shè)置了路由滲透策略,且 路由滲透策略中指定了距離值,則所生成的鏈路狀態(tài)公告中攜帶的距離值為 指定的路由值。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述路由滲透策略采用下述任一種或多種方式實(shí)現(xiàn)路由映射、分布控制列表、前綴列表或訪問(wèn)控制列表。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述區(qū)域內(nèi)部路由器計(jì)算出到 達(dá)區(qū)域邊界路由器的區(qū)域內(nèi)部路由的距離值,并根據(jù)接收到的所述鏈路狀態(tài) 公告中攜帶的距離值,得到所述區(qū)域內(nèi)部路由器到達(dá)目的網(wǎng)段的距離值為區(qū) 域內(nèi)部路由的距離值和所述鏈路狀態(tài)公告中攜帶的距離值之和,如果存在多 條路由到達(dá)所述目的網(wǎng)段,則計(jì)算出該多條路由的距離值,距離值最小的路 由為達(dá)到目的網(wǎng)段的最佳路由。進(jìn)一步地,上述方法還可具有以下特點(diǎn),所述區(qū)域?yàn)楦鶇^(qū)域stub area, 所述區(qū)域邊界路由器根據(jù)計(jì)算出的外部路由生成3型鏈路狀態(tài)公告并通告 給所述根區(qū)域內(nèi)的路由器。本發(fā)明提出的OSPF路由滲透技術(shù)不僅符合現(xiàn)有OSPF路由協(xié)議的規(guī)范 要求,而且對(duì)OSPF路由協(xié)議做了一定的擴(kuò)展,使其能更好的應(yīng)用于現(xiàn)有IP 網(wǎng)絡(luò);通過(guò)該技術(shù)有選擇性的將區(qū)域外部的路由滲透到區(qū)域內(nèi),從而使得區(qū) 域內(nèi)路由器知道外部的網(wǎng)絡(luò)拓樸情況,進(jìn)而選擇最佳的ABR到達(dá)目的網(wǎng)段。
圖1現(xiàn)有技術(shù)中無(wú)需4型和5型LSA的網(wǎng)絡(luò)拓樸圖;圖2現(xiàn)有技術(shù)中連接多個(gè)ABR的stub區(qū)域網(wǎng)絡(luò)拓樸圖;圖3是本發(fā)明OSPF路由滲透處理流程圖;圖4是本發(fā)明根據(jù)5型LSA通告計(jì)算外部路由的流程圖;圖5是本發(fā)明根據(jù)外部路由產(chǎn)生3型LSA通告的流程圖;圖6是本發(fā)明區(qū)域內(nèi)部路由器計(jì)算到達(dá)邊界路由器的最佳路由;圖7是本發(fā)明區(qū)域內(nèi)部路由器計(jì)算到達(dá)外部網(wǎng)段的最佳路由;圖8是本發(fā)明實(shí)施例的OSPF路由滲透原理圖。
具體實(shí)施方式
本發(fā)明提供了一種路由滲透方法,能夠克服現(xiàn)有技術(shù)的不足,實(shí)現(xiàn)最短 3各由的選擇。這種路由滲透技術(shù)采用的方法是,當(dāng)stub區(qū)域的ABR路由器收到5型 LSA并且計(jì)算出外部路由后,將為此路由產(chǎn)生3型LSA,其中攜帶metric (距離)為從ABR到目的網(wǎng)段的metric,并將此3型LSA通告給stub區(qū)域 內(nèi)部,使得stub區(qū)域內(nèi)部的路由器能夠知道整條路徑的metric信息,從而選擇最優(yōu)路徑。本發(fā)明采用以下技術(shù)方案本發(fā)明的關(guān)鍵機(jī)制是當(dāng)stub區(qū)域的邊界路由器收到5型LSA,并根 據(jù)這些5型LSA計(jì)算出外部路由后,根據(jù)配置的路由過(guò)濾策略,有選擇性 的為計(jì)算出來(lái)的外部路由產(chǎn)生3型LSA,并將這些3型LSA通告到stub區(qū) 域內(nèi)部,這些3型LSA中攜帶的metric (距離)為ABR計(jì)算出來(lái)的stub區(qū) 域外部到目的網(wǎng)段的metric,這種方法涉及到5型LSA轉(zhuǎn)換為3型LSA, 把外部路由有選擇性的滲透到stub區(qū)域中,從而使得stub區(qū)域內(nèi)部的流量 能夠根據(jù)整條路徑的metric找到最優(yōu)的ABR到達(dá)目的網(wǎng)段,同時(shí)本發(fā)明并 不局限于stub區(qū)域這種情況,也可用應(yīng)用到其他區(qū)域中,將外部路由的鏈 路狀態(tài)公告轉(zhuǎn)換為可以進(jìn)入?yún)^(qū)域的通告類(lèi)型,發(fā)送給區(qū)域內(nèi)部的路由器,從 而使得區(qū)域內(nèi)部路由器可以獲得外部路由情況,進(jìn)行最佳路由選擇。如圖3所示,本發(fā)明包括以下步驟10, stub區(qū)域的ABR路由器根據(jù)ASBR通告的5型LSA計(jì)算出外部路由;20, stub區(qū)域的ABR路由器為計(jì)算出的外部路由生成3型LSA, ABR 路由器將生成的3型LSA通告給stub區(qū)域內(nèi)部路由器;30,stub區(qū)域內(nèi)部路由器根據(jù)區(qū)域內(nèi)部的1型和2型LSA計(jì)算出到ABR 的區(qū)域內(nèi)部^各由;40, stub區(qū)域內(nèi)部路由器根據(jù)接收到的3型LSA,結(jié)合所計(jì)算出來(lái)的到 ABR的區(qū)域內(nèi)部路由,最終計(jì)算出被滲透進(jìn)來(lái)的到區(qū)域外部目的網(wǎng)段的路 由。如圖4所示,其中步驟IO具體包含如下步驟步驟101: ABR路由器對(duì)5型LSA進(jìn)行有效性檢查,滿足如下條件的5 型LSA認(rèn)為是有效的5型LSA中的距離(metric)值不是路由不可達(dá)(LSInfmity) , LSInfinity 表示該LSA描述的目的網(wǎng)段不可達(dá),生存周期(age)值不是最大生存周期 (MaxAge) , MaxAge表示該LSA當(dāng)前無(wú)效,并且該5型LSA不是該ABR 路由器自己產(chǎn)生的,并且通告該5型LSA的ASBR必須可達(dá);如果LSA有 效,執(zhí)行步驟102,如果LSA無(wú)效,流程結(jié)束。步驟102:判斷5型LSA是否填寫(xiě)了轉(zhuǎn)發(fā)地址,如果填寫(xiě)了轉(zhuǎn)發(fā)地址, 轉(zhuǎn)到步驟103;如果沒(méi)有填寫(xiě)轉(zhuǎn)發(fā)地址,轉(zhuǎn)到步驟104;步驟103:判斷轉(zhuǎn)發(fā)地址是否是0.0.0.0,如果是,執(zhí)行步驟104,否貝'J, 執(zhí)行步驟107;步驟104:遍歷路由表,尋找到達(dá)產(chǎn)生該5型LSA的ASBR的最優(yōu)的 路由,如果沒(méi)有找到該路由,則不進(jìn)行外部路由計(jì)算,流程結(jié)束,如果找到 了該路由,轉(zhuǎn)到步驟105;步驟105,將該5型LSA所對(duì)應(yīng)路由的下一跳設(shè)置為到ASBR的下一跳;步驟106,記錄到ABR路由器到達(dá)ASBR的metric為X,轉(zhuǎn)到步驟110;步驟107:遍歷路由表,尋找到達(dá)該轉(zhuǎn)發(fā)地址的最優(yōu)路由,如果沒(méi)有找 到該路由,則不進(jìn)行外部路由計(jì)算,流程結(jié)束,否則,執(zhí)行步驟108;步驟108,將該5型LSA所對(duì)應(yīng)的路由的下一跳設(shè)置為到轉(zhuǎn)發(fā)地址的下 一跳;步驟109,記錄ABR路由器到轉(zhuǎn)發(fā)地址的metric為X,轉(zhuǎn)到步驟110;步驟110,區(qū)域邊界路由器遍歷路由表,尋找該5型LSA通告的目的網(wǎng) 段N是否曾經(jīng)計(jì)算出來(lái),即判斷路由表中是否存在到達(dá)目的網(wǎng)段N的路由, 如果不存在,執(zhí)行步驟lll,如果存在,執(zhí)行步驟112;步驟lll:新增加到達(dá)目的網(wǎng)段N的路由,并且該路由的下一跳為步驟 105或步驟108中計(jì)算出的到ASBR或者轉(zhuǎn)發(fā)地址的下一跳,并根據(jù)LSA 中攜帶的metric類(lèi)型設(shè)置相應(yīng)metric,其mertic為到ASBR或轉(zhuǎn)發(fā)地址的 metric,即為X,執(zhí)行步驟20;其中,根據(jù)RFC2328的規(guī)定,對(duì)于外部路由,也就是通過(guò)5型LSA通 告的路由,其LSA中只記錄了 ASBR到目的網(wǎng)段的metric值即Y值,區(qū)域 邊界路由器還可能需要知道其本身到達(dá)ASBR的metric值即X值,RFC2328 規(guī)定,如果path-type設(shè)置為1 ,則計(jì)算路由器到目的網(wǎng)段的metric為X+Y, 如果path-type設(shè)置為2,則計(jì)算^各由器到目的網(wǎng)段的metric為Y。步驟112:比較路由表中的路由和正在計(jì)算的5型LSA通告的路由的優(yōu) 先級(jí)如果路由表中的更優(yōu),不計(jì)算該LSA;如果是正在計(jì)算的路由更優(yōu),用 新增計(jì)算的路由替換原有路由表中的路由;如果路由表中的路由和正在計(jì)算的路由優(yōu)先級(jí)一樣,則將新增路由的下一跳和原有路由的下一跳進(jìn)行合并, 具體合并方式為認(rèn)為新增路由有兩個(gè)下一跳,分別是路由表中該路由已經(jīng)存 在的下一跳和新增加的一個(gè)下一跳,其中,根據(jù)RFC2328 16.4節(jié)的規(guī)則比 較路由的優(yōu)先級(jí),執(zhí)行步驟20;如圖5所示,步驟20進(jìn)一步包括如下步驟步驟201:當(dāng)stub區(qū)域的ABR路由器計(jì)算出外部路由后,查看是否設(shè) 置了路由滲透策略,如果沒(méi)有,執(zhí)行步驟202;否則,執(zhí)行步驟203;路由滲透策略可以采用route-map (路由映射),distribute-list (發(fā)布控 制列表),prefix-list (前綴列表)或者ACL (訪問(wèn)控制列表)的方式;路由 滲透策略可以包括對(duì)前綴/掩碼的匹配,對(duì)下一跳的匹配,對(duì)出接口的匹配; 路由滲透策略不僅可以用于對(duì)路由有選擇的進(jìn)行滲透,還可用于對(duì)滲透路由 metric值的設(shè)置。步驟202:如果沒(méi)有設(shè)置路由滲透策略,為計(jì)算出來(lái)的所有外部路由產(chǎn) 生3型LSA,其中這些3型LSA中攜帶的metric為計(jì)算出來(lái)的外部路由的metric,轉(zhuǎn)到步驟208;步驟203:如果配置了路由滲透策略,則將計(jì)算出來(lái)的外部路由和路由 滲透策略進(jìn)行匹配,如果匹配不上則不產(chǎn)生3型LSA,如果匹配上,執(zhí)行步 驟204;步驟204:為匹配上的外部路由產(chǎn)生3型LSA,執(zhí)行步驟205;步驟205:判斷路由滲透策略中是否指定了生成3型LSA的metric值, 如果路由滲透策略中指定了生成3型LSA的metric值,執(zhí)行步驟207,如果 路由滲透策略中沒(méi)有指定,執(zhí)行步驟206;步驟206:生成的3型LSA的metric為ABR計(jì)算出的外部^^由的metric, 執(zhí)行步驟208;步驟207:生成的3型LSA中的metric為路由滲透策略中的指定值,執(zhí) 行步驟208;步驟208:所生成的3型LSA由stub區(qū)域的ABR洪泛進(jìn)入stub區(qū)域內(nèi) 部路由器。如圖6所示,步驟30進(jìn)一步包括如下步驟 區(qū)域內(nèi)部路由計(jì)算方法是RFC2328目前已經(jīng)規(guī)定的。301) stub區(qū)域內(nèi)部路由器根據(jù)區(qū)域內(nèi)部的1型和2型LSA描述的拓樸 信息,使用dijkstra算法構(gòu)建最短路徑樹(shù);302) 在構(gòu)建最短路徑樹(shù)的同時(shí),把路由器鏈接的stub link描述的路由 放入stub link的鏈表,把路由器路由放入路由器路由表,把廣播網(wǎng)路由放入 路由表;303 )構(gòu)建完成最短路徑樹(shù)后,從stub link的鏈表中每個(gè)節(jié)點(diǎn)加入到路 由表。其中所述301包括dll)每個(gè)路由器以自己的Router-LSA (路由器LSA)為根節(jié)點(diǎn),構(gòu)建最短路徑樹(shù);d12)首先假設(shè)V為最新加入到最短路徑樹(shù)的節(jié)點(diǎn),遍歷節(jié)點(diǎn)V (Router-LSA)的每個(gè)link(鏈路)節(jié)點(diǎn)W,在第 一步中只考慮transit vertex, 即Router LSA和transit LSA,如果遍歷到的link類(lèi)型為stub network (根區(qū) 域網(wǎng)絡(luò)),暫時(shí)不考慮,遍歷下一個(gè)link;d13)尋找節(jié)點(diǎn)W對(duì)應(yīng)的LSA,如果W對(duì)應(yīng)的LSA沒(méi)有、age已經(jīng)達(dá) 到MaxAge或者W沒(méi)有一個(gè)link回指向V節(jié)點(diǎn),遍歷下一個(gè)link;d14)如果W已經(jīng)在最短路徑樹(shù)中了,遍歷下一個(gè)link;dl5)計(jì)算節(jié)點(diǎn)W到根節(jié)點(diǎn)的距離D,這個(gè)距離值為節(jié)點(diǎn)V到根節(jié)點(diǎn)的 距離加上節(jié)點(diǎn)V到W的link通告的距離值;d16)如果D沒(méi)有在候選列表中,將D加入候選列表中;如果D比節(jié)點(diǎn) W上已經(jīng)存在的距離大,遍歷下一個(gè)link;如果比節(jié)點(diǎn)W上已經(jīng)存在的距 離小,則W的到達(dá)^L節(jié)點(diǎn)的距離更新為D,同時(shí)更新相應(yīng)的下一跳信息; 如果相比距離一樣,則將當(dāng)前計(jì)算到達(dá)W節(jié)點(diǎn)對(duì)應(yīng)的下一跳與原有的W上 已經(jīng)計(jì)算出來(lái)的下一跳進(jìn)行合并;d17)將候選列表中具有最短距離的節(jié)點(diǎn),添加到最短路徑樹(shù)中。 其中所述步驟302包括d21)再次遍歷步驟301中的計(jì)算出來(lái)的最短路徑樹(shù)節(jié)點(diǎn)V,如果該節(jié) 點(diǎn)在步驟301中計(jì)算可達(dá),那么遍歷該節(jié)點(diǎn)的所有的stub link;d22 )計(jì)算到達(dá)該stub link所通告的網(wǎng)段的距離D, D為V到根節(jié)點(diǎn)的 距離加上stub link所通告的link距離值;d23)在路由表中查找到達(dá)該stub link通告的網(wǎng)段的路由,并比較原有 路由與新計(jì)算的路由,如果原有的更優(yōu),遍歷節(jié)點(diǎn)V下一個(gè)stub link;如果 新的更優(yōu),用新計(jì)算的路由替換原有的路由;如果相比一樣優(yōu),將兩條路由 的下一跳合并。如圖7所示,步驟40進(jìn)一步包括如下步驟步驟401: stub區(qū)域內(nèi)部路由器即計(jì)算路由器檢查通告的3型LSA有效 性,如果有效,執(zhí)行步驟402,否則,流程結(jié)束;其中包括LSA中通告的metric不是LSInfinity, age不是MaxAge,并且 該LSA不是該區(qū)域內(nèi)部路由器自己所產(chǎn)生;步驟402:如果該LSA中攜帶的通告路由器(即通告該LSA的邊界路 由器)已存在于路由器路由表中,并且設(shè)置了 ABR標(biāo)記,則該LSA可以進(jìn) 行路由計(jì)算,假設(shè)該區(qū)域內(nèi)部路由器到達(dá)ABR路由器的metric為XI;步驟403:假設(shè)該3型LSA中攜帶的metric為Yl,則根據(jù)該LSA計(jì)算 出的區(qū)域內(nèi)部路由器到達(dá)目的網(wǎng)^:N的路由的metric為Xl+Yl,下一跳繼 承到ABR的路由的下一跳;步驟404:如果存在多條LSA通告相同路由,計(jì)算該多條路由的metric 值,選擇metric最小的LSA計(jì)算出路由,或根據(jù)計(jì)算出的路由metric按事 先指定策略進(jìn)行路由選擇。在上述stub區(qū)域的實(shí)施例中,ABR也可以將5型LSA轉(zhuǎn)換為其他類(lèi)型 LSA(上述實(shí)施例是轉(zhuǎn)為3型LSA),只要滿足轉(zhuǎn)換后的LSA可以進(jìn)入到該 stub區(qū)域中,轉(zhuǎn)換后再將LSA通告到stub區(qū)域中。本發(fā)明所提出的OSPF路由滲透技術(shù)并不局限于OSPF stub區(qū)域中,凡 是涉及到上文中所描述的應(yīng)用場(chǎng)景都可以采用本發(fā)明所描述的方法。比如對(duì) 于完全4艮區(qū)域(Total Stubby Area)也可以應(yīng)用,為了減少在區(qū)域中通告的 LSA數(shù)量,完全根區(qū)域不僅不允許4型和5型的LSA進(jìn)入該區(qū)域,也不允 許3型LSA進(jìn)入或者在該區(qū)域中產(chǎn)生,因此同樣存在上文中所描述的現(xiàn)象, 對(duì)于這種情況,可以在完全根區(qū)域的ABR路由器上將3型或者5型LSA轉(zhuǎn) 換成P標(biāo)志設(shè)置為0的7型LSA (或者其他新定義的LSA)通告到完全根 區(qū)域中。下面結(jié)合一具體應(yīng)用實(shí)例對(duì)本發(fā)明的處理方法進(jìn)行說(shuō)明。圖8是本發(fā)明的OSPF路由滲透原理圖,在圖8中,在骨干區(qū)域內(nèi),目的網(wǎng)段destl通過(guò)5型LSA通告給ABR路由器R2和R3, R2和R3分別能 夠計(jì)算出到此destl的路由,其metric分別是10和40;采用路由滲透方法,R2和R3都將為這個(gè)目的網(wǎng)段產(chǎn)生3型LSA,其中 R2產(chǎn)生的3型LSA攜帶的metric為10, R3產(chǎn)生的3型LSA攜帶的metric 為40;當(dāng)S接收到這兩條LSA后,就知道如果通過(guò)R2到達(dá)destl,其總的metric 為10加上20,而通過(guò)R3到達(dá)destl,其總的metric為40加上10,因此S 就知道通過(guò)R2到達(dá)destl優(yōu)先于通過(guò)R3到達(dá)destl。本發(fā)明提出的OSPF路由滲透技術(shù)不僅符合現(xiàn)有OSPF路由協(xié)議的規(guī)范 要求,而且對(duì)OSPF路由協(xié)議做了一定的擴(kuò)展,使其能更好的應(yīng)用于現(xiàn)有IP 網(wǎng)絡(luò);本發(fā)明提供了一種路由滲透的技術(shù),通過(guò)該技術(shù)有選擇性的將區(qū)域外 部的路由滲透到區(qū)域內(nèi),從而使得區(qū)域內(nèi)路由器知道外部的網(wǎng)絡(luò)拓樸情況, 進(jìn)而選擇最佳的ABR到達(dá)目的網(wǎng)段。
權(quán)利要求
1、一種路由滲透方法,其特征在于,包括如下步驟區(qū)域邊界路由器計(jì)算外部路由,根據(jù)該外部路由生成鏈路狀態(tài)公告,該鏈路狀態(tài)公告能進(jìn)入?yún)^(qū)域內(nèi)部路由器;區(qū)域邊界路由器將生成的鏈路狀態(tài)公告通告給區(qū)域內(nèi)部路由器;區(qū)域內(nèi)部路由器計(jì)算出到達(dá)區(qū)域邊界路由器的區(qū)域內(nèi)部路由,并根據(jù)接收到的所述鏈路狀態(tài)公告中的外部路由計(jì)算出到達(dá)區(qū)域外部目的網(wǎng)段的路由。
2、 如權(quán)利要求l所述的方法,其特征在于,所述區(qū)域邊界路由器計(jì)算 外部路由主要包含(al)所述區(qū)域邊界路由器從自治系統(tǒng)邊界路由器接收5型鏈路狀態(tài)公 告,檢查該5型鏈路狀態(tài)公告的有效性,如果所述5型鏈路狀態(tài)公告有效, 執(zhí)行步驟(a2);(a2 )判斷該5型鏈路狀態(tài)公告中是否填寫(xiě)了轉(zhuǎn)發(fā)地址,如果填寫(xiě)了轉(zhuǎn) 發(fā)地址,根據(jù)轉(zhuǎn)發(fā)地址確定下一跳,否則,根據(jù)所述區(qū)域邊界路由器到達(dá)所 述自治系統(tǒng)邊界路由器的路由確定下一跳;(a3 )確定區(qū)域邊界路由器到達(dá)下一跳的距離,根據(jù)5型鏈路狀態(tài)公告 中攜帶的路由距離、類(lèi)型及區(qū)域邊界路由器到達(dá)下一跳的距離計(jì)算外部路 由。
3、 如權(quán)利要求2所述的方法,其特征在于,所述區(qū)域邊界路由器檢查 有效性包括檢查所述5型鏈路狀態(tài)公告攜帶的距離metric值不是路由不可 達(dá)LSInfinity,生存周期age值不是最大生存周期MaxAge,且該5型鏈路狀 態(tài)公告不是所述區(qū)域邊界路由器自己所產(chǎn)生的,且通告該5型鏈路狀態(tài)公告 的自治系統(tǒng)邊界路由器可達(dá),滿足上述所有條件的5型鏈路狀態(tài)公告有效。
4、 如權(quán)利要求2所述的方法,其特征在于,所述步驟(a2)中,如果 填寫(xiě)了轉(zhuǎn)發(fā)地址,進(jìn)一步判斷轉(zhuǎn)發(fā)地址是否為0.0.0.0,如果不是,根據(jù)轉(zhuǎn)發(fā) 地址確定下一跳,否則,根據(jù)所述區(qū)域邊界路由器到達(dá)所述自治系統(tǒng)邊界路 由器的路由確定下一跳。
5、 如權(quán)利要求2所述的方法,其特征在于,所述步驟(a3)中還包括所述區(qū)域邊界路由器遍歷路由表,判斷路由表中是否存在到達(dá)所述自治 系統(tǒng)邊界路由器的5型鏈路狀態(tài)公告通告的目的網(wǎng)段N的路由;如果不存在到達(dá)目的網(wǎng)段N的路由,在路由表中新增到達(dá)目的網(wǎng)段N 的^各由;如果存在到達(dá)目的網(wǎng)段N的路由,則比較路由表中的路由和當(dāng)前計(jì)算如果路由表中的路由更優(yōu),不計(jì)算該外部路由; 如果當(dāng)前計(jì)算的路由更優(yōu),用當(dāng)前計(jì)算的路由替換路由表中的路由; 如果二者優(yōu)先級(jí)一樣,將當(dāng)前計(jì)算的路由的下 一跳和路由表中的路由的 下一跳進(jìn)行合并。
6、 如權(quán)利要求l所述的方法,其特征在于,所述區(qū)域邊界路由器根據(jù) 計(jì)算出的外部路由生成鏈路狀態(tài)公告主要包括如下步驟檢查是否設(shè)置了路由滲透策略;如果沒(méi)有設(shè)置路由滲透策略,為所有計(jì)算出的外部路由生成鏈路狀態(tài)公 告,所述區(qū)域邊界路由器生成的鏈路狀態(tài)公告中攜帶的距離值為所述外部路 由的距離值;如果設(shè)置了路由滲透策略,將計(jì)算出的外部路由和所述路由滲透策略進(jìn) 行匹配,為匹配上的外部路由生成鏈路狀態(tài)公告,所迷區(qū)域邊界路由器生成 的鏈路狀態(tài)公告中攜帶的距離值為所述外部路由的距離值。
7、 如權(quán)利要求6所述的方法,其特征在于,如果設(shè)置了路由滲透策略, 且路由滲透策略中指定了距離值,則所生成的鏈路狀態(tài)公告中攜帶的距離值 為指定的路由值。
8、 如權(quán)利要求6所述的方法,其特征在于,所述路由滲透策略采用下 述任一種或多種方式實(shí)現(xiàn)路由映射、分布控制列表、前綴列表或訪問(wèn)控制 列表。
9、 如權(quán)利要求l所述的方法,其特征在于,所述區(qū)域內(nèi)部路由器計(jì)算出到達(dá)區(qū)域邊界路由器的區(qū)域內(nèi)部路由的距離值,并根據(jù)接收到的所述鏈路 狀態(tài)公告中攜帶的距離值,得到所述區(qū)域內(nèi)部路由器到達(dá)目的網(wǎng)段的距離值 為區(qū)域內(nèi)部路由的距離值和所述鏈路狀態(tài)公告中攜帶的距離值之和,如果存 在多條路由到達(dá)所述目的網(wǎng)段,則計(jì)算出該多條路由的距離值,距離值最小 的路由為達(dá)到目的網(wǎng)段的最佳路由。
10、如權(quán)利要求1至9任一所述的方法,其特征在于,所述區(qū)域?yàn)楦鶇^(qū) 域stub area,所述區(qū)域邊界路由器根據(jù)計(jì)算出的外部路由生成3型鏈路狀態(tài) 公告并通告給所述根區(qū)域內(nèi)的路由器。
全文摘要
本發(fā)明提供了一種路由滲透方法,包括如下步驟區(qū)域邊界路由器計(jì)算外部路由,根據(jù)該外部路由生成鏈路狀態(tài)公告,該鏈路狀態(tài)公告能進(jìn)入?yún)^(qū)域內(nèi)部路由器;區(qū)域邊界路由器將生成的鏈路狀態(tài)公告通告給區(qū)域內(nèi)部路由器;區(qū)域內(nèi)部路由器計(jì)算出到達(dá)區(qū)域邊界路由器的區(qū)域內(nèi)部路由,并根據(jù)接收到的所述鏈路狀態(tài)公告中的外部路由計(jì)算出到達(dá)區(qū)域外部目的網(wǎng)段的路由。本發(fā)明提出的路由滲透方法有選擇性的將區(qū)域外部的路由滲透到區(qū)域內(nèi),從而使得區(qū)域內(nèi)路由器知道外部的網(wǎng)絡(luò)拓?fù)淝闆r,進(jìn)而選擇最佳路由。
文檔編號(hào)H04L12/56GK101227403SQ20081000797
公開(kāi)日2008年7月23日 申請(qǐng)日期2008年2月21日 優(yōu)先權(quán)日2008年2月21日
發(fā)明者沈曉峰, 王會(huì)來(lái), 昊 金 申請(qǐng)人:中興通訊股份有限公司