專利名稱:在自治系統(tǒng)中構造和實現(xiàn)備用路徑的制作方法
技術領域:
本發(fā)明一般地涉及在自治系統(tǒng)中構造和實現(xiàn)備用路徑,并且涉及管理 自治系統(tǒng)中數(shù)據(jù)的轉發(fā)。
背景技術:
這一部分中描述的方法可以實行,但是并不一定是先前已想到或已實 行的方法。因此,除非這里另有指明,否則這一部分中描述的方法并不是 本申請中權利要求的現(xiàn)有技術,也不因為被包括在這一部分中就被承認是 現(xiàn)有技術。在諸如因特網(wǎng)之類的計算機網(wǎng)絡中,數(shù)據(jù)的分組根據(jù)各種路由協(xié)議之 一,經(jīng)由包括鏈路(諸如電話線或光線路之類的通信路徑)和節(jié)點(例如 沿著與其相連的多條鏈路中的一條或多條來引導分組的路由器)在內(nèi)的元件的網(wǎng)絡被從源發(fā)送到目的地。在例如互聯(lián)網(wǎng)中使用的一種路由協(xié)議是邊界網(wǎng)關協(xié)議(BGP) 。 BGP 被用于在包括受制于共同的管理員并共享共同的路由策略的網(wǎng)絡的自治系 統(tǒng)(AS)之間路由數(shù)據(jù)。BGP路由器例如利用允許自治系統(tǒng)間路由的傳 輸控制協(xié)議(TCP)在連接會話期間交換完全的路由信息。所交換的信息 包括各種屬性,其中包括下一跳屬性。例如,在BGP路由器例如以IP地 址前綴的形式向網(wǎng)絡通告連接的情況下,下一跳屬性包括用于到達BGP路 由器的IP地址。第一 AS中的邊緣或邊界BGP路由器經(jīng)由外部BGP (eBGP)與第二 AS中的eBGP對等體通信。此外,AS內(nèi)的BGP路由器利用內(nèi)部BGP (iBGP)來交換可達性信息。由于以這種方式可通告非常大量的路由,因 此通常設置一種包括路由反射器(route reflector)的額外網(wǎng)絡組件,其與 每個BGP路由器建立會話,并且向每個其他BGP路由器分發(fā)可達性信息。各個AS中的邊界路由器可利用eBGP向彼此通告從它們可達的前綴 (網(wǎng)絡目的地),這些通告攜帶著諸如AS路徑和BGP團體屬性之類的信 息,其中AS路徑指示出路由通告已經(jīng)經(jīng)過的AS,其中包括通告方邊界路 由器自身所處的AS, BGP團體屬性指示出通告將被傳播的方式。例如, 如果接收到具有團體屬性No-Advertise的eBGP通告,則接收通告的邊界 路由器不將路由信息通告到任何其對等體,包括其AS中的其他路由器。 當路由被在內(nèi)部通告時,包括了諸如本地優(yōu)選和下一跳字段之類的額外信 息。本地優(yōu)選屬性設置該特定路由(例如針對給定的前綴集合)的要使用 的優(yōu)選值,以便在有多條路由可用于到達AS中的其他邊界路由器的情況 下它們將選擇具有最高本地優(yōu)選的路由。下一跳屬性提供了用于AS中的 邊界路由器和其eBGP對等體之間的鏈路的IP地址。為了進一步減少 iBGP消息的量,路由反射器可以只將前往給定目的地的最佳路徑通告給 AS中的所有邊界路由器。因此,所有的邊界路由器將會把前往給定目的 地的流量轉發(fā)到最佳路徑通告中標識的邊界路由器。AS內(nèi)分組的轉發(fā)于 是可以簡單地使用下文更詳細描述的內(nèi)部網(wǎng)關協(xié)議(IGP),其中IGP轉 發(fā)表將確保去往最終目的地的分組將在自治系統(tǒng)內(nèi)被朝著適當?shù)倪吔缏酚?器轉發(fā)?;蛘撸邮諅魅氲姆纸M的入口邊界路由器可將分組隧傳到適當?shù)?出口邊界路由器,也就是說例如利用IP或MPLS隧道來將分組封裝到目 的地出口邊界路由器。分組隨后在出口邊界路由器處被解封,并根據(jù)分組 目的地頭部被轉發(fā)。BGP能夠支持多種地址類型,例如互聯(lián)網(wǎng)協(xié)議版本4 (IPv4)、互聯(lián) 網(wǎng)協(xié)議版本6 (IPv6)等等,并且每類地址是利用地址族標識符(AFI)和 后續(xù)地址族標識符(SAFI)來標識的。經(jīng)由BGP路由可達的目的地,例 如其IP地址由一個IP前綴表示的網(wǎng)絡組件,被稱為BGP中的網(wǎng)絡層可達 性信息(NLRI)。BGP中VPN的一種實現(xiàn)是BGP/MPLS VPN, BGP/MPLS VPN是本領 域的技術人員公知的,并且例如在萬維網(wǎng)的域"ietf.org"中的目錄"rfc" 的文件"rfc2547.txt"中的"BGP/MPLS VPN"中有所描述,該文件的全部內(nèi)容通過引用被結合于此,就好像在這里完全公開了一樣??傊?,MPLS被用于在VPN站點之間轉發(fā)VPN分組,而BGP被用于在VPN站 點之間分發(fā)VPN路由。在每個AS內(nèi),路由協(xié)議一般包括內(nèi)部網(wǎng)關協(xié)議(IGP),例如鏈路狀 態(tài)協(xié)議,比如開放最短路徑優(yōu)先(OSPF)或中間系統(tǒng)-中間系統(tǒng)(ISIS) 。鏈路狀態(tài)協(xié)議依賴于駐留在每個節(jié)點處的路由算法。網(wǎng)絡上的每個節(jié) 點在整個網(wǎng)絡中通告去往相鄰節(jié)點的鏈路,并且提供與每個鏈路相關聯(lián)的 成本,該成本可以基于諸如鏈路帶寬或延時之類的任何適當?shù)亩攘坎⑶乙?般被表達為整數(shù)值。鏈路可以具有非對稱成本,也就是說,沿著鏈路的方 向AB上的成本可以不同于方向BA上的成本。基于所通告的鏈路狀態(tài)分 組(LSP)形式的信息,每個節(jié)點構造作為整個網(wǎng)絡拓撲的圖的鏈路狀態(tài) 數(shù)據(jù)庫(LSDB),并且一般根據(jù)該數(shù)據(jù)庫,基于諸如最短路徑優(yōu)先(SPF)算法之類的適當算法來構造去往每個可用節(jié)點的單個最優(yōu)路由。 結果,構造出了 "生成樹"(SPT),其以該節(jié)點為根,并且示出了去往 每個可用目的地節(jié)點的最優(yōu)路徑,其中包括中間節(jié)點。SPF的結果被存儲 在路由信息庫(RIB)中,并且基于這些結果,轉發(fā)信息庫(FIB)或轉發(fā) 表被更新,以適當?shù)乜刂品纸M的轉發(fā)。當發(fā)生網(wǎng)絡變化時,代表該變化的 LSP被每個鄰近該變化的節(jié)點流播過網(wǎng)絡,每個接收到LSP的節(jié)點將其發(fā) 送到每個鄰近節(jié)點。結果,當前往目的地節(jié)點的數(shù)據(jù)分組到達節(jié)點時,節(jié)點識別去往該目 的地的最優(yōu)路由,并將分組轉發(fā)到沿著該路由的下一節(jié)點。下一節(jié)點重復 該步驟,依此類推。在發(fā)生域內(nèi)(例如IGP)和域間(例如BGP)網(wǎng)絡組件故障的情況下 使分組丟失最小化是非常重要的。例如,在域內(nèi)鏈路故障的情況下,ISP 使用各種技術來迅速地對故障作出反應,同時發(fā)生收斂,其中包括由其他 層來處理故障或者實現(xiàn)快速重路由技術,例如2003年1月9日提交的 Kevin Miles等人的題為"Method and Apparatus for Constructing a Backup Route in a Data Communications Network"的共同未決的專利申請No.10/340,371 ( Miles 等人)中描述的那類技術,該申請的全部內(nèi)容通過 弓I用結合于此用于全部目的,就好像在這里完全闡述了一樣。在域間故障的情況下,例如AS之間的對等鏈路的故障的情況下,或 者在BGP/MPLS VPN的情況下是BGP/MPLS VPN服務提供商和客戶站點 之間的鏈路發(fā)生故障的情況下,收斂可能花費若干秒。 一般,在這些情況 下,附接到發(fā)生故障的eBGP對等鏈路的邊界路由器通告目的地不能通過 故障鏈路達到的新LSP,以及指示出目的地不可達的iBGP撤回消息。已 經(jīng)建議了用于通過減少故障之后交換的BGP消息的數(shù)目來縮短故障情況下 BGP收斂時間的方法。此夕卜,Gummadi等人在"Improving the reliability of Internet paths with One-hop Source Routing" , USENIX OSDI'04, 2004中 已經(jīng)提議了實現(xiàn)源路由技術。但是,這些技術仍然具有長到不可接受的恢 復時間。另——禾中提議的技術在International Conference on Networks, pages 25-30, IEEE, September 2003中的"Fast Scoped Rerouting for BGP"中有所 描述,其要求BGP路由器在故障之后找出前往目的地的替換路徑,其結果 是恢復時間仍然很長。發(fā)明內(nèi)容以上背景技術部分中所確定的需求以及從以下描述中將清楚顯現(xiàn)出來 的其他需求和目的在本發(fā)明中得以實現(xiàn),本發(fā)明可包括針對第一 自治系統(tǒng) (AS)間鏈路(例如可達到(serving)第一前綴集合)的故障在AS中構造和/或實現(xiàn)備用路徑。在一個或多個實施例中, 一種方法包括識別可達到 所述多個前綴的替換AS間鏈路,并且構造去往該鏈路的隧道。另外,在 一個或多個實施例中, 一種方法包括識別替換AS間路徑并且構造去往該 替換路徑上的端點的隧道。另外,在一個或多個實施例中, 一種方法包括 經(jīng)由備用路徑來轉發(fā)去往故障鏈路的數(shù)據(jù)元素,并且在分組中包括環(huán)路防 止屬性。在一個或多個實施例中,本發(fā)明還可包括一種管理包括多個邊界路由 器的第一自治系統(tǒng)(AS)中數(shù)據(jù)的轉發(fā)的方法。邊界路由器具有去往一個 或多個遠程AS的域間鏈路,以及相關聯(lián)的外部通信協(xié)議。邊界路由器利用主隧道與第一 AS中的其他邊界路由器使用內(nèi)部通信協(xié)議。該方法包括在具有經(jīng)由域間鏈路去往遠程AS的主路由(primary route)的第一邊界路 由器處執(zhí)行的以下步驟構造經(jīng)由第一 AS中的第二邊界路由器去往遠程 AS的替換路由,在主路由發(fā)生故障后激發(fā)去往第二邊界路由器的備用隧 道,并且向其他邊界路由器發(fā)送故障消息。在其他方面中,本發(fā)明包括被配置為執(zhí)行前述步驟的計算機裝置和計 算機可讀介質(zhì)。
在附圖中以示例方式而非限制方式圖示了本發(fā)明,附圖中相似的標號 指代類似的元件,其中圖1是該方法所應用到的第一多域網(wǎng)絡的表示;圖2是該方法所應用到的第二多域網(wǎng)絡的表示;圖3是圖示出在實現(xiàn)備用路徑時執(zhí)行的步驟的流程圖;圖4是圖示出在選擇備用路徑時執(zhí)行的步驟的流程圖;圖5是示出根據(jù)本方法的FIB結構的示意圖;圖6是該方法所應用到的第三多域網(wǎng)絡的表示;圖7是示出根據(jù)另一實現(xiàn)方式在指示備用路徑時執(zhí)行的步驟的流程圖;圖8是示出根據(jù)另一實現(xiàn)方式在構造備用路徑時執(zhí)行的步驟的流程圖;圖9是圖示出在解除激活備用路徑時執(zhí)行的步驟的流程圖; 圖10是圖示出根據(jù)另一實現(xiàn)方式在解除激活備用路徑時執(zhí)行的步驟 的流程圖;以及圖11是示出可實現(xiàn)構造BGP修復路由的方法的計算機系統(tǒng)的框圖。
具體實施方式
描述了在自治系統(tǒng)中構造和實現(xiàn)備用路徑以及管理自治系統(tǒng)中數(shù)據(jù)的 轉發(fā)。在以下描述中,出于說明目的,闡述了許多具體細節(jié)以幫助全面理解本發(fā)明。但是,本領域的技術人員將會明白,沒有這些具體細節(jié)也能實 現(xiàn)本發(fā)明。在其他情況下,公知的結構和設備以框圖形式示出,以避免不 必要地模糊本發(fā)明的主題。
這里根據(jù)以下大綱來描述實施例
1.0綜述
2.0結構和功能概述
3.0在自治系統(tǒng)中構造和實現(xiàn)備用路徑以及管理自治系統(tǒng)中數(shù)據(jù)的轉 發(fā)的方法
4.0實現(xiàn)機構-硬件概述 5.0擴展和替換
1.0綜述
以上背景技術部分中所確定的需求以及從以下描述中將清楚顯現(xiàn)出來 的其他需求和目的在本發(fā)明中得以實現(xiàn),本發(fā)明可包括針對第一 自治系統(tǒng) (AS)間鏈路(例如可達到第一前綴集合)的故障在AS中構造和/或實現(xiàn) 備用路徑。在一個或多個實施例中, 一種方法包括識別可達到所述多個前 綴的替換AS間鏈路,并且構造去往該鏈路的隧道。另外,在一個或多個 實施例中, 一種方法包括識別替換AS間路徑并且構造去往該替換路徑上 的端點的隧道。另外,在一個或多個實施例中, 一種方法包括經(jīng)由備用路 徑來轉發(fā)去往故障鏈路的數(shù)據(jù)元素,并且在分組中包括環(huán)路防止屬性。
在一個或多個實施例中,本發(fā)明還可包括一種管理包括多個邊界路由 器的第一自治系統(tǒng)(AS)中數(shù)據(jù)的轉發(fā)的方法。邊界路由器具有去往一個 或多個遠程AS的域間鏈路,以及相關聯(lián)的外部通信協(xié)議。邊界路由器利 用主隧道與第一 AS中的其他邊界路由器使用內(nèi)部通信協(xié)議。該方法包括 在具有經(jīng)由域間鏈路去往遠程AS的主路由的第一邊界路由器處執(zhí)行的以 下步驟構造經(jīng)由第一 AS中的第二邊界路由器去往遠程AS的替換路 由,在主路由發(fā)生故障后激發(fā)去往第二邊界路由器的備用隧道,并且向其 他邊界路由器發(fā)送故障消息。
在其他方面中,本發(fā)明包括被配置為執(zhí)行前述步驟的計算機裝置和計
10算機可讀介質(zhì)。
2.0結構和功能概述
參考圖1可大體上了解構造BGP備用路徑/修復路由的方法,圖1示
出了該方法可應用到的網(wǎng)絡。該網(wǎng)絡包括第一AS,即AS1 (標號100), 以及第二 AS,即AS2 (標號106),其中第一 AS包括分別示為路由器 A、路由器B的邊緣路由器102、 104,第二 AS包括分別稱為路由器C和 D的邊緣路由器108、 110。第一域間鏈路IIO連接路由器A和C,第二域 間鏈路112連接路由器B和D。
在例如AS1的情況下,每個邊緣路由器A、 B預計算去往替換下一跳 的保護隧道,該保護隧道可到達與經(jīng)由受保護鏈路所到達的AS相同的 AS。例如,在路由器A希望保護去往路由器C的鏈路110的情況下,它 識別例如通過第二域間鏈路112經(jīng)由AS1中的路由器B和AS2中的D去 往與該鏈路可達到的AS相同的AS的替換備用路徑,作為替換下一跳, 因此,在鏈路IIO發(fā)生故障的情況下,路由器A在保護隧道中將本來會經(jīng) 由受保護鏈路發(fā)送的分組隧傳到路由器B,并且它們在路由器B處被解封 并且經(jīng)由鏈路112被轉發(fā)到AS2中的路由器D。
在這里描述的一個或多個實施例中,在AS具有與分別可達到相應的 目的地或前綴集合的多個AS的鏈路的情況下,在去往多個AS中相應的 一個的鏈路發(fā)生故障的情況下可以通過識別可達到同一目的地集合的替換 鏈路來構造備用路徑,從而提供每前綴路由保護。
如下文更詳細描述的,可以自動發(fā)現(xiàn)替換域間鏈路,并且在多個候選 備用路徑可用的情況下可以自動選擇最優(yōu)的那個。該方法可應用于各種拓 撲,包括大型中轉ISP之間的鏈路,以及多歸屬末梢網(wǎng)絡(multi-homed stub network)和提供商之間的鏈路。在使用各種技術收斂之后,還可解除 激活隧道。預計算的備用路徑的提供允許了在對FIB進行簡單修改的情況 下無需使用故障鏈路就能非常迅速地將分組發(fā)送到最終目的地。
另外,在這里描述的一個或多個實施例中,可以引入步驟以確保例如 在路由器A在保護隧道中將分組隧傳到路由器B時,路由器B不會簡單地將這些分組路由回到仍被它當作去往最終目的地的正確下一跳的路由器 A。因此,在分組中可包括環(huán)路防止屬性,以確保路由器B處的正常地址 査找被推翻。環(huán)路防止屬性例如可以是額外的比特,該比特充當備用路徑 指示符,指示出數(shù)據(jù)元素是經(jīng)由備用路徑轉發(fā)的?;蛘撸搶傩钥砂ㄞD 發(fā)指令,該指令指示路由器B應當經(jīng)由替換的備用路徑來轉發(fā)分組。
另外,在這里描述的一個或多個實施例中,提供了一種用于一旦在第 一自治系統(tǒng)中發(fā)生了收斂就去除備用路徑的方法,該第一自治系統(tǒng)包括多
個邊界路由器,這多個邊界路由器利用諸如eBGP之類的相關外部通信協(xié) 議來經(jīng)由域間鏈路與遠程AS通信。在第一自治系統(tǒng)中的邊界路由器利用 主IGP隧道(例如MPLS或IP隧道)經(jīng)由內(nèi)部通信協(xié)議通信的情況下, 第一 AS中的第一邊界路由器可通過在去往遠程AS的主路由發(fā)生故障后 激發(fā)去往第一 AS中的第二邊界路由器的備用隧道來構造經(jīng)由第二邊界路 由器去往遠程AS的替換路由。第一邊界路由器隨后向其他邊界路由器發(fā) 送采取例如BGP撤回消息形式的故障消息。結果, 一旦第一AS中的第三 邊界路由器接收到BGP撤回消息,它就可利用例如通過iBGP分發(fā)的備用 路徑(例如利用IGP隧傳)來隧傳到第二邊界路由器,以便在第一 AS內(nèi) 不發(fā)生循環(huán)。路由器A隨后可在被設置來允許正常BGP收斂發(fā)生的定時 器期滿后撤回其自己的備用隧道,以便隨后所有邊界路由器都會在正常操 作中將前往遠程AS的流量轉發(fā)到第二邊界路由器。
3.0在自治系統(tǒng)中構造和實現(xiàn)備用路徑以及管理自治系統(tǒng)中數(shù)據(jù)的轉 發(fā)的方法
這里描述的方法可聯(lián)系各種域間鏈路保護方案來實現(xiàn),例如圖1所示 的在中轉ISP之間常見的、其中提供了冗余的并行鏈路方案。此外,這種 連接可出現(xiàn)在BGP/MPLS VPN中,其中節(jié)點C和D包括客戶邊緣(CE) 路由器,節(jié)點A和B包括針對額外的提供商節(jié)點P (標號114)的提供商 邊緣(PE)路由器。在這種情況下,同樣,在域間鏈路中的任何一條發(fā)生 故障的情況下提供冗余。
在這種情況下,為了提供鏈路保護,在路由器A被當作AS1中的主出口路由器并且路由器C被當作AS2中的主入口路由器的情況下,在優(yōu)化
中創(chuàng)建從主出口路由器到與AS2對等的AS1中的另一出口路由器的保護 隧道,從而提供替換的AS間AS鏈路,即路由器B在這里被稱為次出口 路由器(secondary egress router),從而形成pe-se (主出口 -次出口)隧 道。路由器的識別和構造方式在下文中更詳細描述,將會看到,因為提供 了 pe-se隧道,所以不需要eBGP對等體(即不同的AS)之間的合作,這 在許多情況下是很重要的,因為這需要商業(yè)談判來訂立適當?shù)膮f(xié)定。
圖2是圖示出圖1所示配置的替換配置的網(wǎng)絡圖。ISP AS1 (標號 200)具有經(jīng)由分別處于AS1中的邊界路由器A和B (標號202、 204)與 分別在AS2和AS3中的邊界路由器C和D (標號214、 216)之間的相應 鏈路210、 212的與各個AS即AS2 (標號206)和AS3 (標號208)中的 每一個的單個對等鏈路。在AS2和AS3經(jīng)由網(wǎng)絡(例如因特網(wǎng)218)與總 地示為220的目的地或目的地集合通信時,將會看到對于這些目的地, AS1具有多個路徑可能,從而再一次可獲得可能的保護路由或備用路徑。
在圖1或圖2的情況下,為了配置適當?shù)谋Wo隧道,例如pe-se保護 隧道, 一種可能是僅僅配置它們,但會發(fā)生縮放性問題。因此,在優(yōu)化 中,引入了自動發(fā)現(xiàn)機制,以簡化配置并自動地使保護隧道適應于拓撲變 化。具體而言,主出口路由器必須自動地確定適當?shù)拇纬隹诼酚善鞯腎P地 址,以及例如要使用的隧道類型。
再次參考圖l所示的那類網(wǎng)絡,其中假定相同的目的地被下游AS2通 過鏈路110、 112通告并且將路由器A視為主出口路由器,則路由器A必 須首先定位出適當?shù)拇纬隹诼酚善?。在圖1中將會看到,只提供了一個額 外的路由器,但是當然在實踐中AS —般會包括大量邊界路由器,其中的 許多不會提供針對給定的遠程AS的替換保護路由。
為了適應于保護路由的預計算,AS1中的每個邊界路由器經(jīng)由iBGP 通告其所參與的現(xiàn)有eBGP會話。具體而言,所通告的保護路由特性包括 NLRI、與下游AS的對等鏈路上的本地IP地址、指示下游AS的AS路徑 屬性,以及包含要建立的保護隧道的參數(shù)的隧道屬性。例如,來自節(jié)點B 的通告包括去往AS2的鏈路112的IP地址,作為其AS路徑屬性的AS2,以及指示出所支持的隧道類型的適當隧道屬性。將會注意到,依賴于正常的iBGP通知是不夠的,因為在這種情況下節(jié)點B可能只會通告其去往AS2的最佳路由為經(jīng)由節(jié)點A。結果,尤其有 必要強制邊界路由器通告可能的保護路由。在一種優(yōu)化中,路由器利用虛擬專用網(wǎng)版本4 (VPNv4)來在AS中 通告?zhèn)溆寐酚?。AS中的每個路由器發(fā)起一個或多個唯一的VPNv4路由 (利用路由區(qū)分符RD)。例如,路由器B發(fā)起一條路由,該路由的NLRI 是去往AS2中的路由器D的鏈路112上路由器B的地址,并且具有適當 的RD。當然,如果B具有多條鏈路,則多個這種路由被通告并通過適當 的RD來標識。節(jié)點B另外還將AS2標識為其AS路徑,其指示出它提供 去往對等AS2的備用路由,并且還標識出適當?shù)南乱惶涌?,該下一跳?口例如可為回環(huán)地址。此外,路由器B根據(jù)鏈路112的特性來設置對等策 略(即與下游AS —致同意的參數(shù))、鏈路帶寬、共享風險鏈路組 (SRLG)和優(yōu)先級的值。結果,路由通告經(jīng)由AS路徑信息攜帶標識出路 由器B提供的可能備用路由的信息,并且攜帶包括下一跳信息在內(nèi)的必要 轉發(fā)信息。此外,通告還攜帶允許接收方路由器在以下情況下選擇適當?shù)?隧道的信息在一個路由器提供多個對等鏈路的情況下有來自單個路由器 的多條隧道可用,或者在各自具有一個或多個對等鏈路的多個路由器之間 有多條隧道可用,這將在下文更詳細描述。參考圖3可進一步理解自動發(fā)現(xiàn)過程,圖3是圖示出在自動發(fā)現(xiàn)路由 器(例如圖1中的路由器A)處執(zhí)行的額外步驟的流程圖。在步驟300, 路由器A接收保護路由通告,例如VPNv4路由,在步驟302,選擇合格的 路由,以下將參考圖4對此進行更詳細描述。將會注意到,選擇過程也可適應于流量工程pe-se隧道,例如利用 RSVP-TE來結合具有主出口路由器和次出口路由器之間的帶寬預留的流量 工程MPLS隧道,從而確保有足夠的帶寬可用于受保護的流量。在步驟304,路由器A將所選擇的備用路由添加到其FIB。在主出口 路由器處,保護隧道最終由兩個參數(shù)定義,該兩個參數(shù)為封裝頭部和傳出 接口。此外,鏈路AC 110的保護條目可具有語義"進行封裝(隧傳),使得目的地地址等于所選備用路由的下一跳,源地址等于BGP保護主配置 中提供的接口的地址",并且如下文更詳細描述的,啟用所選備用路由中 的"轉發(fā)-助手"。在優(yōu)化中,F(xiàn)IB被組織為圖5所示的兩個表。第一表500包含BGP前 綴(即經(jīng)由某個路由可達到的IP目的地)和BGP下一跳(即前往這些目 的地的分組被路由到的下一 BGP路由器)。BGP下一跳504包括指針, 這些指針指向所有下一跳條目的表506,其中包括IGP表的一部分。第二 表506中的每個下一跳條目包含下一跳的地址508、指示出去往下一跳的 鏈路是工作中(up)還是停工(down)的標志510,以及兩個傳出接口 (OIF):主OIF 512和次OIF 514,每個接口包括一個數(shù)據(jù)結構,該數(shù)據(jù) 結構包含根據(jù)接口類型和所用協(xié)議在此接口上轉發(fā)分組所需的所有信息。 如下文更詳細描述的,這種構造減少了在激活保護隧道之后必須修改的 FIB條目的數(shù)目,從而提高了重路由速度?;氐綀D3,在步驟306,以任何適當?shù)姆绞剑缋脕碜晕锢韺拥?觸發(fā)(例如信號的SONET丟失)來監(jiān)視和檢測受保護鏈路110的故障。 在步驟308,在檢測到故障后,檢測路由器立即更新其FIB,以封裝過去 使用故障鏈路的分組并將它們發(fā)送到替換下一跳。具體而言,在這些情況 下,路由器A將主OIF上的標志設置為停工,其結果是利用次OIF數(shù)據(jù)結 構中的信息實現(xiàn)備用隧道。然后,在步驟310,分組被隧傳到備用下一 跳,即路由器B。圖4是圖示出圖3的步驟302處的路由選擇機制的流程圖。在步驟 400,路由器A根據(jù)其IGP表檢査備用路由是否可達。在步驟402,路由 器A從提供次域間鏈路的次出口路由器中選擇用于保護其主域間鏈路110 的pe-se隧道端點,作為其AS路徑值合格的保護路由。在步驟404,路由器B所通告的策略必須對應于路由器A處實現(xiàn)的策 略,對應形式例如是等同于或者是其超集。結果,如果在并行鏈路上使用 不同的BGP策略,則識別任何這種差別。例如,策略標識符可包括要求利 用其對等體使用的BGP策略來配置每個出口路由器的客戶和對等體信息, 該信息可在BGP會話建立期間作為eBGP會話類型被交換。在步驟406,路由器檢査SRLG值。在SRLG屬性的情況下,備用路 由的SRLG應當與主備用路由的SRLG脫離。如果兩個路由都在共同的共 享風險組中,那么顧名思義,如果一個發(fā)生故障,則存在另一個也會發(fā)生 故障的風險。SRLG值也可以通過eBGP會話來交換。在步驟408,備用路由的帶寬應當大于或等于主鏈路的帶寬,以便能 夠維持適當?shù)臄?shù)據(jù)流量支持。在步驟408,在結合了例如與本地優(yōu)選字段 類似的優(yōu)先級字段的情況下,那么如果所有其他屬性都匹配,則選擇最高 的優(yōu)先級。如果優(yōu)先級也匹配,則在步驟412,利用IGP路徑成本作為選 擇度量來選擇最近的下一跳。備用路徑從而被選擇。結果,在鏈路110發(fā) 生故障的情況下,路由器A立即具有提供相同可達性的替換鏈路112。當路由器A實現(xiàn)其備用路由時,當在路由器B處接收到隧傳的分組 后,必須確保該分組不會簡單地被路由回到路由器B根據(jù)其FIB而仍認為 是前往解封后分組的目的地的適當下一跳的路由器A。因此,當在邊界路 由器處接收到修復的分組時,必須推翻邊界路由器處的正常地址査找。因 此,路由器A處為受保護分組實現(xiàn)的隧傳機制或頭部例如通過設置這里稱 為"P比特"(但也可以采取任何適當?shù)拿?的比特來指示出有效載荷 來自BGP保護。當路由器解封出有效載荷并且隧道頭部具有被設置的P 比特時,路由器將會把設置的P比特與有效載荷關聯(lián)起來,使得分組不會 再次被保護,從而實現(xiàn)了環(huán)路防止。例如,參考圖1,將路由器C和D視 為單個節(jié)點"CD",如果CD發(fā)生故障,則AS1中的路由器A和B都將 通過向路由器A和B中的另一個進行轉發(fā)來保護它們各自的鏈路流量,從 而建立了環(huán)路。如果在第一修復嘗試后即設置P比特則不會發(fā)生這種情 況,因為第二路由器不會嘗試再修改分組,而是例如如果它檢測到需要第 二修復則可丟棄分組。P比特可以以任何適當?shù)姆绞絹韺崿F(xiàn)。此外,在具有所論述類型的pe-se配置中的隧道端點處的解封路由 器,即路由器B,必須能夠確定在它的哪個本地接口上轉發(fā)有效載荷。這 是通過在封裝路由器處將特定的"轉發(fā)助手"字段寫入到隧道頭部中以確 保在解封路由器處進行正確的轉發(fā)判決來實現(xiàn)的。例如,如果轉發(fā)助手值 是被設置到比如零的值,則解封路由器將會根據(jù)對有效載荷中分組的目的地地址的通常查找來轉發(fā)分組。但是,如果轉發(fā)助手比特被設置到例如 1,則解封節(jié)點不會對有效載荷執(zhí)行正常的查找,而會根據(jù)備用路由來進 行轉發(fā),以確保受保護的分組被繼續(xù)轉發(fā)到外部鏈路。在圖1所示的網(wǎng)絡 的情況下,例如,如果AS1的策略是優(yōu)選經(jīng)由路由器A獲知的路徑(例 如路由器A具有較高的本地優(yōu)選值),那么在其他情況下路由器B將會把從路由器A回來的修復后的封裝分組路由到A,從而形成環(huán)路。但是,如 果轉發(fā)助手字段在封裝分組頭部中被設置,則路由器B將會被強制將解封 后的分組轉發(fā)到去往AS2中的路由器D的修復鏈路112上?;蛘呖梢詫崿F(xiàn) 相應的語言,例如定向轉發(fā)(directed forwarding),其中從節(jié)點B到節(jié)點 D的分組實際上被源路由。還將注意到轉發(fā)助手字段或比特的值可由每個 路由器通過網(wǎng)絡通告,或者自動地或由管理員手工地在整個網(wǎng)絡上設置。例如,在實現(xiàn)MPLS的情況下,則對于每個路由可維護兩個標簽,其 唯一差別在于最右側比特的值,對于正常流量該值被設置為0,而對于受 保護流量則被設置為1。在鏈路發(fā)生故障后,邊界路由器(例如路由器 A)將會交換傳入流量的具有零比特的頂部標簽,并且用針對備用邊界路 由器(例如路由器B)的頂部標簽和最右側比特被設置為1的底部標簽來 替換它。結果,提供了設置P比特并識別P比特是否被設置的簡單機制。將會看到,用來實現(xiàn)圖4的步驟的特定機制可采取任何適當?shù)男问健?例如,包括到下游AS的備用路由器的本地IP地址的所通告的保護路由中 的NLRI最終是唯一的IP地址,以確保即使在路由反射器的情況下它也被 分發(fā)。隧道本身可以是任何適當類型的,例如通知路由封裝(GRE)、第 2層隧道協(xié)議(L2TP)或者基于IP的MPLS (MPLS over IP),并且保護 路由通告將會指示出適當?shù)乃淼缹傩砸约翱蛇x參數(shù),例如在基于IP的 MPLS封裝的情況下是所需的標簽??梢砸匀魏芜m當?shù)姆绞絹砼渲米詣影l(fā) 現(xiàn)。例如,可以利用其AC (鏈路10)對等鏈路接口上的適當策略來配置 路由器A,從而使得要求BGP保護的路由器A能夠監(jiān)視可能的候選備用 路由并參考圖3從各種所需屬性中進行選擇。網(wǎng)絡中的每個邊界路由器將 會維護類似的策略,以及指示出路由器應當作為邊界路由器工作的方式的 策略,其中包括設置選擇過程所需的屬性的發(fā)起保護路由信息,以及相關17聯(lián)的目的地信息。在VPNv4備用路徑被通告的情況下,則隧道的目的地 地址被定義為備用路徑的下一跳。還將會注意到,適當時,額外的SAFI 可用來攜帶保護路由,從而允許它們像這樣被識別出。將會看到,通過適當?shù)男薷?,上文參考圖3和4所描述的方法同樣可 聯(lián)系圖2所示的網(wǎng)絡實現(xiàn),其中AS1具有經(jīng)由相應節(jié)點A、 B的與多個 AS (AS2、 AS3)的對等鏈路。在這種情況下,如果例如路由器A具有前 往給定目的地或前綴集合的主eBGP路徑,并且路由器B發(fā)現(xiàn)了前往同一 前綴集合的另一路徑,則路由器A有必要獲知去往前綴集合的替換路徑, 并且將其存儲為其自己的主路徑的備用路徑。但是,由于不同的AS可能 可達到不同的前綴,因此在圖2的配置中,AS1中的每個路由器必須依據(jù) 前綴來獲得備用路由。同樣有必要確保所有的可用備用路由而不只是 iBGP中確定的最佳路徑被通告,并且有各種機制可用。在第一實現(xiàn)方式中,路由器B為從其eBGP鄰居接收的每個前綴構建 VPNv4路由,而不論該路徑是否被選擇為最佳路徑,并且除了正常的IPv4 BGP操作外還傳播這些路由。備用路由被傳播,其中包括路由器B的適當 路由區(qū)分符,將路由器B識別為下一跳,以及作為適當標簽的、去往通告 了其具有前往該前綴的路由的下游AS中的eBGP鄰居的鏈路。例如,在 圖2的情況下,在最終目的地X (標號222)經(jīng)由AS3可用的情況下, AS3中的節(jié)點D會已經(jīng)將此路由通告給了節(jié)點B,節(jié)點B隨后將利用 iBGP在AS1內(nèi)傳播該通告,從而節(jié)點A將會獲知它。路由器A將會具有 其自己的經(jīng)由AS2中的路由器C去往目的地X的最佳路由,但是將會適 當?shù)靥砑勇酚善鰾的備用路徑。在第二種替換實現(xiàn)方式中,所有互聯(lián)網(wǎng)eBGP會話都將被配置在VPN 路由和轉發(fā)表(VRF)中,該表將整個網(wǎng)絡(例如因特網(wǎng))視為一個共同 的VPN并且利用唯一的RD來配置每個邊界路由器。VRF的操作是本領 域的技術人員公知的,這里不對其進行詳細論述。但是,總之,VRF包括 被相關聯(lián)的一組接口使用的IP路由表和所得出的轉發(fā)表。根據(jù)適當?shù)穆酚?協(xié)議,來自路由對等體的信息被注入到VRF中。如果分組通過相關接口到 達,則VRF被參考。通過將網(wǎng)絡視為一個共同的VPN,每個邊界路由器看到前往任何前綴 的所有路徑,從而允許了它計算其自己的主路徑的備用路徑。因此,參考圖2所示的其中路由器A、 B、 C、 D被視為屬于共同的VPN的示例,每 個路由器將會維護包括IP路由和轉發(fā)表的VRF。具體而言,由于VRF包 含該共同VPN的所有相關路由信息,因此不必"強制"BGP路由器轉發(fā) 額外的備用路由信息,因為它們在VPN內(nèi)通告所有路由而不只是最佳路 由。因此,例如在MPLS配置中,路由器B將從路由器D接收的路由以 RD (路由器B):路由(n),標簽(n)的形式通告。路由器A接收這 些通告,并且檢查接收到的路由是否與從連接到路由器C的對等主域間鏈 路接收的任何主路由相匹配。如果是,則通告的路由被記錄為可能的備用 方案。另外,當保護去往路由器C的鏈路110時,當該鏈路發(fā)生故障時, 路由器A能夠使用路由器B通告的標簽作為利用外部標簽封裝的分組上的 內(nèi)部標簽以到達路由器B。因此,在分組被解封后,路由器B將會根據(jù)該 內(nèi)部標簽來轉發(fā)分組,即沿著其路由(經(jīng)由鏈路112,路由器D)去往目 的地。結果,提供了針對每個前綴的方案,而無需"強制"BGP路由器通 告額外的非最佳路徑路由。在替換的第三實現(xiàn)方式中,AS中的每個路由器識別作為iBGP中的 "額外路徑"通告的候選備用路由。在這種情況下,每個路由器通告前往 每個目的地的多個可用路徑,而不只是其最佳路徑。多個路徑被傳播,并 且例如被路由反射器分發(fā)。在這種情況下,替換或次佳路徑可以以任何適 當?shù)姆绞奖环瓷洌缛ネ星熬Y的所有可能路徑或者去往每個前綴的 至少一個替換路徑(如果可用的話)。例如,參考圖2,路由器B的去往 目的地X的最佳路徑可能是經(jīng)由路由器A,但是其次佳路徑將會是經(jīng)由路 由器D。結果,當額外的路徑被傳播時,路由器A將會識別出路由器B提 供去往目的地X的替換路由,于是它可將該替換路由輸入到其轉發(fā)表中, 作為在鏈路AC發(fā)生故障的情況下的備用路由。例如,該方法可利用萬維 網(wǎng)的域"ietf.org"的目錄"internet-draft"中的文件"draft-walton-bgp-add-paths-03加"中的"Advertisement of Multiple Paths in BGP"中描述的 ADD-PATH功能技術來實現(xiàn),該文件的全部內(nèi)容通過引用被結合于此用于19所有目的,就好像在這里完全公開了一樣。在第四種替換實現(xiàn)方式中,每個BGP路由器通告其針對每個前綴的最 佳外部路徑。也就是說,路由器除了通告其去往外部目的地的最佳路徑 (可能是去往同一 AS中的另一邊界路由器)之外,還通告至少一條這樣的路徑,對于該路徑它可以使自己充當經(jīng)由去往下游AS的鏈路而去往目 的地的BGP路由。例如,在圖2的示例中,路由器B去往目的地X的最 佳路徑可能是經(jīng)由路由器A,該路由器A隨后將經(jīng)由BGP轉發(fā)到路由器 C。但是,路由器B還識別它具有其自己的去往目的地X的外部路徑(例 如經(jīng)由路由器D),并且也將此作為其自己的最佳外部路徑進行通告。結 果,當路由器A接收到來自或代表路由器B的通告時,它將會識別出路由 器B提供它可在適當時添加到其轉發(fā)計算中的替換備用外部路徑。根據(jù)第五種替換實現(xiàn)方式,除了正常的iBGP傳輸機制外還可結合路 由服務器來分發(fā)備用路徑。路由服務器可以是現(xiàn)有的網(wǎng)絡組件,例如路由 器A或B之一,或者在適當時可以是額外的組件。路由服務器的任務是例 如通過輪詢每個路由器或接收來自它們的通知來獲得每個邊界路由器的 eBGP路徑。路由服務器隨后可在適當時如上所述地通告?zhèn)溆寐酚梢约邦~ 外的實現(xiàn)信息。路由服務器可以自己進行額外的路由選擇步驟以識別它應 當把哪些路由通告給哪個路由器,或者可以傳播所有路由并允許適當時在 本地作出決定。將會注意到, 一旦可用路徑已被在邊界路由器間分發(fā),路徑就可以以 任何適當?shù)姆绞奖贿x擇和實現(xiàn),例如利用參考圖3和4描述的方法,并且 根據(jù)需要被修改。類似地,邊界路由器在通告可能的候選備用路徑時可以 結合適當?shù)男畔⒁栽试S進行選擇。將會意識到,雖然以上描述的各種方法尤其適合于需要針對每個前綴 的備用路由策略的情況,但是它們同樣可實現(xiàn)在圖1所示的拓撲的情況 中,其中去往共同AS的多個鏈路提供冗余。在這種情況下,例如, 一般 可從通告的存在(等同于或包括ASPATH,假定備用路由對于所有前綴是 共同的)來推斷備用路由的可用性,或者在適當時可以從通告得出關于通 告前綴的特定AS的信息,從而允許構造去往下游AS的備用路徑。作為這里描述的方法的結果,將會看到提供了一種方案,其可應用于 域間鏈路的兩個方向上,并且無需與AS外的BGP路由器合作,分組封裝和解封在同一 AS中執(zhí)行。此外,還適應于SRLG以及多個域中的或者復 雜的對等協(xié)定中的變化的BGP策略。以上論述的方法集中于pe-se隧道也就是說單個AS內(nèi)的隧道的實現(xiàn), 其結果是不需要與遠程AS的合作,這種合作從可能影響AS之間的對等 的商業(yè)協(xié)定的角度來看是很復雜的。此外,pe-se隧道可以聯(lián)系圖6所示的 那類配置來實現(xiàn),該圖是示出另一種網(wǎng)絡拓撲的網(wǎng)絡圖。具體而言,所示 的拓撲包括多歸屬末梢AS 600,下文將對此進行更詳細描述。多歸屬末梢AS 600附接到中轉提供商AS1 (標號602) 、 AS2 (標號 604)和AS3 (標號606)。末梢AS 600包括路由器C (標號608)和D (標號610)。路由器C經(jīng)由鏈路614連接到AS1中的路由器A (標號 612)。路由器D經(jīng)由鏈路618連接到路由器B (標號616)。路由器D 還經(jīng)由鏈路622連接到AS3中的路由器C (標號620)。具體而言,在這 種網(wǎng)絡中可能發(fā)生兩種可能的情形。在第一情形中,末梢AS 600需要保 護其傳出分組流。在這種情況下,由于末梢可經(jīng)由所有其中轉提供商 602、 604、 606到達所有目的地(例如由標號624示出),因此通過結合 pe-se隧道解決了與圖l和2的拓撲中發(fā)生的問題類似的問題。但是,在第 二情形中,末梢AS 600保護傳入流量,這要求主出口 -次入口 (pe-si) 保護隧道。在來自末梢AS 600的流量的第一種情況中,由于提供商AS1、 AS2、 AS3都提供去往所有目的地624的路由,因此實現(xiàn)了與以上參考圖l所采 用的方法類似的方法。具體而言,可以實現(xiàn)參考圖3描述的路徑選擇方 法,其中eBGP會話類型被適當?shù)囟x,并且其他屬性被因此通告。從 而,例如,在節(jié)點C要求前往624中的目的地X (未示出)的備用路由而 不是經(jīng)由AS1中的節(jié)點A的情況下,它可接收來自末梢AS 600中的路由 器D的適當通知,該通知表明通過分別去往AS2和AS3的鏈路618和622 中的任何一個或最佳的那個可達到同一目的地。還將會意識到,在一些前綴通過某些提供商AS可達到并且另一些通過其他提供商AS可達到的情況下,末梢AS 600可以以完全并行的方式, 利用以上詳細闡述的技術中的任何一種,如參考圖2所描述的那樣針對每個前綴實現(xiàn)備用路由。在第二種情形中,希望在末梢AS 600處利用在位于提供商內(nèi)部的主 出口路由器和末梢內(nèi)部的次入口路由器之間建立的pe-si保護隧道,在去往 末梢的域間鏈路發(fā)生故障時恢復提供商-末梢分組流。參考圖6所示的網(wǎng) 絡,例如,如果在鏈路614發(fā)生故障后末梢AS 600需要為例如來自AS1 中的路由器A的傳入流量建立保護隧道,則它要求這種流量例如經(jīng)由AS2 中的路由器A或AS3中的路由器C被隧傳到末梢AS中的路由器D。通過 將AS 1中的路由器A視為主出口路由器并且將末梢AS中的路由器D視為 次入口路由器,次提供商AS2或AS3的路由器雖然在備用路徑中,但在 保護隧道的激活和分組的解封中均未涉及AS2和AS3,從而減少了建立保 護方案所需的AS間事務的數(shù)目。因此,只需要在所涉及的AS間進行特 定的對等協(xié)商,并且可以更容易地部署適當?shù)陌踩圆呗浴R虼?,為了實現(xiàn)保護方案,必須在主出口路由器(在本示例中是路由 器A)上配置去往末梢AS 600的適當?shù)拇稳肟诼酚善?。這可以手工完 成,但是一種優(yōu)化中系統(tǒng)被自動預配置。具體而言,末梢AS中的每個入 口路由器,例如充當主入口路由器的路由器C和D中的每一個,通過與其 相應的主出口路由器A或B和C的eBGP會話來通告末梢內(nèi)部可用作pe-si保護隧道的候選端點的次入口路由器-在此情況下分別是路由器C和D 中的另一個,從而將候選端點的IP地址指示為NLRI,并且指示出適當?shù)?隧道屬性,包括隧道類型和參數(shù),例如SRLG信息和策略信息。此外,可 以指定"NO-ADVERTISE"團體,以確保路由器A不對接收到的備用路 由進行傳播。當然,主出口路由器必須能夠到達次入口路由器,即使在正 常操作主出口路由器可能已經(jīng)經(jīng)由主入口路由器到達了末梢所通告的所有 目的地。因此,在圖6的情況下,路由器A必須能夠經(jīng)由替換路由到達路由器 D,即使在正常操作中路由器A將會經(jīng)由路由器C到達路由器D。這例如 可通過為所識別的任何pe-si隧道識別次提供商并確保si路由器經(jīng)由第二提供商可用,來得以實現(xiàn)。主入口路由器(例如路由器A)識別保護路由(即候選次入口路由 器)的方式可以是通過對經(jīng)由iBGP以上述方式接收的保護路由進行過濾并且通告那些具有相同eBGP會話類型和不同SRLG值的路由,下文將對 此進行更詳細論述。路由器A隨后例如利用上述方法從通過eBGP會話接 收的保護路由中選擇pe-si保護隧道的最優(yōu)端點。圖7是圖示出該方法的第一種替換實現(xiàn)方式的流程圖。在步驟700, 末梢AS 600中的路由器,例如路由器C,向AS1中的路由器A通告保護 路由,其中包括了末梢處的目的地作為NLRI,包括其自身作為下一跳, 包括了 AS路徑標識符(例如AS4,將末梢AS視為具有該名稱),并且 包括備用路徑標識字段或保護路由屬性,其中包括末梢中的目的地也可從 其到達的次出口路由器的標識符。該保護路由屬性例如可以基于本地策略 來構造。在步驟702,路由器A經(jīng)由iBGP在AS1中通告其前往這些目的 地的最佳路由為經(jīng)由路由器C和經(jīng)由相應的AS路徑604。在步驟704,路 由器A還利用保護路由屬性中的信息為末梢構建保護路由備用條目,其中 包括轉發(fā)指令"朝著備用路由器封裝",所述備用路由器例如是圖6中的 路由器D。因此,當在步驟706檢測到鏈路故障時,在步驟708路由器A 則將分組隧傳到路由器D。圖8是圖示出該方法的第二種替換實現(xiàn)方式的流程圖。在步驟800, 末梢AS對可經(jīng)由適當群組標識符應用路由判決的目的地進行分組,所述 群組標識符例如是BGP團體,在這里僅出于說明目的將其標識為不同的顏 色。在步驟802,末梢AS路由器C和D中的每個向外部AS通告其路 由,包括相關聯(lián)的團體。然后,在步驟804,每個團體的備用目的地地址 被識別并存儲。例如,末梢AS 600中的每個路由器可在AS內(nèi)通告每個團 體已被通告給的AS的身份。這些通告可在末梢AS中的每個其他路由器 處或者在額外的AS組件處被接收,該額外的AS組件被配置來識別哪些 其他提供商AS接收到了針對相同團體的通告。然后,在步驟806,每個 末梢路由器向外部AS通告前往它向該AS通告的每個團體的任何備用路 由。例如,在末梢AS已向圖6中的AS1和AS3通告了包括"藍色"目的地集合的第一團體的情況下,節(jié)點C則可以向節(jié)點A通告該團體可通過AS3中的路由器E和末梢AS中的路由器D來達到,而末梢AS中的路由 器D向AS3中的路由器E通告該團體可通過AS1中的路由器A和末梢AS 中的路由器C達到。然后,在步驟808,當在路由器A處檢測到故障后, 先前想經(jīng)由鏈路614去往路由器C的分組被適當?shù)亟?jīng)由前往該團體的備用 路由來進行隧傳。將會意識到,如上所述在適當時可以采用任何特定的隧傳技術,并且 可以在對等AS之間許可的程度內(nèi)使用諸如保護比特或轉發(fā)助手之類的適 當保護機制。在修復的分組被轉發(fā)到pe-si隧道中的情況下,封裝則會發(fā)生 在主出口節(jié)點處,并且分組最終將在次入口節(jié)點處被解封。由于主入口節(jié) 點和次入口節(jié)點在共同的AS中,因此在次入口節(jié)點處可根據(jù)該AS中的共同策略實現(xiàn)適當?shù)慕夥夂蟛襟E。此外,主入口路由器可實現(xiàn)適當?shù)陌踩?性策略。所述配置的一個結果是不需要提供商AS之間的相互合作,而只 需要每個提供商和末梢之間的,從而減少了所需要的域間對等協(xié)定的數(shù) 目。實際上,可以例如利用適當?shù)脑L問控制列表或者通用的隧傳安全性機 制來像對pe-se隧道(即域間隧道)那樣實現(xiàn)適當?shù)陌踩源胧?。一旦被激活,保護隧道就提供快速的修復,雖然這是經(jīng)由非最優(yōu)的備 用路由并且使用隧道實現(xiàn)來進行的,這在一些情況下可能增大網(wǎng)絡中的路 由器上的轉發(fā)或處理負擔。因此,希望只在收斂發(fā)生之前維持隧道。此 外,將會注意到,故障也會經(jīng)由iBGP被通告,這又導致對AS中的路由 器的所有FIB進行更新,這也可能造成分組丟失或循環(huán)的風險。具體而 言,AS中的其域間鏈路發(fā)生故障的路由器將會發(fā)送撤回消息,而備用路 由器將會發(fā)送指示出其自己的替換路由的更新消息,而消息的處理順序在 許多情況下可能導致環(huán)路。因此,希望確保經(jīng)由保護隧道到達的所有目的 地在整個路由轉換期間必須保持可達,并且對AS內(nèi)部的路由器的FIB的 更新不會導致暫時的分組轉發(fā)環(huán)路。作為第一步驟,可利用一個策略來配置路由器,該策略指示出在受保 護鏈路發(fā)生故障后定時器T應當被設置,在該時間期間通常在該鏈路上轉 發(fā)的所有流量都應當被封裝到具有替換路由的目的地地址的隧道中。定時24器T的值可被設置為適當?shù)某掷m(xù)時間,以允許正常的BGP收斂發(fā)生,從 而使得一旦定時器期滿路由器就會停止保護流量,尤其是會停止對其進行隧傳。例如,定時器T的值可以在10至50秒的范圍內(nèi)。但是,可能需要額外的步驟來避免循環(huán)。根據(jù)這些額外的步驟看待收斂的方式取決于網(wǎng)絡中部署的轉發(fā)機制。在其中iBGP被用來將VPN路由分發(fā)到提供商邊緣(PE)路由器的提供 BGP/MPLS VPN的網(wǎng)絡的情況下,VPN路由被分發(fā)路由的BGP路由器認 為是不透明的比特串。如上所述,服務提供商,例如圖1中的AS1或 AS2,將其邊緣或PE路由器中的每一個配置成為每個PE-CE鏈路(例如 鏈路AC614)使用唯一的RD。結果,AS中的每個路由器經(jīng)由iBGP接收 到前往通過PE-CE鏈路可達的前綴或目的地的所有VPN路由。因為VPN 路由對于進行分發(fā)的BGP路由器是不透明的,所以即使服務提供商網(wǎng)絡被 劃分成子自治系統(tǒng)或聯(lián)盟或者使用BGP路由反射器,這種方法也是適當 的。因此,當PE路由器隨后由于鏈路故障而發(fā)送BGP撤回消息時,該消 息將會與具有不同RD的可用替換VPN路由一起到達其他PE路由器,這 些路由器隨后可實現(xiàn)替換路由。另外,在BGP/MPLS VPN中,替換路由 使用隧道,例如MPLS或IP隧道,因此替換路由將會是無環(huán)路的。通過結合圖9來參考圖1所示的網(wǎng)絡可以進一步理解該方法,圖9是 更詳細地圖示出所涉及的步驟的流程圖。在步驟900,路由器,例如路由 器A,通過鏈路HO通告其可到達的前綴以及RD,并且路由經(jīng)由iBGP被 分發(fā)到AS中屬于VPN的其他路由器,例如路由器B,從而所有的可用路 由都被分發(fā),而不像正常iBGP通知中那樣只有最佳路由被分發(fā)。此外, 路由反射器將以這種不透明的格式分發(fā)所有的路由。在鏈路110發(fā)生故障后,路由器A在步驟904激活其保護隧道,然后 在步驟906發(fā)送BGP撤回消息。在這個階段,路由器A將分組隧傳到路 由器B,并且經(jīng)由鏈路112將其繼續(xù)隧傳到AS2。在BGP/MPLS VPN中 的正常操作之后,在接收到BGP撤回消息之前,AS中的每個充當入口路 由器的其他路由器利用MPLS隧道將VPN流量轉發(fā)到適當?shù)某隹谶吔缏?由器,從而另一個路由器(例如路由器E (標號116))使用MPLS隧道25來經(jīng)由路由器A發(fā)送分組到AS2。但是, 一旦路由器E接收到來自路由器A的BGP撤回消息,它將會具有己經(jīng)通過iBGP作為VPN路由分發(fā)的替 換路由,并且將會在步驟908立即切換到向路由器B進行MPLS隧傳。然 后,在步驟910,路由器A可以例如在定時器T期滿后去除其保護隧道, 從而允許收斂發(fā)生,如上所述。將會意識到,雖然以上論述針對的是 BGP/MPLS VPN,但是它同樣可應用到在VPN站點之間使用諸如IP隧傳 之類的其他隧傳機制的VPN。利用邊緣路由器之間的封裝,也可以在AS中無環(huán)路的情況下實現(xiàn)隧 道解除激活。例如參考圖1,同樣AS1 (標號100)包括邊界路由器A、 B 和另一個邊界路由器E (標號116)。在這種情況下,在作為BGP入口路 由器的路由器E處到達AS并且例如去往通過AS2可達到的前綴的分組被 隧傳過AS以前往正確的BGP出口路由器,例如路由器A。具體而言,入口邊界路由器E參考其BGP路由表以轉發(fā)這樣的"中 轉分組",并且將路由器A識別為提供去往AS2的最佳eBGP路徑。中轉 分組隨后在路由器E處被封裝成去往路由器A,并且依賴于IGP轉發(fā)被轉 發(fā)過AS,從而使得AS內(nèi)的其他路由器不會參考其BGP路由表來轉發(fā)該 分組。結果,在AS內(nèi),由于IGP是無環(huán)路的,因此在正常操作期間可避 免暫時的環(huán)路。封裝可以以各種方式來實現(xiàn)。例如,在MPLS中,附加頂 部標簽以確保到達出口路由邊界路由器A,并且一旦頂部標簽被剝?nèi)?,?部標簽就指示出將被路由器B用來到達下一跳的域間鏈路(鏈路AC 110)。在IP隧傳中,分組被利用第一IP頭部和內(nèi)部隧道頭部來進行雙重 封裝,該第一 IP頭部具有出口邊界路由器A的地址,并且一旦分組在路 由器B處被解封,該內(nèi)部隧道頭部就指示出域間鏈路。在故障鏈路110被保護時,路由器A于是例如將會根據(jù)上述方法中的 任何一種通過pe-se隧道來將其保護分組隧傳到路由器B。但是,同樣希 望一旦隧道不再被需要就去除它,并且確保在這個階段不發(fā)生環(huán)路。可以 參考圖10來理解所采用的方法,該圖是圖示出根據(jù)該方法執(zhí)行的步驟的 流程圖。在步驟1000,路由器A如上文更詳細描述的己經(jīng)在鏈路AC發(fā)生 故障后實現(xiàn)了其保護隧道,并且正在將先前本來會經(jīng)過鏈路AC的分組隧傳到路由器B,路由器B將會通過鏈路BD來轉發(fā)分組。在步驟1002,路 由器A例如在被設置到超過BGP收斂的預期時間的時段的上述類型的定 時器期滿后識別出應當開始用于去除隧道的過程。將會注意到,在這個階段,AS中的所有其他邊界路由器將會把前往 鏈路AC的分組隧傳到路由器A,路由器A隨后將實現(xiàn)其自己的隧道,而 這樣單純地立即去除隧道將會導致如上所述的環(huán)路問題。因此,路由器A 發(fā)送BGP消息,該BGP消息實際上指示出經(jīng)由pe-se隧道到達的目的地很 快會變得不可達。具體而言,iBGP通告被路由器A發(fā)送,其中為該路由 賦予一個很低的local-pref (本地優(yōu)選)值,例如0值,該值被標準BGP 判決過程認為是最壞路由。結果,該路由將不會被從其他BGP路由器的 RIB中去除,從而前綴將會保持可達,只不過優(yōu)選值較低。因此,當某個 路由器(例如路由器E)接收到iBGP消息時,它可修改其FIB并選擇新 的BGP下一跳(從而選擇新的隧道)來到達目的地,例如路由器B。由于 中轉分組將會被隧傳到新的BGP下一跳,因此不會出現(xiàn)環(huán)路,因為IGP 路由表被假定為穩(wěn)定且無環(huán)路的。在分組在路由器B處被解封后,它將沿 著鏈路BD被轉發(fā),這在上文中已更詳細描述。在BGP邊界路由器更新其 FIB的過渡時段期間, 一些分組可能繼續(xù)被隧傳到路由器A,而路由器A 隨后將簡單地利用尚未被去除的pe-se隧道來進行隧傳。但是,邊界路由 器最終將在iBGP中收斂在新的路徑上,該新路徑將已由路由器B單獨地 通告。 一旦路由器A在步驟1006識別出沒有更多分組在使用pe-se保護隧 道去往路由器B,則在步驟1008它就發(fā)送其BGP撤回消息并且在步驟 IOIO去除隧道。將會看到,上述方法的一個結果是通過適當?shù)匦薷睦矛F(xiàn)有轉發(fā)機制 為域間鏈路提供了快速保護機制。此外,在不再需要時可以以適當?shù)姆绞?去除保護機制,從而確保在此過程期間不會出現(xiàn)環(huán)路。將會意識到,這里描述的方法可以以任何適當?shù)姆绞讲⑶以谌魏芜m當 的平臺上實現(xiàn),并且所描述的各種步驟可以用硬件或軟件以任何適當?shù)姆?式實現(xiàn)。4.0實現(xiàn)機構-硬件概述圖11是圖示出可實現(xiàn)該方法的計算機系統(tǒng)140的框圖。該方法是利 用運行在諸如路由器設備之類的網(wǎng)絡元件上的一個或多個計算機程序來實現(xiàn)的。因此,在此實施例中,計算機系統(tǒng)140是路由器。計算機系統(tǒng)140包括用于傳輸信息的總線142或其他通信機構以及與 總線142相耦合用于處理信息的處理器144。計算機系統(tǒng)140還包括諸如 隨機存取存儲器(RAM)、閃存或其他動態(tài)存儲設備之類的主存儲器 146,其耦合到總線142,用于存儲信息和處理器144要執(zhí)行的指令。主存 儲器146還可用于存儲在處理器144執(zhí)行指令期間的臨時變量或其他中間 信息。計算機系統(tǒng)140還包括只讀存儲器(ROM) 148或其他靜態(tài)存儲設 備,其耦合到總線142,用于存儲靜態(tài)信息和處理器144的指令。提供了 諸如磁盤、閃存或光盤之類的存儲設備150,其耦合到總線142,用于存 儲信息和指令。通信接口 158可以耦合到總線142,以用于將信息和命令選擇傳輸?shù)?處理器144。接口 158是傳統(tǒng)串行接口,例如RS-232或RS-422接口。外 部終端152或其他計算機系統(tǒng)連接到計算機系統(tǒng)140,并利用接口 158向 其提供命令。運行在計算機系統(tǒng)140中的固件或軟件提供終端接口或基于 字符的命令接口,以便外部命令可被提供給計算機系統(tǒng)。交換系統(tǒng)156耦合到總線142,并具有輸入接口和到外部網(wǎng)絡元件的 相應輸出接口 (總地標注為159)。外部網(wǎng)絡元件可包括多個額外的路由 器160或耦合到一個或多個主機或路由器的本地網(wǎng)絡,或者諸如因特網(wǎng)之 類的具有一個或多個服務器的全局網(wǎng)絡。交換系統(tǒng)156根據(jù)公知的預定協(xié) 議和慣例將到達輸入接口的信息流量交換到輸出接口 159。例如,交換系 統(tǒng)156與處理器144合作,可確定到達輸入接口的數(shù)據(jù)分組的目的地,并 利用輸出接口將其發(fā)送到正確的目的地。目的地可包括主機、服務器、其 他末端站或者本地網(wǎng)絡或因特網(wǎng)中的其他路由和交換設備。計算機系統(tǒng)140作為路由器實現(xiàn)上述方法。該實現(xiàn)是由計算機系統(tǒng) 140響應于處理器144執(zhí)行包含在主存儲器146中的一條或多條指令的一 個或多個序列而提供的。這種指令可以被從另一計算機可讀介質(zhì)(例如存儲設備150)讀取到主存儲器146中。包含在主存儲器146中的指令序列 的執(zhí)行使得處理器144執(zhí)行這里描述的過程步驟。多處理配置中的一個或 多個處理器也可被用來執(zhí)行包含在主存儲器146中的指令序列。在替換實 施例中,可以使用硬線電路來替代軟件指令或與軟件指令相組合以實現(xiàn)該 方法。從而,實施例并不限于硬件電路和軟件的任何特定組合。這里所用的術語"計算機可讀介質(zhì)"指參與向處理器144提供指令以 供執(zhí)行的任何介質(zhì)。這種介質(zhì)可以采取許多形式,包括但不限于非易失性 介質(zhì)、易失性介質(zhì)和傳輸介質(zhì)。非易失性介質(zhì)例如包括光盤或磁盤,如存 儲設備150。易失性介質(zhì)包括動態(tài)存儲器,如主存儲器146。傳輸介質(zhì)包 括同軸電纜、銅線和光纖,包括含總線142的線路。傳輸介質(zhì)也可以采取 諸如聲波或電磁波之類的無線鏈路的形式,例如在無線電波和紅外數(shù)據(jù)通 信期間生成的那些。計算機可讀介質(zhì)的常見形式例如包括軟盤、柔性盤、硬盤、磁帶或任 何其他磁介質(zhì),CD-ROM、任何其他光介質(zhì),穿孔卡、紙帶、任何其他具 有孔圖案的物理介質(zhì),RAM、 PROM禾n EPROM、 FLASH-EPROM、任何 其他存儲器芯片或卡盤,下文中描述的載波,或者計算機可以讀取的任何 其他介質(zhì)。計算機可讀介質(zhì)的各種形式可用于將一條或多條指令的一個或多個序 列傳送到處理器144以供執(zhí)行。例如,指令可以首先承載在遠程計算機的 磁盤上。遠程計算機可以將指令加載到其動態(tài)存儲器中,并利用調(diào)制解調(diào) 器通過電話線發(fā)送指令。計算機系統(tǒng)140本地的調(diào)制解調(diào)器可以接收電話 線上的數(shù)據(jù),并使用紅外發(fā)射器來將數(shù)據(jù)轉換為紅外信號。耦合到總線 142的紅外檢測器可以接收在紅外信號中攜帶的數(shù)據(jù),并且將數(shù)據(jù)置于總 線142上。總線142將數(shù)據(jù)傳送到主存儲器146,處理器144從主存儲器 146取得指令并執(zhí)行指令。主存儲器146接收的指令可以可選地在被處理 器144執(zhí)行之前或之后存儲到存儲設備150上。接口 159還提供到連接到本地網(wǎng)絡的網(wǎng)絡鏈路的雙向數(shù)據(jù)通信耦合。 例如,接口 159可以是綜合業(yè)務數(shù)字網(wǎng)(ISDN)卡或調(diào)制解調(diào)器,以提供 到相應類型電話線的數(shù)據(jù)通信連接。又例如,接口 159可以是局域網(wǎng)(LAN)卡,以提供到兼容LAN的數(shù)據(jù)通信連接。也可以實現(xiàn)無線鏈 路。在任何這種實現(xiàn)方式中,接口 519發(fā)送并接收電的、電磁的或光信號,這些信號攜帶了代表各類信息的數(shù)字數(shù)據(jù)流。網(wǎng)絡鏈路一般通過一個或多個網(wǎng)絡提供到其他數(shù)據(jù)設備的數(shù)據(jù)通信。 例如,網(wǎng)絡鏈路可以通過本地網(wǎng)絡提供到主機計算機或由因特網(wǎng)服務提供商(ISP)操作的數(shù)據(jù)設備的連接。ISP進而通過全球分組數(shù)據(jù)通信網(wǎng)絡 (現(xiàn)在通常稱為"因特網(wǎng)")提供數(shù)據(jù)通信服務。本地網(wǎng)絡和因特網(wǎng)都使 用攜帶數(shù)字數(shù)據(jù)流的電的、電磁的或光信號。經(jīng)過各種網(wǎng)絡的信號和在網(wǎng) 絡鏈路上并經(jīng)過接口 159的信號(這些信號攜帶去往和來自計算機系統(tǒng) 140的數(shù)字數(shù)據(jù))是傳輸信息的載波的示例性形式。計算機系統(tǒng)140可以通過網(wǎng)絡、網(wǎng)絡鏈路和接口 159發(fā)送消息并接收 數(shù)據(jù),包括程序代碼。在因特網(wǎng)示例中,服務器可以通過因特網(wǎng)、ISP 、 本地網(wǎng)絡和通信接口 158傳輸應用程序的請求代碼。 一個這種下載的應用 程序提供了這里描述的方法。接收到的代碼可以在接收時被處理器144執(zhí)行,并且/或者被存儲在存 儲設備150或其他非易失性存儲設備中以供以后執(zhí)行。以這種方式,計算 機系統(tǒng)140可以獲得載波形式的應用代碼。5.0擴展和替換在以上說明書中,已參考特定實施例描述了本發(fā)明。但是,應當清 楚,在不脫離本發(fā)明更寬廣的精神和范圍的前提下,可以進行各種修改和 改變。因此,說明書和附圖都應當認為是示例性的,而非限制性的。所描 述的方面或示例或實施例在適當時可以并列或交換。將會意識到,可以采用任何適當?shù)腂GP禾n IGP機制,并且可以用任 何適當?shù)姆绞?例如利用MPLS或IP隧道)來實現(xiàn)隧傳。還將會意識 到,可以實現(xiàn)任何適當?shù)腣PN方法。雖然論述針對的是每個接口單個 eBGP會話的情況,但是在適當時也可適應于例如工作在每BGP對等體而 不是每接口的基礎上的多個訪問接口。在VPN實現(xiàn)的情況下,可以為該 情況下的每個個體對等體配置RD。
權利要求
1.一種方法,包括識別可達到第一前綴集合的第一自治系統(tǒng)(AS)間鏈路;識別可達到所述第一前綴集合的替換AS間鏈路;以及構造去往所述替換AS間鏈路的備用隧道。
2. 如權利要求1所述的方法,還包括在可達到所述第一 AS間鏈路的構造路由器處執(zhí)行識別和構造步驟,其中所述替換AS間鏈路包括從第二備用路由器起的第二 AS間鏈路。
3. 如權利要求2所述的方法,還包括構造從所述構造路由器到所述備用路由器的備用隧道。
4. 如權利要求1所述的方法,還包括接收來自所述AS中的一個或多個路由器的候選備用路徑通知。
5. 如權利要求4所述的方法,還包括通過所述候選備用路徑通知識別所述候選備用路徑的優(yōu)先級和下一跳 中的至少一個。
6. 如權利要求5所述的方法,還包括選擇符合下一跳或者優(yōu)先級標準中的至少一個的候選備用路徑來作為 用于所述備用隧道的路徑。
7. 如權利要求1所述的方法,還包括 識別所述第一AS間鏈路的故障;以及作為響應,利用所述備用隧道來去到所述替換AS間鏈路。
8. 如權利要求7所述的方法,還包括以外部隧道封裝來利用所述備用隧道,其中所述外部隧道封裝是所述替換AS間鏈路的端點的地址;以及以內(nèi)部隧道封裝來利用所述備用隧道,其中所述內(nèi)部隧道封裝是端點 下一跳。
9. 一種方法,包括針對自治系統(tǒng)(AS)間鏈路的故障在AS中建立備用路徑;確定所述AS間鏈路發(fā)生了故障;經(jīng)由所述備用路徑來轉發(fā)去往故障鏈路的分組;以及 在所述分組中包括環(huán)路防止屬性。
10. 如權利要求9所述的方法,其中所述環(huán)路防止屬性包括指示出所 述分組已被經(jīng)由備用路徑轉發(fā)的備用路徑指示符。
11. 如權利要求IO所述的方法,還包括 在AS組件處接收具有備用路徑指示符的分組;以及 不沿著另 一備用路徑轉發(fā)所述分組。
12. 如權利要求9所述的方法,其中所述環(huán)路防止屬性包括轉發(fā)指
13.如權利要求12所述的方法,還包括 接收包括所述轉發(fā)指令的分組; 推翻正常轉發(fā);以及 根據(jù)所述轉發(fā)指令來轉發(fā)所述分組。
14.一種方法,包括在第一自治系統(tǒng)(AS)的第一邊界路由器處構造去往遠程AS的主路由;在所述第一邊界路由器處構造經(jīng)由所述第一 AS中的第二邊界路由器 去往所述遠程AS的替換路由;在所述主路由故障后激發(fā)從所述第一邊界路由器到所述第二邊界路由 器的備用隧道;以及將故障消息發(fā)送到所述第一 AS的一個或多個其他邊界路由器。
15. 如權利要求14所述的方法,其中所述故障消息包括撤回消息。
16. 如權利要求14所述的方法,還包括在接收到所述故障消息后,利用第二備用隧道將前往所述第二 AS的 數(shù)據(jù)從所述第一 AS中的第三邊界路由器隧傳到所述第二邊界路由器。
17. 如權利要求14所述的方法,還包括 在收斂時段期滿后去除所述備用隧道。
18. 如權利要求14所述的方法,還包括檢測所述主路由的故障; 將所述主路由設置到低優(yōu)選值;以及 在所述故障消息中通告所述低優(yōu)選值。
19. 如權利要求14所述的方法,還包括在所述一個或多個其他邊界路由器處接收所述通告; 在所述一個或多個其他邊界路由器處得出替換路由;以及 利用第二備用隧道將先前去往所述主路由的數(shù)據(jù)元素轉發(fā)到所得出的 替換路由。
20. 如權利要求14所述的方法,還包括確定所述第一邊界路由器不再接收前往所述主路由的數(shù)據(jù)元素;并且 作為響應去除所述備用隧道。
21. —種方法,包括 識別第一自治系統(tǒng)(AS)間路徑; 識別具有端點的替換AS間鏈路;以及構造去往所述替換AS間鏈路的所述端點的備用隧道。
22. 如權利要求21所述的方法,其中所述替換AS間鏈路源自第一 AS,并且其中所述端點在所述第一 AS中。
23. 如權利要求21所述的方法,其中所述替換AS間鏈路源自第一 AS,并且其中所述端點在非所述第一AS的遠程AS中。
24. 如權利要求23所述的方法,還包括 接收來自所述遠程AS的通告;以及 從所述通告得出所述替換AS間鏈路。
全文摘要
在本發(fā)明的實施例中,描述了針對第一自治系統(tǒng)(AS)間鏈路(例如可達到第一前綴集合)的故障在AS中構造和實現(xiàn)備用路徑。在一個或多個實施例中,一種方法包括識別可達到所述多個前綴的替換AS間鏈路,并且構造去往該鏈路的隧道。另外,在一個或多個實施例中,一種方法包括識別替換AS間路徑并且構造去往該替換路徑上的端點的隧道。另外,在一個或多個實施例中,一種方法包括經(jīng)由備用路徑來轉發(fā)去往故障鏈路的數(shù)據(jù)元素,并且在分組中包括環(huán)路防止屬性。另外,描述了一種管理AS中數(shù)據(jù)的轉發(fā)(例如邊界路由器之間的通信)的方法。
文檔編號H04L12/26GK101326762SQ200680039334
公開日2008年12月17日 申請日期2006年10月18日 優(yōu)先權日2005年10月20日
發(fā)明者伊恩·邁克爾·查爾斯·尚德, 克拉倫斯·菲爾斯非斯, 奧利維爾·波納凡圖爾, 戴維·D·沃德, 斯圖爾特·布賴恩特, 斯特凡諾·B·普雷維蒂, 格爾吉·納拉瓦德, 皮埃爾·佛朗克斯, 約翰·伽萊恩·斯卡德 申請人:思科技術公司