專利名稱:用于同步的路由系統(tǒng)與方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及路由系統(tǒng),特別是路由系統(tǒng)的失效轉(zhuǎn)移(failover),更具體地說(shuō),涉及失效轉(zhuǎn)移之后的對(duì)等路由系統(tǒng)的再同步。
背景技術(shù):
路由器和路由系統(tǒng)提供分組交換網(wǎng)絡(luò)的節(jié)點(diǎn)之間的分組的路由。為了增強(qiáng)分組交換網(wǎng)絡(luò)的可靠性,在網(wǎng)絡(luò)節(jié)點(diǎn)處操作的路由系統(tǒng)可以包括冗余路由設(shè)備。例如,路由系統(tǒng)可以包括可以正常執(zhí)行或管理分組轉(zhuǎn)發(fā)的主要或活動(dòng)路由處理器,以及在主要路由處理器失效時(shí)接管主要路由處理器的輔助或備用路由處理器。然而,從主要路由處理器到輔助路由處理器的轉(zhuǎn)接(即,失效轉(zhuǎn)移)常常是破壞性事件。在失效轉(zhuǎn)移時(shí),輔助路由處理器應(yīng)當(dāng)反映主要路由處理器的當(dāng)前狀態(tài)。許多傳統(tǒng)路由系統(tǒng)使用活動(dòng)復(fù)制技術(shù)來(lái)用于失效過(guò)程。在這些系統(tǒng)中,狀態(tài)信息被不斷保存(即,被設(shè)置檢查點(diǎn))到備用處理器。利用活動(dòng)復(fù)制,可以快速?gòu)氖е谢謴?fù),但是在正常的執(zhí)行中存在大的開(kāi)銷。活動(dòng)復(fù)制使用由兩個(gè)處理器資源(例如,兩個(gè)處理器和存儲(chǔ)器)構(gòu)成的冗余結(jié)構(gòu)?;顒?dòng)復(fù)制的一個(gè)問(wèn)題是,由于在系統(tǒng)運(yùn)行時(shí)不斷執(zhí)行復(fù)制,所以處理資源的使用不經(jīng)濟(jì)。
BGP-4(邊界網(wǎng)關(guān)協(xié)議)路由協(xié)議是用于因特網(wǎng)路由的主要協(xié)議之一,并且是基于TCP傳輸?shù)脑鲋祬f(xié)議。BGP的一個(gè)版本由Y.Rekhter和T.Li編輯的日期為1995年3月名為“A Border Gateway Protocol 4(BGP-4)”的網(wǎng)絡(luò)工作組的請(qǐng)求注解(RFC)1771(被稱作RFC 1771)所描述,而其它版本在RFC 1771后續(xù)的更新和修訂中進(jìn)行了描述。BGP路由信息的動(dòng)態(tài)交換在E.Chen編輯的日期為2000年9月名為“Route Refresh Capabilityfor BGP-4”的網(wǎng)絡(luò)工作組的RFC 2918中描述。TCP傳輸協(xié)議本身相當(dāng)復(fù)雜的事實(shí),以及通常包含的BGP協(xié)議和純數(shù)據(jù)量的復(fù)雜性,使得難以使用主要和備用路由處理器來(lái)支持高度可靠的BGP路由系統(tǒng),這是因?yàn)樵谑мD(zhuǎn)移之后,難以使BGP路由器與BGP對(duì)等路由器同步,并且難以維持TCP狀態(tài)。傳統(tǒng)系統(tǒng)或者改變協(xié)議或者使用大量的檢查點(diǎn)操作。例如,一些傳統(tǒng)方法基本對(duì)所有狀態(tài)數(shù)據(jù)(TCP狀態(tài)和BGP協(xié)議狀態(tài)兩者)進(jìn)行檢查點(diǎn)操作。這種大量的檢查點(diǎn)操作消耗了過(guò)多的系統(tǒng)資源,從而降低了系統(tǒng)性能。
因此,通常需要一種改進(jìn)的路由系統(tǒng)與路由方法。因此,還需要一種減少在正常路由操作期間所需的檢查點(diǎn)操作量的路由系統(tǒng)與方法。還需要一種在主要路由處理器的失效轉(zhuǎn)移之后與對(duì)等路由系統(tǒng)再同步的路由系統(tǒng)與方法。還需要一種支持邊界網(wǎng)關(guān)協(xié)議(BGP)并在主要路由處理器的失效轉(zhuǎn)移之后與對(duì)等路由系統(tǒng)再同步而無(wú)需過(guò)多檢查點(diǎn)操作的路由系統(tǒng)與方法。還需要一種在主要路由處理器的失效轉(zhuǎn)移之后與對(duì)等路由系統(tǒng)再同步而無(wú)需要求對(duì)等系統(tǒng)更新它們的軟件的路由系統(tǒng)與方法。
發(fā)明內(nèi)容
在一個(gè)實(shí)施例中,本發(fā)明提供了一種用于在邊界網(wǎng)關(guān)協(xié)議(BGP)路由系統(tǒng)的主要處理器失效之后使BGP路由系統(tǒng)與對(duì)等BGP路由系統(tǒng)同步的方法。在該實(shí)施例中,主要處理器使用初始路由數(shù)據(jù)庫(kù)來(lái)執(zhí)行路由操作,并且維護(hù)可由備用路由處理器訪問(wèn)的前綴表,該前綴表列出了初始路由數(shù)據(jù)庫(kù)的路由的前綴。在主要路由處理器失效后,備用路由處理器可以使用該前綴表。在檢測(cè)到主要路由處理器失效后由備用處理器執(zhí)行的方法包括向BGP對(duì)等路由系統(tǒng)發(fā)送BGP路由刷新消息。BGP路由刷新消息請(qǐng)求由BGP對(duì)等路由系統(tǒng)所支持的路由。在該實(shí)施例中,該方法還包括響應(yīng)于BGP路由刷新消息而從BGP對(duì)等路由系統(tǒng)接收路由,以及從接收自BGP對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用(即,再生)路由數(shù)據(jù)庫(kù)。備用路由數(shù)據(jù)庫(kù)中的路由的前綴與前綴表中的前綴相比較,并且對(duì)于具有在前綴表中列出而沒(méi)有在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將BGP路由撤銷消息發(fā)送到對(duì)等路由系統(tǒng)。
在另一個(gè)實(shí)施例中,本發(fā)明提供了一種路由系統(tǒng),該路由系統(tǒng)包括主要路由處理器、備用路由處理器以及多個(gè)線路接口,以根據(jù)路由處理器管理的路由數(shù)據(jù)庫(kù)來(lái)路由通信。響應(yīng)于檢測(cè)到主要路由處理器的失效,備用路由處理器從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù),比較備用路由數(shù)據(jù)庫(kù)中的路由的前綴和前綴表中的前綴,以及對(duì)于具有在前綴表中列出而沒(méi)有在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,發(fā)送路由撤銷消息到對(duì)等路由系統(tǒng)。在檢測(cè)到主要路由處理器的失效之后,備用路由處理器被指示執(zhí)行失效轉(zhuǎn)移過(guò)程以使能由備用處理器所執(zhí)行的路由管理。失效轉(zhuǎn)移過(guò)程包括從對(duì)等路由系統(tǒng)請(qǐng)求路由。通過(guò)去除冗余路由,備用路由處理器可以產(chǎn)生備用路由數(shù)據(jù)庫(kù),其中去除冗余路由的步驟是通過(guò)執(zhí)行最優(yōu)路徑算法以消除從對(duì)等路由系統(tǒng)接收的冗余路由而進(jìn)行的。
當(dāng)從對(duì)等路由系統(tǒng)之一接收到用于指示由該對(duì)等路由系統(tǒng)所處理的新路由的路由更新消息時(shí),新路由會(huì)被添加到當(dāng)前的路由數(shù)據(jù)庫(kù)中。作為檢查點(diǎn)操作的一部分,當(dāng)新路由的前綴還沒(méi)有列入前綴表中時(shí),可以用該前綴更新前綴表。
權(quán)利要求涉及了本發(fā)明的多種實(shí)施例。然而,當(dāng)結(jié)合附圖考慮時(shí),詳細(xì)的說(shuō)明提供了對(duì)本發(fā)明更全面的理解,整個(gè)附圖中相似的標(biāo)號(hào)指代類似的項(xiàng)目圖1圖示了根據(jù)本發(fā)明實(shí)施例的路由系統(tǒng)的網(wǎng)絡(luò);圖2是根據(jù)本發(fā)明實(shí)施例的路由數(shù)據(jù)庫(kù)的示例;圖3是根據(jù)本發(fā)明實(shí)施例的路由系統(tǒng)的功能框圖;圖4是根據(jù)本發(fā)明實(shí)施例的前綴表示例;圖5是根據(jù)本發(fā)明實(shí)施例的路由系統(tǒng)同步過(guò)程的流程圖;以及圖6是根據(jù)本發(fā)明實(shí)施例的恢復(fù)過(guò)程的流程圖。
具體實(shí)施例方式
下面的說(shuō)明和附圖舉例說(shuō)明了足以使本領(lǐng)域技術(shù)人員進(jìn)行實(shí)施的本發(fā)明的具體實(shí)施例。其它實(shí)施例可以加入結(jié)構(gòu)、邏輯、電氣、過(guò)程以及其它改變。示例僅僅代表了可能的變化形式。除非明確要求,否則各個(gè)組件和功能都是可選的,并且操作順序可以改變。一些實(shí)施例的部分或特征可以被包括在其它實(shí)施例中或者代替其它實(shí)施例中的部分或特征。本發(fā)明的范圍覆蓋權(quán)利要求的全部范圍以及所有可得到的等同形式。
在多種實(shí)施例中,本發(fā)明提供了一種改進(jìn)的路由系統(tǒng)和路由方法。在實(shí)施例中,本發(fā)明還提供了一種用于減少在正常路由操作期間所需的檢查點(diǎn)操作量的路由系統(tǒng)和方法。在其它實(shí)施例中,本發(fā)明提供了一種用于在主要路由處理器失效轉(zhuǎn)移之后與對(duì)等路由系統(tǒng)再同步的路由系統(tǒng)與方法。在其它實(shí)施例中,本發(fā)明還提供了一種支持邊界網(wǎng)關(guān)協(xié)議(BGP)并在主要路由處理器的失效轉(zhuǎn)移之后與對(duì)等路由系統(tǒng)再同步而無(wú)需過(guò)多檢查點(diǎn)操作的路由系統(tǒng)與方法。在其它實(shí)施例中,本發(fā)明還提供了一種在主要路由處理器的失效轉(zhuǎn)移之后與對(duì)等路由系統(tǒng)再同步而無(wú)需要求對(duì)等系統(tǒng)更新它們的軟件的路由系統(tǒng)與方法。在多種實(shí)施例中,本發(fā)明可以支持用于路由IPv4協(xié)議分組、IPv6協(xié)議分組、無(wú)連接網(wǎng)絡(luò)服務(wù)(CLNS)分組以及根據(jù)其它協(xié)議配置的分組的BGP。
本發(fā)明的實(shí)施例通過(guò)在正常操作期間,對(duì)路由前綴表中的路由前綴進(jìn)行檢查點(diǎn)操作,提供了透明路由系統(tǒng)失效轉(zhuǎn)移。當(dāng)新的路由被添加到路由數(shù)據(jù)庫(kù)中時(shí),路由前綴表在前綴表中沒(méi)有該新路由的前綴時(shí)被更新。在主要路由處理器失效之后,通過(guò)使用該前綴表來(lái)同步與對(duì)等路由系統(tǒng)的路由。在檢測(cè)到失效之后,備用路由處理器響應(yīng)于該失效而從對(duì)等路由系統(tǒng)請(qǐng)求路由,并且從接收自對(duì)等路由系統(tǒng)的路由中生成備用路由數(shù)據(jù)庫(kù)。備用路由處理器隨后為備用路由數(shù)據(jù)庫(kù)中的路由向?qū)Φ嚷酚上到y(tǒng)發(fā)送路由通告消息。備用路由處理器還比較備用路由數(shù)據(jù)庫(kù)中的路由前綴和前綴表中的前綴,并且對(duì)于具有在前綴表中列出而沒(méi)有在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)出的前綴的路由,發(fā)送路由撤銷消息到對(duì)等路由系統(tǒng)。
在本發(fā)明的一些實(shí)施例中,可以支持邊界網(wǎng)關(guān)協(xié)議(BGP)。BGP的一個(gè)例子由Y.Rekhter和T.Li編輯的日期為1995年3月名為“A BorderGateway Protocol 4(BGP-4)”的網(wǎng)絡(luò)工作組的請(qǐng)求注解1771(被稱作RFC 1771)所描述。RFC 1771的這個(gè)版本以及任意后續(xù)版本和修訂版在這里作為參考而被引用。
圖1圖示了根據(jù)本發(fā)明實(shí)施例的路由系統(tǒng)的網(wǎng)絡(luò)。網(wǎng)絡(luò)100包括通過(guò)鏈路104與對(duì)等路由系統(tǒng)通信的多個(gè)路由系統(tǒng)(RS)102。對(duì)等路由系統(tǒng)指的是具體路由系統(tǒng)可直接訪問(wèn)而無(wú)需通過(guò)中間路由系統(tǒng)來(lái)請(qǐng)求路由的路由系統(tǒng)。例如,路由系統(tǒng)106的對(duì)等路由系統(tǒng)可以包括路由系統(tǒng)108、110、112和114。對(duì)等路由系統(tǒng)還包括下述路由系統(tǒng),這些路由系統(tǒng)可能沒(méi)有通過(guò)鏈路直接耦合,但是可以象它們被直接耦合那樣進(jìn)行通信。圖1可以僅僅示出網(wǎng)絡(luò)100的一小部分,網(wǎng)絡(luò)100可以包括成千上萬(wàn)或更多的路由系統(tǒng)102。鏈路104可以包括用于在路由系統(tǒng)之間提供分組數(shù)據(jù)通信的任何類型通信鏈路。鏈路104可以包括任何類型的通信鏈路,包括無(wú)線鏈路、光鏈路、有線鏈路和這里沒(méi)有列舉的其它鏈路。
在一個(gè)實(shí)施例中,至少一些路由系統(tǒng)102可以根據(jù)BGP執(zhí)行分組轉(zhuǎn)發(fā)。根據(jù)該實(shí)施例,路由表最初在節(jié)點(diǎn)(例如,系統(tǒng)102)之間被交換,并且可以由每個(gè)節(jié)點(diǎn)根據(jù)其本地存儲(chǔ)的路由數(shù)據(jù)庫(kù)來(lái)執(zhí)行路由。在節(jié)點(diǎn)之間傳送增量更新以更新它們的路由數(shù)據(jù)庫(kù)。每個(gè)路由系統(tǒng)可以在連接持續(xù)期間保持包括來(lái)自其對(duì)等系統(tǒng)的當(dāng)前路由信息的路由數(shù)據(jù)庫(kù)。可以周期性發(fā)送保活(keep-alive)消息以幫助確保連接的活性。
圖2是根據(jù)本發(fā)明實(shí)施例的路由數(shù)據(jù)庫(kù)的部分示例??梢杂陕酚上到y(tǒng)從接收自對(duì)等節(jié)點(diǎn)的路由信息中生成路由數(shù)據(jù)庫(kù)200。接收自對(duì)等節(jié)點(diǎn)的路由信息可以包括路由表或者可以是路由更新消息的形式。如這里所使用的,術(shù)語(yǔ)“路由數(shù)據(jù)庫(kù)”可以包括用于路由的任何數(shù)據(jù)結(jié)構(gòu)。在一些實(shí)施例中,包括BGP的實(shí)施例,術(shù)語(yǔ)“路由數(shù)據(jù)庫(kù)”可以指代路由信息庫(kù)(RIB)。在BGP實(shí)施例中,產(chǎn)生備用本地RIB,并且備用本地RIB被用于產(chǎn)生備用轉(zhuǎn)發(fā)信息庫(kù)(FIB),其中數(shù)據(jù)可以被下載到線路卡。
路由數(shù)據(jù)庫(kù)200可以包括前綴欄202,其可以包括諸如IP地址前綴的前綴。一個(gè)示例IP地址前綴是“192.168.42/24”,其中“/24”可以指代前綴中的多個(gè)位。該示例IP前綴可以是IP地址的一部分。該示例前綴192.168.42/23將是23位前綴,其自身包括192.168.42/24和192.168.43/24以及所有更長(zhǎng)的前綴(即,192.168.42.*/[25-32]和192.168.43.*/[25-32])。192.168.42/24的另一種寫(xiě)法是利用指示有效位的“網(wǎng)絡(luò)掩碼”。如果以上述方式表示的話,將是192.168.42.0和255.255.255.0,其中第一點(diǎn)分四元組是地址,而第二點(diǎn)分四元組是掩碼。對(duì)于IPv4地址,可以具有多達(dá)232個(gè)前綴。欄202中的等同前綴可以與用于路由數(shù)據(jù)的不只一個(gè)路由或路徑相關(guān)聯(lián)。欄204標(biāo)識(shí)特定路由的下一跳地址。下一跳地址可以是應(yīng)當(dāng)被用作去往更新消息中所標(biāo)識(shí)的目的地的下一跳的邊界路由器的IP地址。
路由數(shù)據(jù)庫(kù)200中的條目還可以包括欄206,其可以標(biāo)識(shí)每個(gè)路由的自治系統(tǒng)(AS)路徑屬性。在支持BGP-4的一個(gè)實(shí)施例中,可以由單個(gè)IP前綴表示一組可到達(dá)的目的地。在欄202中具有相同前綴的路由可以具有欄206中所標(biāo)識(shí)的不同AS路徑。通過(guò)具有欄206中標(biāo)識(shí)的不同AS路徑或者在欄208中標(biāo)識(shí)的不同路徑屬性,路由數(shù)據(jù)庫(kù)200可以被彼此區(qū)分。舉例來(lái)說(shuō),路徑屬性可以標(biāo)識(shí)已經(jīng)發(fā)送了特定路由的對(duì)等系統(tǒng)。在一些實(shí)施例中(例如,一些非BGP實(shí)施例)路由數(shù)據(jù)庫(kù)200可以包括比所示出的用于每個(gè)路由的欄數(shù)更多或更少的欄數(shù)。
諸如路由系統(tǒng)102(圖1)的路由系統(tǒng)可以從路由信息(例如,更新消息)中生成路由數(shù)據(jù)庫(kù)200,所述路由信息可能接收自對(duì)等路由系統(tǒng)。更新消息可以標(biāo)識(shí)由對(duì)等路由系統(tǒng)所支持的路由,并且可以包括前綴和AS路徑。更新消息還可以標(biāo)識(shí)對(duì)等路由系統(tǒng)不再支持的路由。在這種情況下,可以在接收自對(duì)等系統(tǒng)的更新消息的撤銷路由字段中指示路由。
在一個(gè)實(shí)施例中,更新消息可以用于在對(duì)等路由系統(tǒng)之間傳輸路由信息。更新分組中的信息可以用于構(gòu)建描述多個(gè)自治系統(tǒng)之間關(guān)系的圖表。通過(guò)提供規(guī)則,路由信息循環(huán),并且一些其它的異??梢员粰z測(cè)到并被從AS間路由中去除。在該實(shí)施例中,更新消息可以告知對(duì)等系統(tǒng)一個(gè)或多個(gè)可行路由,或者從服務(wù)中撤銷多個(gè)不可行的路由。更新消息還可以同時(shí)告知一個(gè)或多個(gè)可行路由并從服務(wù)撤銷多個(gè)不可行路由。更新消息可以包括固定大小的頭部,并且可選地可包括其它字段,例如不可行路由長(zhǎng)度字段、撤銷路由字段、總路徑屬性長(zhǎng)度字段、路徑屬性字段和網(wǎng)絡(luò)層能到達(dá)性信息字段。
不可行路由長(zhǎng)度字段可以包括兩個(gè)八位字節(jié)無(wú)符號(hào)整數(shù),用于以八位字節(jié)來(lái)指示撤銷路由字段的總長(zhǎng)度。它的值還可以確定網(wǎng)絡(luò)層能到達(dá)性信息字段的長(zhǎng)度。零值可以指示沒(méi)有任何路由從服務(wù)中撤銷,以及在該更新消息中不存在撤銷路由字段。撤銷路由字段可以是可變長(zhǎng)度字段,其含有要從服務(wù)中撤銷的路由的IP地址前綴列表。每個(gè)IP地址前綴可以被編碼為<長(zhǎng)度,前綴>的2元組形式。長(zhǎng)度字段可以指示IP地址前綴中的位的長(zhǎng)度。零長(zhǎng)度可以指示匹配所有IP地址的前綴。前綴字段可以含有IP地址前綴,其后跟隨足夠的尾隨位以使字段的末端落于八位字節(jié)的界上。總路徑屬性長(zhǎng)度可以是兩個(gè)八位字節(jié)無(wú)符號(hào)整數(shù),用于以八位字節(jié)指示路徑屬性字段的總長(zhǎng)度。零值可以指示在該更新消息中不存在任何網(wǎng)絡(luò)層能到達(dá)性信息字段。路徑屬性可以是路徑屬性的可變長(zhǎng)度序列。路徑屬性可以包括定義路徑信息的發(fā)端的起點(diǎn)。AS路徑是可以由一系列AS路徑段構(gòu)成的屬性。每個(gè)AS路徑段可以由三元組<路徑段類型、路徑段長(zhǎng)度、路徑段值>表示。盡管這里描述的本發(fā)明的實(shí)施例支持用于IPv4分組的BGP,但是在其它實(shí)施例中,本發(fā)明可以支持用于路由IPv6協(xié)議分組、無(wú)連接網(wǎng)絡(luò)服務(wù)(CLNS)分組以及根據(jù)其它協(xié)議配置的分組的BGP。在一個(gè)實(shí)施例中,更新消息僅需要標(biāo)識(shí)由前綴撤銷的路由。
圖3是根據(jù)本發(fā)明實(shí)施例的路由系統(tǒng)的功能框圖。路由系統(tǒng)300可以如這里所描述的那樣執(zhí)行在對(duì)等路由系統(tǒng)之間的路由。路由系統(tǒng)300可以適于用作路由系統(tǒng)102(圖1)之一,盡管其它路由系統(tǒng)也是適用的。路由系統(tǒng)300可以包括主要路由處理器302、備用路由處理器304和多個(gè)線路接口306,以根據(jù)路由處理器所管理的路由數(shù)據(jù)庫(kù)來(lái)對(duì)通過(guò)鏈路308接收的通信進(jìn)行路由。路由數(shù)據(jù)庫(kù)200(圖2)是路由處理器所使用的適當(dāng)路由數(shù)據(jù)庫(kù)的示例。通過(guò)在正常操作期間通過(guò)維護(hù)路由前綴表對(duì)路由前綴進(jìn)行檢查點(diǎn)操作,路由系統(tǒng)300可以提供充分透明的失效轉(zhuǎn)移。適當(dāng)前綴表的示例在圖4中圖示。響應(yīng)于檢測(cè)到主要路由處理器302失效,備用路由處理器304從接收自對(duì)等路由系統(tǒng)的路由中生成備用(例如,再生)路由數(shù)據(jù)庫(kù)。對(duì)于在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的路由,備用路由處理器304還可以向?qū)Φ嚷酚上到y(tǒng)發(fā)送路由通知消息。備用路由處理器304還可以比較備用路由數(shù)據(jù)庫(kù)中的路由前綴和前綴表中的前綴,并且對(duì)于具有在前綴表中列出而沒(méi)有在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,可以發(fā)送路由撤銷消息到對(duì)等路由系統(tǒng)。在一個(gè)BGP實(shí)施例中,路由通知消息和路由撤銷消息都可以被認(rèn)為是BGP更新消息形式。
在一個(gè)實(shí)施例中,在檢測(cè)到主要路由處理器302失效時(shí),備用路由處理器304可以被指示執(zhí)行失效轉(zhuǎn)移過(guò)程以使備用處理器304執(zhí)行路由管理。失效轉(zhuǎn)移過(guò)程可以包括從對(duì)等路由系統(tǒng)中請(qǐng)求路由。通過(guò)去除冗余路由,備用路由處理器304可以產(chǎn)生備用路由數(shù)據(jù)庫(kù),其中去除冗余路由是通過(guò)實(shí)現(xiàn)最優(yōu)路徑算法以消除從對(duì)等路由系統(tǒng)接收的冗余路由而進(jìn)行的。每個(gè)路由系統(tǒng)302、304可以至少包括處理元件和關(guān)聯(lián)的存儲(chǔ)器。在BGP實(shí)施例中,產(chǎn)生備用本地RIB,并且備用本地RIB被用于產(chǎn)生備用轉(zhuǎn)發(fā)信息庫(kù)(FIB),其中數(shù)據(jù)可以被下載到線路卡。
在正常操作期間,當(dāng)前活動(dòng)的路由處理器(路由處理器302或304)可以從對(duì)等路由系統(tǒng)之一接收指示該對(duì)等路由系統(tǒng)處理的新路由的路由更新消息。當(dāng)前活動(dòng)的路由處理器可以將新的路由添加到當(dāng)前路由數(shù)據(jù)庫(kù)中。當(dāng)新路由的前綴沒(méi)有列在前綴表中時(shí),當(dāng)前活動(dòng)的路由處理器還可以通過(guò)用該前綴更新前綴表來(lái)對(duì)前綴進(jìn)行檢查點(diǎn)操作。前綴表可以被存儲(chǔ)在備用路由處理系統(tǒng)的存儲(chǔ)器中。
在一個(gè)實(shí)施例中,當(dāng)當(dāng)前活動(dòng)的路由處理器從對(duì)等路由系統(tǒng)之一接收到標(biāo)識(shí)出要被撤銷的路由的路由更新消息時(shí),路由更新消息可以指示不再由該對(duì)等路由系統(tǒng)處理的路由。當(dāng)前活動(dòng)的路由處理器可以從當(dāng)前路由數(shù)據(jù)庫(kù)中去除被撤銷的路由。當(dāng)當(dāng)前路由數(shù)據(jù)庫(kù)不包括帶有被撤銷路由的前綴的任何路由時(shí),當(dāng)前活動(dòng)的路由處理器還可以從前綴表中去除該被撤銷路由的前綴。
線路接口306根據(jù)路由數(shù)據(jù)庫(kù)來(lái)路由分組,所述路由數(shù)據(jù)庫(kù)可以由當(dāng)前活動(dòng)的路由處理器通過(guò)通信路徑310來(lái)提供,通信路徑310可以是總線。在一個(gè)實(shí)施例中,在活動(dòng)路由處理器更新路由數(shù)據(jù)庫(kù)之后,該更新可以被提供給線路接口306。在失效轉(zhuǎn)移操作期間,線路接口306可以根據(jù)最近接收的路由數(shù)據(jù)庫(kù)繼續(xù)執(zhí)行分組轉(zhuǎn)發(fā),直到接收到再生的路由數(shù)據(jù)庫(kù)。在一個(gè)實(shí)施例中,系統(tǒng)管理器312可以用于以多種不同方式檢測(cè)主要路由處理器302的失效,所述多種不同方式包括監(jiān)控來(lái)自路由處理器的諸如心跳消息的信號(hào)。盡管系統(tǒng)300被圖示為具有若干分立的功能元件,但是這些功能元件中的一個(gè)或多個(gè)可以組合在一起,并且可以通過(guò)軟件配置的元件(例如含有數(shù)字信號(hào)處理器(DSP)的處理器)和/或其它硬件元件的組合來(lái)實(shí)現(xiàn)。除非以其它方式特別指定,否則諸如處理、計(jì)算、運(yùn)算、確定、顯示等的術(shù)語(yǔ)可以指代下述一個(gè)或多個(gè)處理或計(jì)算系統(tǒng)或類似設(shè)備的動(dòng)作和/或處理,所述系統(tǒng)和設(shè)備可以操縱在處理系統(tǒng)的寄存器和存儲(chǔ)器中被表達(dá)為物理(例如,電子)量的數(shù)據(jù),并將其轉(zhuǎn)換成在處理系統(tǒng)的寄存器或存儲(chǔ)器或其它這樣的信息存儲(chǔ)、傳輸或顯示設(shè)備中被類似表達(dá)為物理量的其它數(shù)據(jù)。此外,如這里所使用的,計(jì)算設(shè)備包括與計(jì)算機(jī)可讀存儲(chǔ)器耦合的一個(gè)或多個(gè)處理元件,所述計(jì)算機(jī)可讀存儲(chǔ)器可以是易失性或非易失性存儲(chǔ)器或它們的組合。并且,如這里所使用的,數(shù)據(jù)指的是一個(gè)或多個(gè)存儲(chǔ)數(shù)據(jù)元素,其可以包括多文件、單文件、文件區(qū)(fileextent)、數(shù)據(jù)庫(kù)、存儲(chǔ)設(shè)備分區(qū)、卷、卷集等。數(shù)據(jù)不需要駐留于單個(gè)存儲(chǔ)設(shè)備上,而是可以跨越多個(gè)存儲(chǔ)設(shè)備。
圖4是根據(jù)本發(fā)明實(shí)施例的前綴表的示例。前綴表400可以包括用于路由系統(tǒng)所支持的路由的1P地址前綴402的列表,所述路由系統(tǒng)例如是路由系統(tǒng)300(圖3)。前綴表400由主要路由處理器管理,并且至少在主要路由處理器失效之后,可以由備用路由處理器訪問(wèn)。在一個(gè)實(shí)施例中,當(dāng)具有還沒(méi)有列入該前綴表的前綴的新路由被添加到路由數(shù)據(jù)庫(kù)中時(shí),僅需要將前綴添加到表400。此外,當(dāng)從路由數(shù)據(jù)庫(kù)中撤銷路由且在路由數(shù)據(jù)庫(kù)中不包括具有相同前綴的任何其它路由時(shí),可以從表400去除該前綴。因此,前綴表的使用可以顯著減少與對(duì)等路由系統(tǒng)進(jìn)行同步所需的檢查點(diǎn)操作量。在(多個(gè))路由可能被告知對(duì)等系統(tǒng)之前,對(duì)表400進(jìn)行相應(yīng)前綴的檢查點(diǎn)操作。另一方面,在從表400去除前綴之前,無(wú)需必須撤銷相應(yīng)路由。
圖5是根據(jù)本發(fā)明實(shí)施例的路由系統(tǒng)同步過(guò)程的流程圖。同步過(guò)程500可以由諸如圖3的系統(tǒng)300的路由系統(tǒng)來(lái)實(shí)現(xiàn),盡管其它路由系統(tǒng)也可以適于實(shí)現(xiàn)過(guò)程500。一般而言,過(guò)程500可以通過(guò)使用檢查點(diǎn)操作來(lái)同步對(duì)等路由系統(tǒng),并且可以提供充分透明的失效轉(zhuǎn)移。在一個(gè)實(shí)施例中,執(zhí)行過(guò)程500的路由系統(tǒng)可以支持邊界網(wǎng)關(guān)協(xié)議,例如上面描述的BGP,盡管這不是必要條件,并且可以提供透明的BGP失效轉(zhuǎn)移。在一個(gè)實(shí)施例中,可以結(jié)合TCP會(huì)話恢復(fù)技術(shù)來(lái)實(shí)現(xiàn)過(guò)程500。
過(guò)程500可以被視作在正常操作期間被執(zhí)行的過(guò)程,其包括檢查點(diǎn)操作和路由操作。在失效之后,可以執(zhí)行諸如過(guò)程600(圖6)的恢復(fù)過(guò)程,其包括路由的重新取得和重新分配。
在操作502中,路由系統(tǒng)可以根據(jù)一個(gè)或多個(gè)路由數(shù)據(jù)庫(kù)來(lái)路由通信。在一個(gè)實(shí)施例中,路由系統(tǒng)可以包括多個(gè)線路接口,例如用于特定通信鏈路的接口卡。線路接口可以存儲(chǔ)當(dāng)前路由數(shù)據(jù)庫(kù),例如在路由通信中使用的路由數(shù)據(jù)庫(kù)200(圖2)。當(dāng)前路由數(shù)據(jù)庫(kù)可以由活動(dòng)路由處理器提供,其中除了別的處理器之外,活動(dòng)路由處理器管理路由數(shù)據(jù)庫(kù)。
在操作504中,可能從對(duì)等路由系統(tǒng)接收到新路由。在一個(gè)實(shí)施例中,新路由可以作為路由更新消息的一部分而被接收,其可以是基于BGP的。當(dāng)接收到新路由時(shí),活動(dòng)路由處理器可以在操作506中更新當(dāng)前路由數(shù)據(jù)庫(kù)。當(dāng)在操作504中沒(méi)有接收到新路由時(shí),會(huì)重復(fù)操作502。
在操作508中,對(duì)新路由進(jìn)行檢查點(diǎn)操作。在一個(gè)實(shí)施例中,操作508包括向前綴表添加用于新路由的前綴,該前綴表可以由備用路由處理器訪問(wèn)。前綴表優(yōu)選至少在主要路由處理器失效之后,可以由備用路由處理器訪問(wèn)。前綴表400(圖4)是路由系統(tǒng)所使用的適當(dāng)前綴表的示例。當(dāng)所接收到的路由的前綴沒(méi)有在前綴表中預(yù)先提供時(shí),用于特定路由的前綴被添加到前綴表。由于路由數(shù)據(jù)庫(kù)對(duì)于相同前綴可以包括許多替代的路由,所以與對(duì)每個(gè)路由進(jìn)行檢查點(diǎn)操作的傳統(tǒng)方法相比,可以實(shí)現(xiàn)檢查點(diǎn)操作的顯著減少。在一個(gè)實(shí)施例中,僅有前綴自身進(jìn)行檢查點(diǎn)操作(例如,對(duì)于IPv4路由來(lái)說(shuō)為5字節(jié)或更少)。
在一個(gè)實(shí)施例中,當(dāng)在操作508中路由被添加到當(dāng)前路由數(shù)據(jù)庫(kù)中時(shí),活動(dòng)路由處理器可以向諸如線路接口306(圖3)的線路接口提供更新后的路由信息。此外,當(dāng)新路由被添加到當(dāng)前路由數(shù)據(jù)庫(kù)中時(shí),可以通知對(duì)等路由系統(tǒng)該路由系統(tǒng)將根據(jù)所接收到的路由來(lái)執(zhí)行路由操作。在BGP實(shí)施例和一些其它實(shí)施例中,在相應(yīng)的路由被告知對(duì)等系統(tǒng)之前執(zhí)行檢查點(diǎn)操作。過(guò)程500還可以包括響應(yīng)于路由更新消息去除路由,以撤銷從對(duì)等路由系統(tǒng)接收的一個(gè)或多個(gè)路由。在這種情況下,當(dāng)特定前綴不支持任何路由時(shí),操作508可以包括從前綴表中去除該前綴。
在操作510中,更新消息可以被發(fā)送到對(duì)等路由系統(tǒng)。更新消息可以通知對(duì)等路由系統(tǒng)下述路由,即現(xiàn)在正由該路由系統(tǒng)處理的路由以及不再由該路由系統(tǒng)處理的路由。在BGP實(shí)施例中,操作510可以包括發(fā)送根據(jù)BGP的路由更新消息。
在過(guò)程500的執(zhí)行期間,可以監(jiān)控來(lái)自當(dāng)前活動(dòng)的(即,主要)路由處理器的信號(hào)以檢測(cè)失效。例如,可以監(jiān)控來(lái)自活動(dòng)路由處理器的心跳消息以檢測(cè)失效??梢栽谶^(guò)程500執(zhí)行期間的任意點(diǎn)處檢測(cè)到失效。當(dāng)檢測(cè)到當(dāng)前活動(dòng)的路由處理器的失效之后,啟動(dòng)恢復(fù)過(guò)程,其中備用處理器從對(duì)等路由系統(tǒng)請(qǐng)求路由以產(chǎn)生備用路由數(shù)據(jù)庫(kù)。當(dāng)沒(méi)有檢測(cè)到當(dāng)前活動(dòng)的路由處理器的失效時(shí),重復(fù)操作502至510,并且路由系統(tǒng)會(huì)繼續(xù)它的正常操作,該正常操作包括如上所述的路由分組以及對(duì)新路由的前綴進(jìn)行檢查點(diǎn)操作。
盡管過(guò)程500的各個(gè)操作被圖示和描述為單獨(dú)操作,但是可以同時(shí)執(zhí)行這些操作中的一個(gè)或多個(gè),并且不需要以圖示的順序執(zhí)行這些操作。
圖6是根據(jù)本發(fā)明實(shí)施例的恢復(fù)過(guò)程的流程圖。當(dāng)檢測(cè)到當(dāng)前活動(dòng)的(即,主要)路由處理器的失效時(shí),可以適用恢復(fù)過(guò)程600。過(guò)程600可以被視為失效轉(zhuǎn)移過(guò)程,其使備用處理器能夠執(zhí)行路由管理。當(dāng)在執(zhí)行過(guò)程500(圖5)期間檢測(cè)到失效時(shí),可以適用過(guò)程600。除此之外,在執(zhí)行過(guò)程600期間,備用處理器從對(duì)等路由系統(tǒng)請(qǐng)求路由以產(chǎn)生新的路由數(shù)據(jù)庫(kù)。在操作602中,備用路由處理器從對(duì)等路由系統(tǒng)請(qǐng)求路由,并且在BGP實(shí)施例中,可以發(fā)送路由刷新/請(qǐng)求消息到對(duì)等系統(tǒng)。響應(yīng)于路由請(qǐng)求,備用路由處理器可以從對(duì)等系統(tǒng)接收對(duì)等方的路由,其可以作為路由更新消息的一部分而被接收。操作602還可以包括確定當(dāng)已經(jīng)接收了全部或足夠的對(duì)等路由時(shí),可以通過(guò)試探法(heuristic)(例如,接收保活消息或空更新消息)執(zhí)行哪種路由。在預(yù)定時(shí)間量?jī)?nèi)沒(méi)有響應(yīng)于路由請(qǐng)求而從特定對(duì)等系統(tǒng)接收到?;罨蚋孪⒌那闆r下,還可以使用超時(shí)。
在操作604中,可以從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生新的路由數(shù)據(jù)庫(kù)??梢詮臄?shù)據(jù)庫(kù)中去除從對(duì)等路由系統(tǒng)接收的冗余路由。在一個(gè)實(shí)施例中,操作604可以實(shí)現(xiàn)最優(yōu)路徑算法以消除從對(duì)等路由系統(tǒng)接收的具有冗余前綴的路由。在BGP實(shí)施例中,操作604可以使用備用本地RIB以產(chǎn)生備用轉(zhuǎn)發(fā)信息庫(kù)(FIB)。其它產(chǎn)生路由數(shù)據(jù)庫(kù)的方法也可適用于多個(gè)實(shí)施例。
在操作606中,新路由被發(fā)送(即,告知)給對(duì)等路由系統(tǒng)。根據(jù)BGP實(shí)施例,新路由作為BGP更新消息的一部分而被發(fā)送。該更新可以通知對(duì)等系統(tǒng)發(fā)送新路由的路由系統(tǒng)支持哪些路由。在操作608中,在前綴表中進(jìn)行檢查點(diǎn)操作的前綴與操作604中產(chǎn)生的新路由數(shù)據(jù)庫(kù)中的路由的前綴相比較。當(dāng)操作608標(biāo)識(shí)出前綴表中不與新路由數(shù)據(jù)庫(kù)中的任何路由相關(guān)聯(lián)的前綴時(shí),操作610可以發(fā)送撤銷消息到對(duì)等路由系統(tǒng),該撤銷消息請(qǐng)求該對(duì)等路由系統(tǒng)撤銷具有該前綴的路由。操作610撤銷先前告知的由失效的路由處理器所處理的路由,并且這些路由不再處于路由數(shù)據(jù)庫(kù)中。在一個(gè)實(shí)施例中,可以為存在于前綴表中而沒(méi)有存在于新路由數(shù)據(jù)庫(kù)(即,恢復(fù)后的數(shù)據(jù)庫(kù))中的每個(gè)前綴,發(fā)送BGP更新消息(指示撤銷前綴)。在完成操作610時(shí),對(duì)等路由系統(tǒng)的狀態(tài)應(yīng)當(dāng)與本路由系統(tǒng)的狀態(tài)同步。
在操作612中,可以更新由備用路由處理器維護(hù)的前綴表,其中可以去除操作610中標(biāo)識(shí)出的前綴。備用路由處理器現(xiàn)在可以被視作主要或活動(dòng)路由處理器并且可以執(zhí)行操作614。在操作614中,通過(guò)使用新的(即,恢復(fù)后的)路由數(shù)據(jù)庫(kù)和檢查點(diǎn)操作后的前綴,現(xiàn)在活動(dòng)的路由處理器可以執(zhí)行路由操作與路由同步,例如如過(guò)程500(圖5)所描述的那樣。在一個(gè)實(shí)施例中,失效的路由處理器例如可以被替換、修復(fù)或者恢復(fù)服務(wù)(例如,重啟動(dòng))。其隨后可以用作備用路由處理器。
盡管過(guò)程600的各個(gè)操作被圖示和描述為單獨(dú)操作,但是可以同時(shí)執(zhí)行這些操作中的一個(gè)或多個(gè),并且不需要以圖示的順序執(zhí)行這些操作。然而,在一些實(shí)施例中,應(yīng)當(dāng)在對(duì)等路由系統(tǒng)被告知與前綴相對(duì)應(yīng)的路由之前完成向前綴表添加那些前綴(即,檢查點(diǎn)操作)。
在幾個(gè)其它的實(shí)施例中,本發(fā)明提供了包括其上存儲(chǔ)有指令的存儲(chǔ)介質(zhì)的制品,所述指令當(dāng)被數(shù)字計(jì)算平臺(tái)執(zhí)行時(shí),使得響應(yīng)于失效而從對(duì)等路由系統(tǒng)請(qǐng)求路由,從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù),比較備用路由數(shù)據(jù)庫(kù)中的路由前綴和前綴表中的前綴,以及對(duì)于具有在前綴表中列出而沒(méi)有在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,發(fā)送路由撤銷消息到對(duì)等路由系統(tǒng)。舉例來(lái)說(shuō),所述物件可以是計(jì)算機(jī)盤(pán)(例如磁盤(pán)或CD)或者計(jì)算機(jī)存儲(chǔ)器,并且所述存儲(chǔ)介質(zhì)可以是包括磁介質(zhì)和光介質(zhì)在內(nèi)的適于存儲(chǔ)數(shù)字信息的任何計(jì)算機(jī)可讀介質(zhì)。
這樣,已經(jīng)描述了用于在主要路由處理器失效后將路由管理切換到備用路由處理器的系統(tǒng)與方法。該系統(tǒng)與方法通過(guò)使用經(jīng)檢查點(diǎn)操作的路由前綴,可以提供充分透明的失效轉(zhuǎn)移。
前面對(duì)具體實(shí)施例的描述揭示了本發(fā)明的一般性質(zhì),這足以使本領(lǐng)域技術(shù)人員通過(guò)應(yīng)用現(xiàn)有知識(shí)方便地修改和/或改動(dòng)它,以用于多種應(yīng)用而不脫離一般概念。因此這種改動(dòng)和修改在所公開(kāi)實(shí)施例的等同物范圍與內(nèi)涵之內(nèi)。這里使用的用語(yǔ)和術(shù)語(yǔ)是出于說(shuō)明而非限制的目的。因此,本發(fā)明包括落入權(quán)利要求精神與范圍內(nèi)的所有這樣的替代形式、修改形式、等同形式和變化形式。
權(quán)利要求
1.一種在主要路由處理器失效后將路由管理切換到備用路由處理器的方法,所述方法包括響應(yīng)于所述失效,從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù);比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和前綴表中的前綴;以及對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng),其中所述前綴表包括在失效之前由所述主要路由處理器所支持的路由的前綴。
2.根據(jù)權(quán)利要求1所述的方法,還包括響應(yīng)于所述失效從對(duì)等路由系統(tǒng)請(qǐng)求路由;以及對(duì)于在所述備用路由表中標(biāo)識(shí)的路由,將路由通告消息發(fā)送到所述對(duì)等路由系統(tǒng)。
3.根據(jù)權(quán)利要求1所述的方法,其中在檢測(cè)到所述失效之前,所述主要路由處理器使用初始路由數(shù)據(jù)庫(kù)來(lái)執(zhí)行路由操作,并且所述主要路由處理器更新所述前綴表以列出來(lái)自所述初始路由數(shù)據(jù)庫(kù)的路由前綴,所述前綴表被存儲(chǔ)在存儲(chǔ)器中,所述存儲(chǔ)器至少在所述主要路由處理器失效之后可由所述備用路由處理器訪問(wèn)。
4.根據(jù)權(quán)利要求1所述的方法,其中在檢測(cè)到所述失效之后,所述備用路由處理器被指示執(zhí)行失效轉(zhuǎn)移過(guò)程,以使能由所述備用處理器執(zhí)行的路由管理,所述失效轉(zhuǎn)移過(guò)程包括將路由刷新消息發(fā)送到所述對(duì)等路由系統(tǒng),從所述對(duì)等路由系統(tǒng)接收所述路由,從所接收的路由中產(chǎn)生所述備用路由數(shù)據(jù)庫(kù),比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和所述前綴表中的前綴,以及對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng)。
5.根據(jù)權(quán)利要求2所述的方法,其中在檢測(cè)到所述主要路由處理器失效之后,請(qǐng)求路由的步驟包括將路由刷新消息發(fā)送到所述對(duì)等路由系統(tǒng);以及響應(yīng)于所述路由刷新消息,從所述對(duì)等路由系統(tǒng)接收路由,其中所述路由刷新消息請(qǐng)求由所述對(duì)等路由系統(tǒng)所支持的路由。
6.根據(jù)權(quán)利要求1所述的方法,其中從所接收的路由中產(chǎn)生所述備用路由數(shù)據(jù)庫(kù)的步驟包括去除從所述對(duì)等路由系統(tǒng)接收的冗余路由。
7.根據(jù)權(quán)利要求6所述的方法,其中去除冗余路由的步驟包括實(shí)現(xiàn)最優(yōu)路徑算法以消除所述冗余路由。
8.根據(jù)權(quán)利要求1所述的方法,其中多個(gè)線路接口根據(jù)初始路由數(shù)據(jù)庫(kù)來(lái)路由通信,在所述主要路由處理器失效之后,所述初始路由數(shù)據(jù)庫(kù)由所述備用路由數(shù)據(jù)庫(kù)所替換。
9.根據(jù)權(quán)利要求1所述的方法,其中所述主要與備用路由處理器是路由系統(tǒng)的一部分,并且其中響應(yīng)于由所述路由系統(tǒng)發(fā)送的所述路由撤銷消息,所述對(duì)等路由系統(tǒng)從它們的當(dāng)前路由數(shù)據(jù)庫(kù)中去除路由,其中所述當(dāng)前路由數(shù)據(jù)庫(kù)與所述路由系統(tǒng)處理的路由相關(guān)聯(lián)。
10.根據(jù)權(quán)利要求9所述的方法,所述路由系統(tǒng)使用邊界網(wǎng)關(guān)協(xié)議進(jìn)行路由,其中路由刷新消息和路由撤銷消息是基于邊界網(wǎng)關(guān)協(xié)議的,并且其中在所述對(duì)等路由系統(tǒng)去除重復(fù)的前綴之后,所述路由系統(tǒng)與所述對(duì)等路由系統(tǒng)充分同步。
11.根據(jù)權(quán)利要求3所述的方法,還包括從所述對(duì)等路由系統(tǒng)中的至少一個(gè)接收指示出由所述至少一個(gè)對(duì)等路由系統(tǒng)處理的新路由的路由更新消息;將所述新路由添加到當(dāng)前路由數(shù)據(jù)庫(kù);以及當(dāng)所述新路由的前綴沒(méi)有在所述前綴表中列出時(shí),用所述新路由的前綴更新所述前綴表。
12.根據(jù)權(quán)利要求3所述的方法,還包括從所述對(duì)等路由系統(tǒng)中的至少一個(gè)接收路由撤銷消息,所述路由撤銷消息指示出不再由所述至少一個(gè)對(duì)等路由系統(tǒng)處理的被撤銷的路由;從當(dāng)前路由數(shù)據(jù)庫(kù)中去除所述被撤銷的路由;以及當(dāng)所述當(dāng)前路由數(shù)據(jù)庫(kù)中沒(méi)有列出帶有所述被撤銷的路由的前綴的任何路由時(shí),從所述前綴表去除所述前綴。
13.一種用于在邊界網(wǎng)關(guān)協(xié)議路由系統(tǒng)的主要處理器失效之后使所述邊界網(wǎng)關(guān)協(xié)議路由系統(tǒng)與對(duì)等邊界網(wǎng)關(guān)協(xié)議路由系統(tǒng)同步的方法,其中所述主要處理器使用初始路由數(shù)據(jù)庫(kù)來(lái)執(zhí)行路由操作,并且維護(hù)可由備用路由處理器訪問(wèn)的前綴表,所述前綴表列出了所述初始路由數(shù)據(jù)庫(kù)的路由的前綴,在檢測(cè)到所述主要路由處理器失效后由所述備用處理器執(zhí)行的方法包括發(fā)送邊界網(wǎng)關(guān)協(xié)議路由刷新消息到所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng),所述邊界網(wǎng)關(guān)協(xié)議路由刷新消息請(qǐng)求由所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)所支持的路由;以及響應(yīng)于所述邊界網(wǎng)關(guān)協(xié)議路由刷新消息,從所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)接收路由;從接收自所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù);比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和所述前綴表中的前綴;以及對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將邊界網(wǎng)關(guān)協(xié)議路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng)。
14.根據(jù)權(quán)利要求13所述的方法,其中從所接收的路由中產(chǎn)生所述備用路由數(shù)據(jù)庫(kù)的步驟包括通過(guò)執(zhí)行最優(yōu)路徑算法來(lái)消除從所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)接收的冗余路由,來(lái)去除從所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)接收的所述冗余路由,以及其中所述方法還包括利用多個(gè)線路接口,根據(jù)所述初始路由數(shù)據(jù)庫(kù)來(lái)路由通信;在所述主要路由處理器失效之后,將所述多個(gè)線路接口中的所述初始路由數(shù)據(jù)庫(kù)替換為所述備用路由數(shù)據(jù)庫(kù);以及利用所述多個(gè)線路接口,根據(jù)所述備用路由數(shù)據(jù)庫(kù)來(lái)路由通信。
15.根據(jù)權(quán)利要求14所述的方法,其中所述主要與備用路由處理器是所述邊界網(wǎng)關(guān)協(xié)議路由系統(tǒng)的一部分,并且其中響應(yīng)于由所述邊界網(wǎng)關(guān)協(xié)議路由系統(tǒng)發(fā)送的所述路由撤銷消息,所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)從它們的當(dāng)前路由數(shù)據(jù)庫(kù)中去除具有相同前綴的路由,其中所述當(dāng)前路由數(shù)據(jù)庫(kù)與由所述邊界網(wǎng)關(guān)協(xié)議路由系統(tǒng)處理的路由相關(guān)聯(lián)。
16.根據(jù)權(quán)利要求14所述的方法,還包括從所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)中的一個(gè)接收指示出由所述一個(gè)邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)處理的新路由的邊界網(wǎng)關(guān)協(xié)議路由更新消息;將所述新路由添加到當(dāng)前路由數(shù)據(jù)庫(kù);當(dāng)所述新路由的前綴沒(méi)有在所述前綴表中列出時(shí),用所述新路由的前綴更新所述前綴表;從所述邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)中的另一個(gè)接收邊界網(wǎng)關(guān)協(xié)議路由撤銷消息,所述路由撤銷消息指示出不再由所述另一個(gè)邊界網(wǎng)關(guān)協(xié)議對(duì)等路由系統(tǒng)處理的被撤銷的路由;從所述當(dāng)前路由數(shù)據(jù)庫(kù)中去除所述被撤銷的路由;以及當(dāng)所述當(dāng)前路由數(shù)據(jù)庫(kù)沒(méi)有列出與所述被撤銷的路由的前綴相關(guān)聯(lián)的路由時(shí),從所述前綴表中去除所述前綴。
17.一種路由系統(tǒng),包括主要路由處理器;備用路由處理器;以及多個(gè)線路,用以根據(jù)由所述路由處理器所管理的路由數(shù)據(jù)庫(kù)來(lái)路由通信,其中響應(yīng)于檢測(cè)到所述主要路由處理器的失效,所述備用路由處理器從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù),比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和前綴表中的前綴,以及對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng)。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中在檢測(cè)到所述主要路由處理器的失效之后,所述備用路由處理器被指示執(zhí)行失效轉(zhuǎn)移過(guò)程,以使能由所述備用處理器所執(zhí)行的路由管理,所述失效轉(zhuǎn)移過(guò)程包括從對(duì)等路由系統(tǒng)請(qǐng)求路由,并且其中所述備用路由處理器通過(guò)去除冗余路由來(lái)產(chǎn)生所述備用路由數(shù)據(jù)庫(kù),所述去除冗余路由的步驟是通過(guò)執(zhí)行最優(yōu)路徑算法來(lái)消除從對(duì)等路由系統(tǒng)接收的冗余路由。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中當(dāng)前活動(dòng)的路由處理器從所述對(duì)等路由系統(tǒng)中的一個(gè)接收指示出由所述一個(gè)對(duì)等路由系統(tǒng)所處理的新路由的路由更新消息,將所述新路由添加到當(dāng)前路由數(shù)據(jù)庫(kù),以及當(dāng)所述新路由的前綴沒(méi)有列在所述前綴表中時(shí),利用所述新路由的前綴更新所述前綴表,所述當(dāng)前活動(dòng)的路由處理器在所述失效之前是所述主要處理器,所述當(dāng)前活動(dòng)的路由處理器在所述失效之后是所述備用處理器。
20.根據(jù)權(quán)利要求19所述的系統(tǒng),其中所述當(dāng)前活動(dòng)的路由處理器從所述對(duì)等路由系統(tǒng)中的一個(gè)接收路由撤銷消息,所述路由撤銷消息指示出不再由所述一個(gè)對(duì)等路由系統(tǒng)處理的被撤銷的路由,從當(dāng)前路由數(shù)據(jù)庫(kù)中去除所述被撤銷的路由,以及當(dāng)所述當(dāng)前路由數(shù)據(jù)庫(kù)沒(méi)有列出帶有所述被撤銷的路由的前綴的路由時(shí),從所述前綴表中去除所述前綴。
21.一種包括其上存儲(chǔ)有指令的存儲(chǔ)介質(zhì)的制品,所述指令當(dāng)被數(shù)字計(jì)算平臺(tái)執(zhí)行時(shí),使得響應(yīng)于失效而從對(duì)等路由系統(tǒng)請(qǐng)求路由;從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù);比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和前綴表中的前綴;以及對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng)。
22.根據(jù)權(quán)利要求21所述的制品,其中所述指令當(dāng)被所述數(shù)字計(jì)算平臺(tái)進(jìn)一步執(zhí)行時(shí),使得發(fā)送更新消息到所述對(duì)等路由系統(tǒng),以指示在所述備用路由表中標(biāo)識(shí)出的路由,其中在檢測(cè)到所述失效之前,所述主要路由處理器使用初始路由數(shù)據(jù)庫(kù)來(lái)執(zhí)行路由,并且所述主要路由處理器更新所述前綴表以列出來(lái)自所述初始路由數(shù)據(jù)庫(kù)的路由的前綴,所述前綴表被存儲(chǔ)在可由所述備用路由處理器訪問(wèn)的存儲(chǔ)器中。
23.根據(jù)權(quán)利要求22所述的制品,其中所述指令當(dāng)被所述數(shù)字計(jì)算平臺(tái)進(jìn)一步執(zhí)行時(shí),使得從所述對(duì)等路由系統(tǒng)中的一個(gè)接收指示出由所述一個(gè)對(duì)等路由系統(tǒng)處理的新路由的路由更新消息;將所述新路由添加到當(dāng)前路由數(shù)據(jù)庫(kù);以及當(dāng)所述新路由的前綴沒(méi)有在所述前綴表中列出時(shí),用所述新路由的前綴更新所述前綴表。
24.一種用于在主要路由處理器失效后將路由管理切換到備用路由處理器的設(shè)備,所述設(shè)備包括用于響應(yīng)于所述失效而從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù)的裝置;用于比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和前綴表中的前綴的裝置;以及用于對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng)的裝置,其中所述前綴表包括在失效之前由所述主要路由處理器所支持的路由的前綴。
25.根據(jù)權(quán)利要求24所述的設(shè)備,還包括響應(yīng)于所述失效而從對(duì)等路由系統(tǒng)請(qǐng)求路由的裝置;以及對(duì)于在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的路由,將路由通告消息發(fā)送到所述對(duì)等路由系統(tǒng)的裝置。
26.根據(jù)權(quán)利要求24所述的設(shè)備,其中在檢測(cè)到所述失效之前,所述主要路由處理器包括使用初始路由數(shù)據(jù)庫(kù)來(lái)執(zhí)行路由的裝置,并且所述主要路由處理器包括用于更新所述前綴表以列出來(lái)自所述初始路由數(shù)據(jù)庫(kù)的路由的前綴的裝置,所述前綴表被存儲(chǔ)在存儲(chǔ)器中,所述存儲(chǔ)器至少在所述主要路由處理器失效之后可由所述備用路由處理器訪問(wèn)。
27.根據(jù)權(quán)利要求24所述的設(shè)備,其中在檢測(cè)到所述主要路由處理器的失效之后,所述備用路由處理器包括用于執(zhí)行失效轉(zhuǎn)移過(guò)程以使能由所述備用處理器所執(zhí)行的路由管理的裝置,所述用于執(zhí)行所述失效轉(zhuǎn)移過(guò)程的裝置包括用于將路由刷新消息發(fā)送到所述對(duì)等路由系統(tǒng)的裝置,用于從所述對(duì)等路由系統(tǒng)接收所述路由的裝置,用于從所接收的路由中產(chǎn)生所述備用路由數(shù)據(jù)庫(kù)的裝置,用于比較所述備用路由數(shù)據(jù)庫(kù)中的路由的前綴和所述前綴表中的前綴的裝置,以及用于對(duì)于具有在所述前綴表中列出而沒(méi)有在所述備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到所述對(duì)等路由系統(tǒng)的裝置。
28.根據(jù)權(quán)利要求25所述的設(shè)備,其中用于請(qǐng)求路由的裝置包括用于將路由刷新消息發(fā)送到所述對(duì)等路由系統(tǒng)的裝置;以及用于響應(yīng)于所述路由刷新消息而從所述對(duì)等路由系統(tǒng)接收路由的裝置,其中所述路由刷新消息請(qǐng)求由所述對(duì)等路由系統(tǒng)所支持的路由。
29.根據(jù)權(quán)利要求24所述的設(shè)備,其中用于從所接收的路由中產(chǎn)生所述備用路由數(shù)據(jù)庫(kù)的裝置包括用于去除從所述對(duì)等路由系統(tǒng)接收的冗余路由的裝置。
30.根據(jù)權(quán)利要求29所述的設(shè)備,其中用于去除冗余路由的裝置包括用于執(zhí)行最優(yōu)路徑算法以消除所述冗余路由的裝置。
31.根據(jù)權(quán)利要求24所述的設(shè)備,其中多個(gè)線路接口包括用于根據(jù)初始路由數(shù)據(jù)庫(kù)來(lái)路由通信的裝置,在所述主要路由處理器失效之后,所述初始路由數(shù)據(jù)庫(kù)由所述備用路由數(shù)據(jù)庫(kù)所替換。
32.根據(jù)權(quán)利要求24所述的設(shè)備,其中所述主要與備用路由處理器是路由系統(tǒng)的一部分,并且其中所述對(duì)等路由系統(tǒng)包括下述裝置,所述裝置響應(yīng)于由所述路由系統(tǒng)發(fā)送的所述路由撤銷消息,從所述對(duì)等路由系統(tǒng)的當(dāng)前路由數(shù)據(jù)庫(kù)中去除路由,其中所述當(dāng)前路由數(shù)據(jù)庫(kù)與所述路由系統(tǒng)所處理的路由相關(guān)聯(lián)。
33.根據(jù)權(quán)利要求32所述的設(shè)備,其中所述路由系統(tǒng)包括下述裝置,所述裝置使用邊界網(wǎng)關(guān)協(xié)議進(jìn)行路由,其中路由刷新消息和路由撤銷消息是基于所述邊界網(wǎng)關(guān)協(xié)議的,并且其中在所述對(duì)等路由系統(tǒng)去除重復(fù)的前綴之后,所述路由系統(tǒng)與所述對(duì)等路由系統(tǒng)充分同步。
34.根據(jù)權(quán)利要求26所述的設(shè)備,還包括用于從所述對(duì)等路由系統(tǒng)中的至少一個(gè)接收路由更新消息的裝置,所述路由更新消息指示出由所述至少一個(gè)對(duì)等路由系統(tǒng)所處理的新路由;用于將所述新路由添加到當(dāng)前路由數(shù)據(jù)庫(kù)的裝置;以及用于當(dāng)所述新路由的前綴沒(méi)有在所述前綴表中列出時(shí),用所述新路由的前綴更新所述前綴表的裝置。
35.根據(jù)權(quán)利要求26所述的設(shè)備,還包括用于從所述對(duì)等路由系統(tǒng)中的至少一個(gè)接收路由撤銷消息的裝置,所述路由撤銷消息指示出不再由所述至少一個(gè)對(duì)等路由系統(tǒng)所處理的被撤銷的路由;用于從當(dāng)前路由數(shù)據(jù)庫(kù)中去除所述被撤銷的路由的裝置;以及用于當(dāng)所述當(dāng)前路由數(shù)據(jù)庫(kù)沒(méi)有列出帶有所述被撤銷的路由的前綴的路由時(shí),從所述前綴表中去除所述前綴的裝置。
全文摘要
一種路由系統(tǒng)通過(guò)在正常操作期間通過(guò)維護(hù)路由前綴表對(duì)路由前綴進(jìn)行檢查點(diǎn)操作,來(lái)提供透明的路由系統(tǒng)失效轉(zhuǎn)移。在主要路由處理器失效之后,通過(guò)使用該前綴表來(lái)同步與對(duì)等路由系統(tǒng)的路由。前綴表由主要路由處理器管理,并且至少在主要路由處理器失效之后,可以由備用路由處理器訪問(wèn)。在檢測(cè)到失效之后,備用路由處理器響應(yīng)于該失效而從對(duì)等路由系統(tǒng)請(qǐng)求路由,并且從接收自對(duì)等路由系統(tǒng)的路由中產(chǎn)生備用路由數(shù)據(jù)庫(kù)。備用路由處理器還比較備用路由數(shù)據(jù)庫(kù)中的路由前綴和前綴表中的前綴,并且對(duì)于具有在前綴表中列出而沒(méi)有在備用路由數(shù)據(jù)庫(kù)中標(biāo)識(shí)的前綴的路由,將路由撤銷消息發(fā)送到對(duì)等路由系統(tǒng)。
文檔編號(hào)G06F11/16GK1711729SQ200380103126
公開(kāi)日2005年12月21日 申請(qǐng)日期2003年11月12日 優(yōu)先權(quán)日2002年11月12日
發(fā)明者約翰·伽萊恩·斯卡德, 戴維·德拉諾·瓦德 申請(qǐng)人:思科技術(shù)公司