專利名稱:實(shí)現(xiàn)ospf冗余的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信,更具體地,涉及路由協(xié)議,如開放式最短路徑優(yōu)先(OSPF)協(xié)議的冗余,和用于保護(hù)一路由器和鄰近路由器的協(xié)議業(yè)務(wù)免受故障損害的設(shè)備。
背景技術(shù):
互聯(lián)網(wǎng)協(xié)議(IP)是許多公用網(wǎng)和專用網(wǎng)的基礎(chǔ),如因特網(wǎng),企業(yè)內(nèi)部互聯(lián)網(wǎng)、數(shù)據(jù)網(wǎng)等。語(yǔ)音、數(shù)據(jù)和多媒體網(wǎng)絡(luò)的集中在很大程度上也基于IP協(xié)議。
數(shù)據(jù)包通過(guò)從一臺(tái)計(jì)算機(jī)上發(fā)送到另一臺(tái)計(jì)算機(jī)在數(shù)據(jù)網(wǎng)中穿行到達(dá)其目的地。路由器或其他類型的交換機(jī)用于在數(shù)據(jù)源,例如連接在數(shù)據(jù)網(wǎng)上的一臺(tái)用戶計(jì)算機(jī)到目標(biāo)之間的一條或多條鏈路上路由數(shù)據(jù)包。路由協(xié)議如邊界網(wǎng)關(guān)協(xié)議(BGP)、路由信息協(xié)議(RIP)和開放式最短路徑優(yōu)先協(xié)議(OSPF)使每臺(tái)計(jì)算機(jī)知道數(shù)據(jù)包在傳遞到目標(biāo)過(guò)程中的“下一跳”是哪臺(tái)計(jì)算機(jī)。路由器使用路由協(xié)議來(lái)建立路由表。當(dāng)路由器接收到一個(gè)數(shù)據(jù)包并且必須進(jìn)行轉(zhuǎn)發(fā)決定時(shí),路由器在路由表中“查詢”下一路程段的計(jì)算機(jī)。通常情況下,路由器使用數(shù)據(jù)包中目標(biāo)IP地址作為索引來(lái)查詢路由表。
在基本的OSPF算法中,路由器廣播一個(gè)包含路由器自身ID、已知的相鄰路由器ID的廣播問(wèn)候數(shù)據(jù)包,同時(shí)也從其他路由器上收到這樣類似的信息。如果路由器從其已知的另一個(gè)路由器接收到一個(gè)包含其自身ID的問(wèn)候數(shù)據(jù)包,如果這兩個(gè)路由器彼此知曉,那么這兩個(gè)路由器通過(guò)發(fā)送路由協(xié)議數(shù)據(jù)包來(lái)交換網(wǎng)絡(luò)鏈路狀態(tài)信息。路由器基于運(yùn)行鏈路狀態(tài)路由算法收集的網(wǎng)絡(luò)鏈路狀態(tài)信息生成路由表,所述路由算法典型地如Dijkstra算法。在OSPF中,路由表可以基于通過(guò)考慮包括作為數(shù)據(jù)包路由的網(wǎng)絡(luò)鏈路帶寬在內(nèi)的許多因素確定的消耗指定最小消耗路徑。當(dāng)網(wǎng)絡(luò)鏈路改變時(shí),每個(gè)路由器為其自身計(jì)算到每個(gè)網(wǎng)絡(luò)的最短路徑并根據(jù)這些路徑設(shè)置自身的路由表。路由計(jì)算單元用來(lái)生成路由表。
每個(gè)路由器在發(fā)送或接收控制數(shù)據(jù)包和網(wǎng)絡(luò)鏈路狀態(tài)信息時(shí),管理該路由器所連接的網(wǎng)絡(luò)上的其他路由器的狀態(tài)和接口狀態(tài),該路由器通過(guò)此接口連接到網(wǎng)絡(luò)上。關(guān)于路由器的狀態(tài),每個(gè)路由器管理其ID,并檢查是否每一個(gè)其他路由器都感知到它,或檢查是否那些路由器的每一個(gè)都完成了發(fā)送和接收網(wǎng)絡(luò)鏈路狀態(tài)信息。關(guān)于接口狀態(tài),每個(gè)路由器管理接口地址和其他連接在連接有接口的網(wǎng)絡(luò)上的路由器的地址。
當(dāng)常用的IP邊緣路由器丟失其主電路,并且操作退回到冗余控制器時(shí),在路由器釋放路由狀態(tài)和數(shù)據(jù)包轉(zhuǎn)發(fā)表,產(chǎn)生5到15分鐘的運(yùn)行中斷。為了提高路由器設(shè)備的可靠性,最重要的是要使上面提到的路由計(jì)算單元多路復(fù)用。多路復(fù)用路由器設(shè)備包括多個(gè)路由計(jì)算單元,且總是使其中一個(gè)路由器計(jì)算單元處于工作模式(activemode),用于處理常規(guī)的程序,其他路由計(jì)算單元?jiǎng)t處于備用模式。當(dāng)處于工作模式的路由計(jì)算單元出現(xiàn)故障,多路復(fù)用路由器設(shè)備使其中一個(gè)備用模式的路由器計(jì)算單元進(jìn)入工作模式(這被稱作路由器計(jì)算單元的系統(tǒng)切換),另一個(gè)路由器接管并繼續(xù)處理前面出現(xiàn)故障的路由器計(jì)算單元執(zhí)行的處理。
美國(guó)專利No.6049524描述了一種多路復(fù)用路由器設(shè)備,它減少了從一個(gè)工作的路由計(jì)算單元到另一個(gè)備用路由計(jì)算單元間傳送的信息。工作模式下的路由計(jì)算單元通過(guò)內(nèi)部總線與備用路由計(jì)算單元連接。處于工作模式的路由計(jì)算單元存儲(chǔ)表示該路由器和其它路由器與網(wǎng)絡(luò)的連接的網(wǎng)絡(luò)鏈路狀態(tài)信息,表示鄰近路由器狀態(tài)的鄰近路由器狀態(tài)以及表示網(wǎng)絡(luò)接口的狀態(tài)的接口狀態(tài),以將該多路復(fù)用路由器裝置連結(jié)至該網(wǎng)絡(luò)。工作模式的路由計(jì)算單元僅向備用模式的路由計(jì)算單元發(fā)送網(wǎng)絡(luò)鏈路狀態(tài)信息。在備用模式的路由計(jì)算單元,接收鏈路狀態(tài)信息的數(shù)據(jù)庫(kù)集成模塊將其內(nèi)容記錄于鏈路狀態(tài)數(shù)據(jù)庫(kù)。當(dāng)工作模式下的路由計(jì)算單元出現(xiàn)故障時(shí),該路由計(jì)算單元通過(guò)使用存儲(chǔ)的鏈路狀態(tài)數(shù)據(jù)庫(kù)進(jìn)行路由協(xié)議處理,因此有必要與其他路由器交換信息以再次搜集網(wǎng)絡(luò)鏈路狀態(tài)信息。在切換至工作模式后的一小段時(shí)間,該路由計(jì)算單元沒有關(guān)于該鄰近路由狀態(tài)和接口狀態(tài)的信息。從進(jìn)入工作模式的路由計(jì)算單元發(fā)出問(wèn)候數(shù)據(jù)包。進(jìn)入現(xiàn)用狀態(tài)的路由計(jì)算逐漸累積有關(guān)鄰近路由器狀態(tài)和接口狀態(tài)的信息,以便逐漸產(chǎn)生其他路由器的ID的列表,該列表包含在該路由計(jì)算單元之后發(fā)出的問(wèn)候數(shù)據(jù)包中。
期望通過(guò)改進(jìn)的冗余性提供高的網(wǎng)絡(luò)可用率,這可以實(shí)現(xiàn)為在具有與現(xiàn)用鏈路層處理完全實(shí)時(shí)同步的備份鏈路層處理的IP上運(yùn)行鏈路層協(xié)議,使得在該現(xiàn)用控制卡出現(xiàn)故障時(shí)能夠進(jìn)行快速的切換。
發(fā)明內(nèi)容
本發(fā)明涉及用于實(shí)現(xiàn)路由器中鏈路層協(xié)議冗余的方法和系統(tǒng)。具體的,本發(fā)明涉及提供開放式最短路徑優(yōu)先(OSPF)路由協(xié)議的冗余。工作處理器提供OSPF操作。在本發(fā)明中,一備用處理器被連結(jié)至該工作處理器。在初始的同步期間,來(lái)自該工作處理器的所有的網(wǎng)絡(luò)鏈路協(xié)議信息均被轉(zhuǎn)發(fā)至該備用處理器。該網(wǎng)絡(luò)鏈路信息可包括OSPF狀態(tài)信息,OSPF配置信息,OSPF鄰接信息,OSPF接口信息和OSPF全球協(xié)議信息。之后,對(duì)該網(wǎng)絡(luò)鏈路信息的任何更新均被以有序的和受控的方式立即轉(zhuǎn)發(fā)至該備用處理器。一旦工作的處理器產(chǎn)生故障,路由器切換到備用處理器上,并且所有的OSPF協(xié)議操作由備用處理器操作。在本發(fā)明中,鏈路協(xié)議的所有狀態(tài)立即開始工作,就好象沒有發(fā)生故障一樣。相鄰的路由器將不會(huì)注意到在切換后有任何的不同,并且在切換后也不需要來(lái)自相鄰路由器的任何附加信息。因此,路由器的傳送能力不會(huì)受到影響,鄰近的路由器也不會(huì)注意到系統(tǒng)發(fā)生了故障。
在本發(fā)明的一個(gè)具體裝置中,在同步初始階段,在工作處理器和備用處理器中確定一個(gè)隱藏的OSPF接口用于該路由器的每個(gè)區(qū)域。此隱藏接口是一個(gè)點(diǎn)對(duì)點(diǎn)的無(wú)編號(hào)接口,在外部看不到。工作處理器的鏈路狀態(tài)數(shù)據(jù)庫(kù)與備用處理器通過(guò)此隱藏OSPF接口同步。鏈路協(xié)議信息也通過(guò)此隱藏OSPF接口從工作處理器傳送到備用處理器。一旦兩個(gè)處理器的同步建立,每個(gè)區(qū)域的隱藏OSPF接口將被刪除。
本發(fā)明的工作和備用OSPF處理器處于高度同步的狀態(tài),也可稱為熱備用狀態(tài)。因此,當(dāng)工作的處理器故障時(shí)可以非常立即的切換到備用處理器。
下面的圖示將更加詳細(xì)地反映本發(fā)明。
圖1是一個(gè)實(shí)現(xiàn)OSPF冗余的系統(tǒng)的示意圖。
圖2是冗余軟件實(shí)現(xiàn)的示意圖。
圖3是每個(gè)OSPF區(qū)域的隱藏接口執(zhí)行的示意圖。
圖4是在現(xiàn)用OSPF控制卡上運(yùn)行的OSPF處理的狀態(tài)的示意圖。
圖5是從現(xiàn)用處理到備用處理傳送網(wǎng)絡(luò)鏈路狀態(tài)信息的步驟的流程圖。
具體實(shí)施例方式
現(xiàn)在將詳細(xì)參考本發(fā)明的一個(gè)具體實(shí)施例進(jìn)行說(shuō)明,附圖中示有其實(shí)例。在任何可能的地方,同樣的參考編號(hào)將在整個(gè)附圖和說(shuō)明書用于值代相同或類似的部分。
圖1是依據(jù)本發(fā)明的在路由器10中實(shí)現(xiàn)鏈路協(xié)議冗余的系統(tǒng)的示意圖。路由器11包括現(xiàn)用OSPF控制卡12?,F(xiàn)用OSPF控制卡12執(zhí)行OSPF運(yùn)算。OSPF運(yùn)算包括建立保持和檢驗(yàn)到一個(gè)或多個(gè)相鄰的路由器15的一個(gè)或多個(gè)鄰接(鄰接)14,與相鄰路由器交換網(wǎng)絡(luò)信息并更新本地路由表為最好的網(wǎng)絡(luò)路由。當(dāng)兩個(gè)相鄰路由器的鏈路狀態(tài)數(shù)據(jù)庫(kù)同步后,兩個(gè)路由器就稱為鄰接的。鄰接控制僅在鄰接處發(fā)送和接收的路由協(xié)議數(shù)據(jù)包的分配。
與路由器11連接的備用OSPF控制卡18是可移除的。沒有備用OSPF控制卡時(shí),現(xiàn)用OSPF控制卡12工作在無(wú)冗余模式?,F(xiàn)用OSPF控制卡12通過(guò)通信信道16將網(wǎng)絡(luò)鏈路協(xié)議信息15傳送到備用OSPF控制卡18中。通信信道16最好是快速、可靠的通信信道。例如,通信信道16可以是雙工以太網(wǎng)。網(wǎng)絡(luò)鏈路協(xié)議信息15可以過(guò)程間控制(IPC)消息的形式傳輸?,F(xiàn)用OSPF控制卡12和備用OSPF控制卡18上運(yùn)行有相同的冗余軟件用于OSPF運(yùn)算19。用于OSPF運(yùn)算19的冗余軟件控制現(xiàn)用OSPF控制卡12和備用OSPF控制卡18之間網(wǎng)絡(luò)鏈路協(xié)議信息15的更新,并且使用系統(tǒng)狀態(tài)信息來(lái)辨別工作模式和備用模式,下面有更詳細(xì)的敘述。
本發(fā)明的一個(gè)實(shí)施例利用運(yùn)行在Amber Network ASR2000路由器(也可以是ASR2020)上的OSPF協(xié)議。這里完全引用結(jié)合AmberNetwork ASR2000和ASR2020技術(shù)手冊(cè)。現(xiàn)用OSPF控制卡12和備用OSPF控制卡18是連接于線路卡和路由器ASIC驅(qū)動(dòng)器的處理程序??梢岳斫猓m然系統(tǒng)10是根據(jù)OSPF協(xié)議運(yùn)行的,本發(fā)明還能夠與其他常規(guī)的鏈路協(xié)議共同使用。
在OSPF控制卡18連接到路由器11上后,使用用于OSPF運(yùn)算19的冗余軟件,從正在運(yùn)行的現(xiàn)用OSPF控制卡12到備用OSPF控制卡18進(jìn)行為網(wǎng)絡(luò)鏈路信息15的成批更新的初始同步,。網(wǎng)絡(luò)鏈路信息15包括配置、狀態(tài)和學(xué)習(xí)信息。
完成初始同步后,OSPF現(xiàn)用和備用處理充分冗余,以用于OSPF運(yùn)算19的冗余軟件運(yùn)行的OSPF程序以進(jìn)一步的更新模式進(jìn)行操作。更新可以傳遞到現(xiàn)用OSPF控制卡12中。所有的更新都傳送到備用的OSPF控制卡18中。備用OSPF控制卡18接收所有的OSPF消息并進(jìn)行更新,以保持與現(xiàn)用OSPF控制卡12的完全實(shí)時(shí)同步。因此,通過(guò)冗余,備用OSPF控制卡18完全反映現(xiàn)用OSPF控制卡12狀態(tài)。這種情況,稱為熱備用,現(xiàn)用OSPF控制卡12和備用OSPF控制卡18保持完全同步的狀態(tài)。因此,如果現(xiàn)用OSPF控制卡12發(fā)生故障,備用OSPF控制卡18將開始工作并立即接管現(xiàn)用OSPF控制卡12以前執(zhí)行的所有操作。
圖2是現(xiàn)用OSPF控制卡12和備用OSPF控制卡18的OSPF運(yùn)算19的冗余軟件的詳細(xì)示意圖。冗余卡管理器(RCM)20是保持每個(gè)任務(wù)的同步狀態(tài)機(jī)的任務(wù)。用于現(xiàn)用OSPF控制卡12的OSPF運(yùn)算19的冗余軟件的所有任務(wù)與RCM 20相互作用以向備用OSPF控制卡18發(fā)出網(wǎng)絡(luò)鏈路信息15。OSPF任務(wù)21是用于確定運(yùn)行在現(xiàn)用OSPF控制卡12上的OSPF程序狀態(tài)的任務(wù)。軟件冗余管理器22是與RCM 20相互作用的一個(gè)模塊,用于確定從工作狀態(tài)到備用狀態(tài)的切換,在工作狀態(tài)下,現(xiàn)用OSPF控制卡12執(zhí)行OSPF操作,在備用狀態(tài)下,備用OSPF控制卡18接管OSPF操作。
在初始同步期間,備用OSPF控制卡18中的冗余卡管理器(RCM)20與現(xiàn)用OSPF控制卡12中的OSPF任務(wù)21進(jìn)行聯(lián)系以獲取任務(wù)信息?,F(xiàn)用OSPF控制卡12中的OSPF任務(wù)21自動(dòng)地處理OSPF信息,并計(jì)算存儲(chǔ)在路由表管理器(RTM)34中的路由。現(xiàn)用OSPF控制卡12標(biāo)記相應(yīng)的內(nèi)部狀態(tài)并通過(guò)RCM 20將鏈路狀態(tài)數(shù)據(jù)庫(kù)信息23、OSPF狀態(tài)信息24與OSPF配置信息25、OSPF鄰接點(diǎn)信息26、OSPF接口信息27和OSPF全局協(xié)議信息28傳送到備用OSPF控制卡18中。
在初始同步期間,可對(duì)運(yùn)行在現(xiàn)用OSPF控制卡12上的現(xiàn)用OSPF程序進(jìn)行鎖定。例如,在現(xiàn)用OSPF控制卡12上,在建立OSPF鄰接時(shí)可以保持鎖定,使得在初始同步期間無(wú)法建立新的OSPF鄰接。
在初始同步階段,現(xiàn)用OSPF控制卡12和備用OSPF控制卡18的每個(gè)區(qū)域都建立了隱藏的OSPF接口30。區(qū)域是指一組連續(xù)的網(wǎng)絡(luò)和附屬的主機(jī)。隱藏的OSPF接口30是一個(gè)點(diǎn)對(duì)點(diǎn)的無(wú)編號(hào)接口,它與系統(tǒng)10一起使用,在外部看不到。由于發(fā)現(xiàn)相鄰OSPF,隱藏的OSPF鄰接32會(huì)在OSPF接口30上自動(dòng)產(chǎn)生。數(shù)據(jù)庫(kù)33在整個(gè)隱藏的OSPF鄰接32中是同步的。因此,在現(xiàn)用OSPF控制卡12和備用OSPF控制卡18間每個(gè)區(qū)域有一個(gè)隱藏的OSPF鄰接32。隱藏的OSPF鄰接32可用于同步存儲(chǔ)于數(shù)據(jù)庫(kù)33中的鏈路狀態(tài)數(shù)據(jù)庫(kù)信息23。
圖3圖示了一個(gè)隱藏OSPF接口的實(shí)現(xiàn)。路由器11有兩個(gè)接口,接口14a屬于連接在路由器15a上的區(qū)域0,接口14b屬于連接在路由器15b上的區(qū)域2。在路由器11中,建立了兩個(gè)隱藏的OSPF接口,隱藏接口30a用于區(qū)域O,隱藏接口30b用于區(qū)域2。隱藏OSPF鄰接32a在隱藏OSPF接口30a上運(yùn)行,隱藏OSPF鄰接32b在隱藏OSPF接口30b上運(yùn)行。外部鏈路狀態(tài)廣播數(shù)據(jù)包(LSA)只通過(guò)區(qū)域0的隱藏接口30a同步。
圖2中,現(xiàn)用OSPF控制卡12和備用OSPF控制卡18處理OSPF數(shù)據(jù)包并先計(jì)算最短路徑,以確定從路由器到目標(biāo)網(wǎng)絡(luò)的最短路徑(通過(guò)考慮耗費(fèi))?,F(xiàn)用OSPF控制卡12能夠發(fā)送OSPF數(shù)據(jù)包到線路卡上用于傳送到相鄰路由器。備用OSPF控制卡18不發(fā)送任何OSPF數(shù)據(jù)包到線路卡上用于傳送到相鄰路由器。現(xiàn)用OSPF控制卡12和備用OSPF控制卡18對(duì)路由表管理器(RTM)34進(jìn)行路由更新,如圖2所示。備用OSPF控制卡18的RTM 34可更新到現(xiàn)用OSPF控制卡12的再分配路由。IP接口管理器35將系統(tǒng)10連接到互聯(lián)網(wǎng)協(xié)議(IP)上。命令行接口(CLI)的命令使用數(shù)據(jù)存儲(chǔ)器36提供OSPF配置。數(shù)據(jù)存儲(chǔ)器36是一個(gè)能提供在存儲(chǔ)器38中可靠存儲(chǔ)的任務(wù)。例如,存儲(chǔ)器38可以是一個(gè)壓縮的閃存盤。因此,所有由備用OSPF控制卡18得到的信息可以直接從現(xiàn)用OSPF控制卡12、IP接口管理器35或數(shù)據(jù)存儲(chǔ)器36中獲得。
工作狀態(tài)與現(xiàn)用OSPF控制卡12相關(guān),備用狀態(tài)與備用OSPF控制卡18相關(guān)。從現(xiàn)用OSPF控制卡12到備用OSPF控制卡18的切換能夠在現(xiàn)用OSPF控制卡12發(fā)生故障時(shí)進(jìn)行。當(dāng)切換發(fā)生時(shí),備用OSPF控制卡18將其狀態(tài)轉(zhuǎn)換為工作并接管所有的OSPF操作。備用OSPF控制卡19恢復(fù)所有取消的OSPF動(dòng)作并開始向線路卡發(fā)送OSPF數(shù)據(jù)包。
圖4是一個(gè)在現(xiàn)用OSPF控制卡12上運(yùn)行的現(xiàn)用OSPF程序40的狀態(tài)示意圖。OSPF_FAULT_INIT狀態(tài)41是現(xiàn)用OSPF程序40的初始狀態(tài)。如果系統(tǒng)10只使用現(xiàn)用OSPF控制卡12工作,那么系統(tǒng)10會(huì)保持在OSPF_FAULT_INIT狀態(tài)41等待備用OSPF控制卡18啟動(dòng)。
一旦備用OSPF控制卡18開始工作,OSPF_FAULT_VERIFY狀態(tài)42被輸入,此過(guò)程中備用OSPF控制卡18安裝來(lái)自數(shù)據(jù)存儲(chǔ)器36(在現(xiàn)用OSPF控制卡12中)的OSPF配置信息25,同時(shí)OSPF配置在現(xiàn)用OSPF控制卡12上被激活,見圖2。此時(shí),現(xiàn)用OSPF控制卡12上的配置禁用。來(lái)自數(shù)據(jù)存儲(chǔ)器36中備用OSPF控制卡18的OSPF配置被同步并以現(xiàn)用OSPF程序40進(jìn)行檢驗(yàn)?,F(xiàn)用OSPF程序40檢驗(yàn)運(yùn)行在備用OSPF控制卡18上的備用OSPF處理44是否完全同步配置以及數(shù)據(jù)存儲(chǔ)器36的系統(tǒng)信息。例如,現(xiàn)用OSPF控制卡12可以檢驗(yàn)接口數(shù)量和參數(shù)。如果檢驗(yàn)失敗,現(xiàn)用OSPF程序40可以在預(yù)先確定的時(shí)間間隔后再試,如幾秒鐘后。
在檢驗(yàn)OSPF配置后,現(xiàn)用OSPF程序40和備用OSPF處理44輸入OSPF_FAULT_SYNC狀態(tài)45。在45中,相鄰信息通過(guò)位于現(xiàn)用OSPF控制卡12和備用OSPF控制卡18間的通信鏈路16傳輸,如圖5塊50所示。相鄰信息可以作為IPC消息由現(xiàn)用OSPF程序40傳送。多數(shù)IPC消息可以被用于傳送大量的鄰接點(diǎn)。備用OSPF處理44確認(rèn)所接收的IPC消息,并向現(xiàn)用OSPF控制卡12發(fā)送一個(gè)確認(rèn)IPC消息,如塊52所示。
在傳遞相鄰信息時(shí),現(xiàn)用OSPF控制卡12通過(guò)忽略來(lái)自未知個(gè)體的問(wèn)候數(shù)據(jù)包來(lái)拒絕接受任何新的鄰接點(diǎn)。當(dāng)從現(xiàn)用OSPF控制卡12到備用OSPF控制卡18的所有相鄰信息傳遞以后,現(xiàn)用OSPF控制卡12將發(fā)送一個(gè)結(jié)束消息,如塊53所示。
隨后,備用OSPF處理44從塊54的現(xiàn)用OSPF控制卡12下載鏈路狀態(tài)數(shù)據(jù)庫(kù)信息。鏈路狀態(tài)數(shù)據(jù)庫(kù)信息可以使用由OSPF提供的內(nèi)部數(shù)據(jù)庫(kù)同步方式被同步,如RFC2328描述,可作為本應(yīng)用的參考。每個(gè)路由器在使用“數(shù)據(jù)庫(kù)交換程序”的數(shù)據(jù)庫(kù)同步中通過(guò)向相鄰路由器發(fā)送一列數(shù)據(jù)庫(kù)說(shuō)明數(shù)據(jù)包描述其數(shù)據(jù)庫(kù)。這兩個(gè)路由器成為主/從關(guān)系。每個(gè)數(shù)據(jù)庫(kù)說(shuō)明數(shù)據(jù)包描述一組屬于路由器數(shù)據(jù)庫(kù)的LSA。當(dāng)相鄰路由器發(fā)現(xiàn)一個(gè)LSA比其自身數(shù)據(jù)庫(kù)備份中的更新,它會(huì)記錄下應(yīng)請(qǐng)求此較新的LSA。每個(gè)數(shù)據(jù)庫(kù)說(shuō)明數(shù)據(jù)包具有一序列號(hào)。由主路由器發(fā)送的數(shù)據(jù)庫(kù)說(shuō)明數(shù)據(jù)包(查詢)被從路由器通過(guò)回應(yīng)該序列號(hào)進(jìn)行確認(rèn)。查詢和回應(yīng)都包含鏈路狀態(tài)數(shù)據(jù)摘要。只有主路由器被允許再次發(fā)送數(shù)據(jù)庫(kù)說(shuō)明數(shù)據(jù)包,此數(shù)據(jù)包經(jīng)過(guò)一個(gè)固定的時(shí)間間隔后發(fā)出。當(dāng)數(shù)據(jù)庫(kù)說(shuō)明程序結(jié)束,數(shù)據(jù)庫(kù)被認(rèn)為已經(jīng)同步并且路由器標(biāo)記為是完成接近的。這時(shí)此接近完全可以起作用,并且在兩個(gè)路由器LSA中進(jìn)行了通告。在現(xiàn)用OSPF控制卡12和備用OSPF控制卡18之間確定隱藏的OSPF相鄰32用于下載鏈路狀態(tài)數(shù)據(jù)庫(kù)信息23。當(dāng)現(xiàn)用OSPF控制卡12收到備用OSPF控制卡18的數(shù)據(jù)庫(kù)需求消息時(shí),現(xiàn)用OSPF控制卡12注意到備用OSPF控制卡18正在開始下載鏈路狀態(tài)數(shù)據(jù)庫(kù)信息23。下載鏈路狀態(tài)信息會(huì)一直持續(xù),直到現(xiàn)用OSPF控制卡12和備用OSPF控制卡18中出現(xiàn)同步鏈路狀態(tài)數(shù)據(jù)庫(kù)。
當(dāng)備用OSPF控制卡18具有與現(xiàn)用OSPF控制卡12同步的鏈路狀態(tài)數(shù)據(jù)庫(kù)時(shí),現(xiàn)用OSPF控制卡12與備用OSPF控制卡18一起進(jìn)入OSPF_FAULT_FULL狀態(tài)46。OSPF_FAULT_FULL狀態(tài)46是一種熱備份狀態(tài),此時(shí)的備用OSPF控制卡18在現(xiàn)用OSPF控制卡12發(fā)生故障時(shí)能夠立即接管其所有的操作。在OSPF_FAULT_FULL狀態(tài)46,隱藏的OSPF接口30與隱藏的鄰接32被刪除。現(xiàn)用OSPF程序40通過(guò)使用IPC消息經(jīng)RCM 20立即向備用OSPF控制卡18發(fā)送更新的OSPF狀態(tài)信息24、OSPF配置信息25、OSPF鄰接信息26、OSPF接口信息27和OSPF全局協(xié)議信息28,來(lái)不斷更新對(duì)備用OSPF處理44的任何變化。任何現(xiàn)用OSPF控制卡12相鄰狀態(tài)的改變或相鄰鄰接的丟失都會(huì)通過(guò)通信鏈路18立刻傳遞到備用OSPF控制卡18中。任何鏈路狀態(tài)數(shù)據(jù)的變化都要以常規(guī)的OSPF同步方式通過(guò)通信鏈路15傳送到備用OSPF控制卡18。
現(xiàn)用OSPF控制卡的配置變化可以作為IPC消息傳遞到備用OSPF控制卡18中,以觸發(fā)備用OSPF控制卡18讀取數(shù)據(jù)存儲(chǔ)器36中的更新信息。或者,配置命令能夠從CLI傳遞到備用OSPF控制卡18中。
如果當(dāng)備用OSPF控制卡18處于OSPF_FAULT_FULL狀態(tài)時(shí)現(xiàn)用OSPF控制卡12發(fā)生故障,備用OSPF控制卡18會(huì)立即接管所有的OSPF操作。如果當(dāng)備用OSPF控制卡18處于OSPF_FAULT_INIT狀態(tài)41、OSPF_FAULT_VERIFY狀態(tài)12或OSPF_FAULT_SYNC狀態(tài)45之一時(shí)現(xiàn)用OSPF控制卡12發(fā)生故障,說(shuō)明備用OSPF控制卡沒有處于完全的冗余狀態(tài),備用卡將復(fù)位。因?yàn)橄到y(tǒng)沒有達(dá)到冗余狀態(tài),現(xiàn)用卡的故障將使運(yùn)行中斷。
應(yīng)當(dāng)理解,上述實(shí)施例只是許多能夠體現(xiàn)本發(fā)明原理的應(yīng)用的可能的具體實(shí)施例中的少數(shù)。本專業(yè)技術(shù)人員在不脫離本發(fā)明的精神和范圍的情況下,根據(jù)這些原理,可很容易地設(shè)計(jì)出其他多種不同的結(jié)構(gòu)。
權(quán)利要求
1.一種鏈路協(xié)議冗余方法,包括下列步驟提供具有工作處理器的路由器;將一備用處理器連接至所述工作處理器;在將所述備用處理器連結(jié)至所述備用處理器后,將網(wǎng)絡(luò)鏈路協(xié)議信息從所述工作處理器發(fā)送至所述備用處理器,以在所述備用處理器中進(jìn)行與所述工作處理器的鏈路配置和鏈路協(xié)議狀態(tài)的同步;當(dāng)檢測(cè)到在所述工作處理器中有故障時(shí),將所述路由器切換到所述備用處理器;其中,所述鏈路協(xié)議的所有狀態(tài)會(huì)立即起作用,好像沒有故障發(fā)生一樣。
2.如權(quán)利要求1所述的方法,其中所述鏈路協(xié)議是開放最短路徑優(yōu)先(OSPF)協(xié)議。
3.如權(quán)利要求2所述的方法,其中,所述鏈路協(xié)議信息是鏈路狀態(tài)數(shù)據(jù)庫(kù)信息、OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息。
4.如權(quán)利要求2所述的方法,進(jìn)一步包含在所述工作處理器和所述備用處理器之間進(jìn)行所述鏈路配置和鏈路協(xié)議狀態(tài)的同步之后處理后處理相同OSPF數(shù)據(jù)包的步驟。
5.如權(quán)利要求3所述的方法,其中,所述發(fā)送鏈路協(xié)議信息的步驟通過(guò)下列步驟實(shí)現(xiàn)為所述工作處理器的每個(gè)區(qū)域創(chuàng)建一個(gè)隱藏的OSPF接口;為所述備用處理器的每個(gè)區(qū)域創(chuàng)建一個(gè)隱藏的OSPF接口;從所述工作處理器的所述隱藏的OSPF接口發(fā)送所述鏈路狀態(tài)數(shù)據(jù)庫(kù)信息到所述備用處理器的所述隱藏的OSPF接口,直到所述備用處理器的所述鏈路狀態(tài)數(shù)據(jù)庫(kù)與所述工作處理器的所述鏈路狀態(tài)數(shù)據(jù)庫(kù)同步。
6.如權(quán)利要求5所述的方法,進(jìn)一步包括使用所述工作處理器的所述隱藏的OSPF接口和所述備用處理器的所述隱藏的OSPF接口發(fā)送所述OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息的步驟。
7.如權(quán)利要求5所述的方法,其中所述鏈路協(xié)議信息采用進(jìn)程間控制(IPC)消息的形式。
8.如權(quán)利要求7所述的方法,其中所述OSPF配置信息根據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的命令行界面(CLI)命令確定。
9.如權(quán)利要求1所述的方法,進(jìn)一步包含下列步驟更新在所述工作處理器中的網(wǎng)絡(luò)鏈路協(xié)議信息;以及將所述更新的網(wǎng)絡(luò)鏈路協(xié)議信息發(fā)送到所述備用處理器。
10.如權(quán)利要求4所述的方法,其中,所述發(fā)送步驟是基于OSPF協(xié)議的數(shù)據(jù)庫(kù)交換處理的處理過(guò)程。
11.一種OSPF協(xié)議冗余方法,包含下列步驟提供具有工作處理器的路由器;將一備用處理器連接至所述工作處理器;將網(wǎng)絡(luò)OSPF協(xié)議信息從所述工作處理器發(fā)送到所述備用處理器,用于在備用處理器處進(jìn)行與所述工作處理器的OSPF配置和OSPF協(xié)議狀態(tài)的同步;當(dāng)檢測(cè)到在工作處理器中有故障時(shí),將所述路由器切換至所述備用處理器;其中,所述OSPF協(xié)議的所有狀態(tài)就會(huì)立即起作用,好像沒有故障發(fā)生一樣。
12.一種鏈路協(xié)議冗余方法,包括下列步驟提供具有一工作處理器的路由器;將一備用處理器連接到所述工作處理器;將網(wǎng)絡(luò)鏈路協(xié)議信息從所述工作處理器發(fā)送到所述備用處理器,用于在所述備用處理器中實(shí)現(xiàn)與所述工作處理器的鏈路配置和鏈路協(xié)議狀態(tài)的同步,所述鏈路協(xié)議信息是鏈路狀態(tài)數(shù)據(jù)庫(kù)信息、OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息;且當(dāng)檢測(cè)到在工作處理器中有故障時(shí),把所述路由器切換到所述備用處理器;其中,所述鏈路協(xié)議的所有狀態(tài)會(huì)立即起作用,好像沒有故障發(fā)生一樣。
13.一種實(shí)現(xiàn)OSPF冗余的方法,包含下列步驟提供具有工作處理器裝置和備用處理器裝置的路由器;在所述工作處理器裝置上創(chuàng)建一個(gè)隱藏的OSPF接口,在所述備用處理器裝置上創(chuàng)建一個(gè)隱藏的OSPF接口;通過(guò)一通信鏈路連接所述工作處理器裝置的所述隱藏的OSPF接口至所述備用處理器裝置的所述隱藏的OSPF接口;通過(guò)所述隱藏的OSPF接口利用OSPF協(xié)議同步OSPF路由數(shù)據(jù)庫(kù),使得當(dāng)所述工作處理器裝置上的所述隱藏的OSPF接口和所述備用處理器裝置的所述隱藏的OSPF接口達(dá)到完全接近的狀態(tài)時(shí)同步所述OSPF路由數(shù)據(jù)庫(kù);通過(guò)通信鏈路從所述工作處理器裝置的所述隱藏的OSPF接口發(fā)送OSPF協(xié)議信息到所述備用處理器裝置的所述隱藏的OSPF接口,以便在所述工作處理器裝置和所述備用處理器裝置的狀態(tài)間建立映射;除去所述工作處理器裝置的所述隱藏接口和所述備用處理器裝置的所述隱藏接口;當(dāng)在所述工作處理器裝置中檢測(cè)到故障發(fā)生時(shí),由所述備用處理器裝置取得控制。
14.如權(quán)利要求13所述的方法,其中所述OSPF協(xié)議信息是OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息。
15.如權(quán)利要求14所述的方法,其中所述OSPF配置信息根據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的命令行界面(CLI)命令確定。
16.如權(quán)利要求13所述的方法,進(jìn)一步包含下列步驟更新在所述工作處理器裝置中的網(wǎng)絡(luò)鏈路協(xié)議信息;且發(fā)送所述更新的網(wǎng)絡(luò)鏈路協(xié)議信息到所述備用處理器裝置。
17.如權(quán)利要求13所述的方法,所述同步步驟是基于OSPF協(xié)議的數(shù)據(jù)庫(kù)交換過(guò)程的處理過(guò)程。
18.如權(quán)利要求13所述的方法,進(jìn)一步包含在同步所述工作處理器和所述備用處理器之間的所述鏈路配置和鏈路協(xié)議狀態(tài)后處理相同OSPF數(shù)據(jù)包的步驟。
19.在一個(gè)路由器中提供鏈路協(xié)議冗余的系統(tǒng),包括一個(gè)工作處理器;一個(gè)備用處理器;把網(wǎng)絡(luò)鏈路協(xié)議信息從所述工作處理器發(fā)送到所述備用處理器的裝置,用于在備用處理器中實(shí)現(xiàn)與所述工作處理器的鏈路配置和鏈路協(xié)議狀態(tài)的同步;當(dāng)檢測(cè)到在工作處理器中有故障時(shí)把所述路由器切換到所述備用處理器的裝置;其中,所述鏈路協(xié)議的所有狀態(tài)會(huì)立即起作用,好像沒有故障發(fā)生一樣。
20.如權(quán)利要求19所述的系統(tǒng),其中所述鏈路協(xié)議是開放最短路徑優(yōu)先(OSPF)協(xié)議。
21.如權(quán)利要求19所述的系統(tǒng),其中所述鏈路協(xié)議信息是鏈路狀態(tài)數(shù)據(jù)庫(kù)信息、OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息。
22.如權(quán)利要求21所述的系統(tǒng),其中所述的發(fā)送鏈路協(xié)議信息的裝置包括為所述工作處理器裝置的每個(gè)區(qū)域創(chuàng)建一個(gè)隱藏的OSPF接口的裝置;為所述備用處理器裝置的每個(gè)域上創(chuàng)建一個(gè)隱藏的OSPF接口的裝置;和用于從所述工作處理器的所述隱藏的OSPF接口發(fā)送所述鏈路狀態(tài)數(shù)據(jù)庫(kù)信息到所述備用處理器的所述隱藏OSPF接口,直到所述備用處理器的所述鏈路狀態(tài)數(shù)據(jù)庫(kù)與所述工作處理器的所述鏈路狀態(tài)數(shù)據(jù)庫(kù)同步的裝置。
23.如權(quán)利要求22所述的系統(tǒng),其中,所述用于發(fā)送鏈路協(xié)議信息的裝置包括利用所述工作處理器的所述隱藏的OSPF接口和所述備用處理器的所述隱藏的OSPF接口發(fā)送所述OSPF配置信息、所述OSPF鄰接信息、所述OSPF接口信息和所述OSPF全局協(xié)議信息。
24.如權(quán)利要求23所述的系統(tǒng),其中所述OSPF配置信息根據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的命令行界面(CLI)命令確定。
25.如權(quán)利要求19所述的系統(tǒng),進(jìn)一步包含在所述工作處理器處更新網(wǎng)絡(luò)鏈路協(xié)議信息的裝置;發(fā)送所述更新的網(wǎng)絡(luò)鏈路協(xié)議信息到所述備用處理器的裝置。
26.如權(quán)利要求19所述的系統(tǒng),其中所述用于發(fā)送網(wǎng)絡(luò)鏈路協(xié)議信息的裝置包括一個(gè)冗余卡管理器,它用于維護(hù)所述鏈路協(xié)議狀態(tài)的同步狀態(tài)器用于所述協(xié)議的任務(wù),所述網(wǎng)絡(luò)鏈路協(xié)議信息通過(guò)所述冗余卡管理器發(fā)送。
27.如權(quán)利要求19所述的系統(tǒng),進(jìn)一步包括用于確定所述任務(wù)的所述鏈路協(xié)議狀態(tài)并向所述冗余卡管理器發(fā)送所述鏈路協(xié)議狀態(tài)的任務(wù)管理器。
28.如權(quán)利要求19所述的系統(tǒng),其中所述用于切換所述路由器到所述備用處理器的裝置包含一個(gè)軟件冗余管理器,它與所述冗余卡管理器交互以顯示從所述工作處理器到所述備用處理器的切換。
29.如權(quán)利要求19所述的系統(tǒng),其中在將備用處理器連結(jié)到所述工作處理器之前,所述任務(wù)的所述狀態(tài)進(jìn)入為初始狀態(tài)的OSPF_FAULT_INIT狀態(tài)。
30.如權(quán)利要求19所述的系統(tǒng),其中在所述工作處理器和所述備用處理器的所述鏈路配置同步期間,所述任務(wù)的所述狀態(tài)進(jìn)入OSPF_FAULT_VERIFY狀態(tài)。
31.如權(quán)利要求19所述的系統(tǒng),其中在將所述鏈路協(xié)議信息從所述工作處理器發(fā)送到所述備用處理器期間,所述任務(wù)的所述狀態(tài)進(jìn)入OSPF_FAULT_SYNC狀態(tài),所述鏈路協(xié)議信息包括鏈路狀態(tài)數(shù)據(jù)庫(kù)信息、OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息。
32.如權(quán)利要求19所述的系統(tǒng),其中在所述發(fā)送網(wǎng)絡(luò)鏈路協(xié)議信息之后,所述任務(wù)的所述狀態(tài)進(jìn)入OSPF_FAULT_FULL狀態(tài),所述OSPF_FAULT_FULL狀態(tài)熱備用狀態(tài),其中所述備用狀態(tài)可立即接管所述備用處理器的所有操作。
33.如權(quán)利要求19所述的系統(tǒng),其中所述工作處理器是一現(xiàn)用OSPF控制卡。
34.如權(quán)利要求19所述的系統(tǒng),其中所述備用處理器是一個(gè)備用OSPF控制卡。
35.如權(quán)利要求19所述的系統(tǒng),其中所述用于發(fā)送的裝置基于OSPF協(xié)議的數(shù)據(jù)庫(kù)交換過(guò)程進(jìn)行處理。
36.如權(quán)利要求19所述的系統(tǒng),進(jìn)一步包含在所述工作處理器和所述備用處理器之間同步所述鏈路配置和鏈路協(xié)議狀態(tài)后處理相同的OSPF數(shù)據(jù)包的裝置。
37.一種在路由器中提供開放最短路徑優(yōu)先(OSPF)協(xié)議冗余的系統(tǒng),包括一個(gè)工作處理器;一個(gè)備用處理器;把網(wǎng)絡(luò)OSPF協(xié)議信息從所述工作處理器傳送到所述備用處理器的裝置,用于在所述備用處理器中實(shí)現(xiàn)與所述工作處理器的鏈路配置和OSPF協(xié)議狀態(tài)的同步;當(dāng)檢測(cè)到在所述工作處理器中有故障發(fā)生時(shí)把所述路由器切換到所述備用處理器的裝置;其中,所述OSPF協(xié)議的所有狀態(tài)就會(huì)立即起作用,好像沒有故障發(fā)生一樣。
38.在一個(gè)路由器中提供開放最短路徑優(yōu)先(OSPF)協(xié)議冗余的系統(tǒng)包括一個(gè)工作處理器;一個(gè)備用處理器;把網(wǎng)絡(luò)OSPF協(xié)議信息從所述工作處理器發(fā)送到所述備用處理器的裝置,用于在備用處理器中實(shí)現(xiàn)與所述工作處理器的鏈路配置和OSPF協(xié)議狀態(tài)的同步,包括鏈路狀態(tài)數(shù)據(jù)庫(kù)信息、OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息;當(dāng)檢測(cè)到在所述工作處理器中有故障發(fā)生時(shí)把所述路由器切換到所述備用處理器的裝置;其中所述OSPF協(xié)議的所有狀態(tài)會(huì)立即起作用,好像沒有故障發(fā)生一樣。
39.一種在路由器中實(shí)現(xiàn)OSPF冗余的系統(tǒng),包含一個(gè)工作處理器裝置;一個(gè)備用處理器裝置;在所述工作處理器裝置上創(chuàng)建一個(gè)隱藏的OSPF接口和在所述備用處理器裝置上創(chuàng)建一個(gè)隱藏的OSPF接口的裝置;用于通過(guò)通信鏈路連接所述工作處理器裝置的所述隱藏的OSPF接口和所述備用處理器裝置的所述隱藏的OSPF接口的裝置;利用OSPF協(xié)議通過(guò)所述隱藏的OSPF接口同步OSPF路由數(shù)據(jù)庫(kù)的裝置,使得當(dāng)所述工作處理器裝置的所述隱藏的OSPF接口和所述備用處理器裝置的所述隱藏的OSPF接口達(dá)到完全接近的狀態(tài)時(shí)同步所述OSPF路由數(shù)據(jù)庫(kù);通過(guò)通信鏈路從所述工作處理器裝置的所述隱蔽的OSPF接口發(fā)送OSPF協(xié)議信息到所述備用處理器裝置的所述隱藏的OSPF接口,以在所述工作處理器裝置和備用處理器裝置的狀態(tài)之間建立映射的裝置;除去所述工作處理器裝置的所述隱藏的接口和所述備用處理器裝置的所述隱藏的接口的裝置;當(dāng)在所述工作處理器裝置中檢測(cè)到故障時(shí)由備用處理器裝置取得控制的裝置。
40.如權(quán)利要求39所述的系統(tǒng),其中所述OSPF協(xié)議信息是OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息。
41.如權(quán)利要求39所述的系統(tǒng),其中所述OSPF配置信息根據(jù)存儲(chǔ)在數(shù)據(jù)庫(kù)中的命令行界面(CLI)命令確定。
42.如權(quán)利要求39的系統(tǒng),進(jìn)一步包含用于更新在所述工作處理器裝置中的網(wǎng)絡(luò)鏈路協(xié)議信息的裝置;用于發(fā)送所述更新的網(wǎng)絡(luò)鏈路協(xié)議信息到所述備用處理器裝置的裝置。
43.如權(quán)利要求39所述的系統(tǒng),其中所述用于發(fā)送的裝置基于OSPF協(xié)議數(shù)據(jù)庫(kù)交換過(guò)程進(jìn)行處理。
44.如權(quán)利要求39所述的系統(tǒng),進(jìn)一步包含在所述工作處理器和所述備用處理器之間實(shí)現(xiàn)所述鏈路配置和鏈路協(xié)議狀態(tài)的同步后,用于處理相同的OSPF數(shù)據(jù)包的裝置。
全文摘要
本發(fā)明關(guān)于在路由器(11)中實(shí)現(xiàn)鏈路層協(xié)議冗余的方法和系統(tǒng),具體的,關(guān)于提供開放式最短路徑優(yōu)先(OSPF)路由協(xié)議的冗余。一個(gè)工作處理器(12)提供OSPF運(yùn)算。在本發(fā)明中,一備用處理器(18)被連接至該工作處理器(12)。在啟示同步階段,所有來(lái)自工作處理器(12)的網(wǎng)絡(luò)鏈路協(xié)議信息均被發(fā)送至備用處理器(18)。網(wǎng)絡(luò)鏈路信息包括OSPF狀態(tài)信息、OSPF配置信息、OSPF鄰接信息、OSPF接口信息和OSPF全局協(xié)議信息。然后,網(wǎng)絡(luò)鏈路協(xié)議信息的任何更新都會(huì)立即被發(fā)送到備用處理器(18)。一旦工作處理器(12)發(fā)生故障,路由器(11)會(huì)被切換到備用處理器(18),且所有OSPF協(xié)議操作均在備用處理器(18)上進(jìn)行。在本發(fā)明中,鏈路協(xié)議的所有狀態(tài)立即開始運(yùn)行,好象沒有發(fā)生過(guò)故障一樣。
文檔編號(hào)G06F11/20GK1610898SQ02802723
公開日2005年4月27日 申請(qǐng)日期2002年7月15日 優(yōu)先權(quán)日2001年8月22日
發(fā)明者文革·任 申請(qǐng)人:諾基亞公司