亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

應(yīng)用路由選擇協(xié)議的堆疊式路由器的制作方法

文檔序號:7589612閱讀:215來源:國知局
專利名稱:應(yīng)用路由選擇協(xié)議的堆疊式路由器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及基于信息包的通訊系統(tǒng),該系統(tǒng)采用編址信息包進行系統(tǒng)中單元之間的信息傳輸,更特別地,是關(guān)于多個路由選擇實體的“堆疊”或“層疊”以使其看起來構(gòu)成一個單一的邏輯路由選擇實體。本發(fā)明特別地涉及路由選擇協(xié)議的改編,特別是路由器的“堆疊”或“層疊”中的開放式最短路徑第一協(xié)議(OSPF協(xié)議,open shortest path first protocol)。
背景技術(shù)
具有多個用于與其它單元或用戶連接的端口的網(wǎng)絡(luò)單元如轉(zhuǎn)換器,通常都由固定數(shù)量的端口組成,以實現(xiàn)運作的效率。已知“堆疊”或“層疊”這些單元可以通過相互連接以及共用一個控制或管理系統(tǒng)以由多個單獨的單元構(gòu)建一個單一的轉(zhuǎn)換或路由選擇實體來實現(xiàn)。一個特定的例子已在我們2002年2月2日申請的英國專利(申請?zhí)?202425.5)中被公開(公開號GB-2384956-A)。
眾所周知,路由器不同于網(wǎng)橋,是其它設(shè)備在不同的網(wǎng)絡(luò)或子網(wǎng)絡(luò)之間發(fā)送信息包所需要的。因此,需要路由器以對信息包進行實質(zhì)性處理,例如一個與MAC地址相關(guān)的變化,該變化是根據(jù)一個指向某網(wǎng)絡(luò)地址定義的目標的選定的發(fā)送。此外,路由器最好能夠執(zhí)行路由選擇協(xié)議,該路由選擇協(xié)議通常包括廣告功能和收聽功能,通過該廣告功能某路由器可以通過發(fā)送路由器的信息包以及其能夠抵達的網(wǎng)絡(luò)通知其它路由器;收聽功能通過響應(yīng)這些信息包建立路由選擇列表,該列表用于生成發(fā)送的數(shù)據(jù),比如MAC地址,以及相對向信息包的網(wǎng)絡(luò)地址導(dǎo)出的端口編號。
前述的應(yīng)用描述了一個路由選擇單元的級聯(lián)堆疊,其中每個單元都能夠發(fā)送在其外部端口收到的信息包。這些路由選擇單元能夠引導(dǎo)一項旨在選出一個引導(dǎo)路由器的選舉,以將網(wǎng)絡(luò)和介質(zhì)訪問控制地址提供給該堆疊中其它單元的路由器界面。該堆疊被組織成只有引導(dǎo)路由器才能執(zhí)行一個完整的路由選擇協(xié)議,而從屬單元具有該路由選擇協(xié)議內(nèi)的選定的功能,盡管受到抑制,但是仍具備完全的路由選擇能力。
堆疊的路由器的一個重要的特點是提供了恢復(fù)力,也就是說,提供了這樣一種功能,即使堆疊中單元間的連接發(fā)生故障,或者堆疊中的一個單元出現(xiàn)故障,該功能可以使堆疊或至少是堆疊中剩余的部分在適當?shù)牟僮髦械靡岳^續(xù)?;謴?fù)力通常要求在堆疊或網(wǎng)絡(luò)級聯(lián)中提供至少一個或者多個閉合路徑。一個簡單的例子是連接堆疊“頂端”的單元與“底端”的單元,以允許堆疊中單元之間的連通,不管它們中的哪一個出現(xiàn)故障。
作為替換,連通性的維持可以借助于堆疊中連接一個以上單元的相鄰轉(zhuǎn)換單元得以維持。
恢復(fù)力的一個特點(特別是當其涉及不在堆疊中的單元的時候)是,當一組功能單元與堆疊中的其它單元分離時,能夠啟動一個新的選舉。考慮到臨時中斷的堆疊可以被重新連接,恢復(fù)力的另一個的優(yōu)點是能夠避免同一堆疊或一個堆疊的剩余部分中有兩個選出的主控單元。共同申請的英國專利(申請?zhí)?220013.7,申請日2002年8月29日,公布號GB-2386524-A)公開了一種堆疊式路由器單元,其中一個引導(dǎo)單元或主控單元能夠轉(zhuǎn)變到主控路由選擇狀態(tài),并在該狀態(tài)下將其地址作為廣告向該網(wǎng)絡(luò)中其它單元傳播。當某單元收到該廣告后,可以轉(zhuǎn)變到一個主控橋連狀態(tài),同時其路由選擇功能被停止。這個功能的目的是使一個堆疊區(qū)段中的一個單一的單元變成一個主控單元;也可以啟動用于重新連接的堆疊的引導(dǎo)或主控單元間的談判,并將因此而能夠根據(jù)上述應(yīng)用對堆疊中的路由選擇界面實施控制。
前述專利申請還公開了恢復(fù)性堆疊路由器的更多的細節(jié),其所公開的內(nèi)容在此引作參考。
如上文所述,路由器的一項功能就是執(zhí)行一個路由選擇協(xié)議以確定指向一個網(wǎng)絡(luò)目的地的一條路由。用于這一目的的一個重要協(xié)議就是OSPF協(xié)議。在例如RFC-2328 OSPF第二版(Ascend通訊公司,1998年4月)中對OSPF協(xié)議以介紹的形態(tài)進行了全面的描述。以下假設(shè)讀者已經(jīng)具備了該協(xié)議方面的知識,因為這里將要引作參考。另一個已知的路由選擇協(xié)議即RIP(路由選擇信息協(xié)議)。

發(fā)明內(nèi)容
在執(zhí)行一個用于堆疊的恢復(fù)性路由器的方案時,理想的是堆疊(不管被配置成哪一種特定構(gòu)形)可以被改變或增加,通過例如往堆疊中增加單元,或從堆疊中移除單元。
理想的是將一個路由選擇協(xié)議作為一個邏輯路由器執(zhí)行,以在堆疊中的多個物理路由器上有效運行。然而,普通的路由選擇協(xié)議以及特定的OSPF協(xié)議均不提供實現(xiàn)以上功能的任何方法。
已知使用虛擬路由冗余協(xié)議(VRRP)可以為OSPF和其它協(xié)議提供冗余。這種協(xié)議動態(tài)地選擇一個虛擬路由器(即主控器),以發(fā)送信息包到一個備份單元。如果主控單元故障或失靈,則備份單元將取代它的位置。然而,在這個協(xié)議下的運行不能實現(xiàn)通過該路由器的路由選擇載荷的分配。特別是“備份”路由器不用于路由傳輸,除非主控單元失靈。
與本發(fā)明相關(guān)的各路由選擇協(xié)議包括一個數(shù)據(jù)庫(這里稱為“網(wǎng)絡(luò)數(shù)據(jù)庫”),該數(shù)據(jù)庫含有該網(wǎng)絡(luò)中來自路由器的路徑或連接信息。對于OSPF協(xié)議來說,該數(shù)據(jù)庫是一個“連接狀態(tài)”協(xié)議,即已知的“連接狀態(tài)數(shù)據(jù)庫”(LSDB)。對于諸如RIP(一個“遠程矢量”協(xié)議)的協(xié)議而言,有一個相應(yīng)的數(shù)據(jù)庫,該數(shù)據(jù)庫定義了一個矢量,該矢量代表源自路由器、經(jīng)由該網(wǎng)絡(luò)中相關(guān)節(jié)點的路徑。
有一些(但不是全部)路由選擇協(xié)議的操作也需要協(xié)議狀態(tài)設(shè)備,例如協(xié)議狀態(tài)機。對于當前的OSPF協(xié)議,“協(xié)議狀態(tài)設(shè)備”由一個界面狀態(tài)機(ISM)和一個“鄰里狀態(tài)機(NSM)”組成。RIP就是一個不需要協(xié)議狀態(tài)設(shè)備的路由選擇協(xié)議的例子。
因此,需要提供一種能夠使路由選擇協(xié)議(比如堆疊中的OSPF)和特別是網(wǎng)絡(luò)數(shù)據(jù)庫(例如用于OSPF的連接狀態(tài)數(shù)據(jù)庫)實現(xiàn)同步的方法,這需要協(xié)議狀態(tài)設(shè)備,如用于界面狀態(tài)機(ISM)和鄰里狀態(tài)機(NSM),位于多個單元,以使協(xié)議在堆疊中的多個物理路由器上運行,而無需設(shè)置一個常用的備份單元(該備份單元不會進行路由選擇,除非主控路由器單元失靈)。
然而,主要的困難是,盡管按照路由選擇協(xié)議(如OSPF),當路由器都完全執(zhí)行協(xié)議時能夠?qū)崿F(xiàn)路由器之間的同步操作,但當一個從屬單元根據(jù)恢復(fù)性堆疊的要求不能發(fā)送信息(例如連接狀態(tài)信息,該信息要求它必須成為一個單獨的、可以識別的路由選擇實體)時,按照該協(xié)議的同步將會失靈。
在本發(fā)明的一個優(yōu)選形態(tài)中,一個堆疊的網(wǎng)絡(luò)路由器相互連接并組織成構(gòu)成一個單一的路由選擇實體,所述路由器包括一個單一的主控路由器和至少一個從屬路由器;a)每一個路由器均能完整執(zhí)行一項路由選擇協(xié)議,每一個路由器均有一個各自的網(wǎng)絡(luò)數(shù)據(jù)庫;b)所述主控路由器只能完整執(zhí)行所述協(xié)議,只有所述主控路由器根據(jù)所述協(xié)議產(chǎn)生和發(fā)送網(wǎng)絡(luò)廣告,以及接收來自其鄰里的各種類型的更新信息;c)每一個從屬路由器都偵測(snoop)來自鄰里的網(wǎng)絡(luò)更新信息;d)所述主控路由器向每一個從屬路由器發(fā)送校驗數(shù)據(jù),該校驗數(shù)據(jù)指示主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫的當前狀態(tài);e)每個從屬路由器將校驗數(shù)據(jù)與從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)進行比較,以確定所述從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫是否與主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫同步;和
f)如果所述比較顯示從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫與所述主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫不同步,則從屬路由器請求一條源自所述主控路由器的網(wǎng)絡(luò)廣告。
其中,因為在諸如OSPF的連接狀態(tài)協(xié)議中,堆疊中每一個路由器均具有用于操作協(xié)議的協(xié)議狀態(tài)設(shè)備,所以主控路由器最好向每一個從屬路由器發(fā)送直接更新信息,以使每一個從屬路由器中的單獨協(xié)議狀態(tài)設(shè)備與所述主控路由器的單獨協(xié)議狀態(tài)設(shè)備同步操作。
本發(fā)明的其它方面涉及一個路由器的堆疊、一個能夠在這種堆疊中操作的網(wǎng)絡(luò)單元,以及一種操作路由器堆疊的方法。
根據(jù)本發(fā)明,堆疊優(yōu)選的是由至少一個主控單元(最好是根據(jù)前述申請的一個選定的主控單元)和一個或多個從屬單元組成。一個連接將存在于主控單元和每一個從屬單元之間。該主控單元用于運行完整的路由選擇協(xié)議,通過傳輸控制協(xié)議向每一個從屬單元發(fā)送直接更新信息。這些直接更新信息可以包括用于協(xié)議狀態(tài)設(shè)備(例如用于該OSPF協(xié)議的介面狀態(tài)機和鄰里狀態(tài)機)和每一個從屬單元的網(wǎng)絡(luò)數(shù)據(jù)庫(例如每個從屬單元中用于OSPF協(xié)議的連接狀態(tài)數(shù)據(jù)庫)的特定信息包形式。
每一個從屬單元均可以純粹按照從主控單元接收的直接更新信息運行其協(xié)議狀態(tài)設(shè)備(如果提供的話)。網(wǎng)絡(luò)數(shù)據(jù)庫的同步可以根據(jù)對網(wǎng)絡(luò)更新信息包的偵測,以及將由此接收的信息與從主控單元發(fā)送來的校驗數(shù)據(jù)信息進行的比較。該校驗數(shù)據(jù)可以包括網(wǎng)絡(luò)廣告報頭(header)。優(yōu)選的,為了確保校驗數(shù)據(jù)的接收,校驗數(shù)據(jù)由主控路由器根據(jù)諸如TCP的程序控制協(xié)議以信息包的形式向從屬路由器發(fā)送,所述程序控制協(xié)議能夠確保一旦檢測到信息包的丟失,能夠察覺并恢復(fù)該信息包。如果收到的校驗信息中的信息與從屬單元中的不符,從屬單元可以請求源自主控單元的網(wǎng)絡(luò)廣告的一個完整的拷貝。用這種方式,網(wǎng)絡(luò)數(shù)據(jù)庫中只有一部分被發(fā)送到每一個從屬單元,因此降低了單元間所需要的帶寬。
通過保持運行時間內(nèi)從屬單元的同步,如果主控單元或與主控單元的連接發(fā)生故障,從屬單元中的一個能夠接管整個路由選擇協(xié)議的運行而無需中斷操作;因此,堆疊不會與網(wǎng)絡(luò)中的其余部分脫離同步。本發(fā)明還提供通過TCP直接更新信息的合并時間的同步,使主控路由器在更新一個剛剛加入堆疊的單元時能夠維持與其鄰里之間的關(guān)系。


圖1為一個路由器單元的示意圖。
圖2顯示了兩個路由器單元的級聯(lián)連接。
圖3顯示了一個恢復(fù)性狀態(tài)機。
圖4顯示了一個單元的堆疊。
圖5顯示了一個堆疊結(jié)構(gòu)。
圖6顯示了一個OSPF信息包報頭。
圖7顯示了OSPF的堆疊通信。
圖8顯示了一個ISM信息格式。
圖9顯示了一個ISM介面描述。
圖10顯示了一個ISM的控制程序。
圖11顯示了一個“鄰里”的描述。
圖12顯示了一個TCP直接更新信息與打包的多鄰里描述。
圖13是一個用于“自我來源”連接狀態(tài)廣告的流程示意圖。
圖14是TCP輔助偵測的流程示意圖。
圖15-20顯示了堆疊中合并情形的各個階段。
具體實施例方式
以下結(jié)合附圖對本發(fā)明作進一步的說明。
結(jié)合后面將要描述的圖3,圖1顯示了一個的網(wǎng)絡(luò)單元,該網(wǎng)絡(luò)單元用于按照圖2所示的方案的一個恢復(fù)性堆疊。圖1和3所示的單元即為本發(fā)明的使用堆疊式路由選擇協(xié)議的單元的一個例子。
該單元具有多個普通或“面板(front panel)”端口1和至少一個“級聯(lián)”端口2?!凹壜?lián)”端口可以是一個位于單元之間的獨立的專用連接,或者是一個用于執(zhí)行“級聯(lián)”功能的面板端口中的一個。該單元包括至少一個(通常是多個)“硬件”網(wǎng)橋,或者“層2”交換機3。每個端口1與網(wǎng)橋3中的至少一個相連,該(或每個)級聯(lián)端口連接到所有網(wǎng)橋,或連接到一個與所有網(wǎng)橋相連的“邏輯”端口相連。該單元包括一個路由器4,該路由器至少有兩個(在所示的例子中為三個)路由器界面5。每個路由器介面5只與一個網(wǎng)橋相連,盡管每一個網(wǎng)橋可以與一個以上的路由器界面5相連。對于每個界面而言,都存在一些方式(如寄存器)用以存儲一個MAC地址、以及用于該界面的網(wǎng)絡(luò)(IP)地址。對于網(wǎng)橋和路由器的控制,以及如圖1所示的狀態(tài)機的建立,有一個通過CPU6構(gòu)建的處理器,該CPU6在適當?shù)拇鎯ζ髦邪粋€管理中介(management agent)7和一個路由選擇協(xié)議8。該路由選擇協(xié)議控制著路由選擇列表9。嵌入該單元(例如用于該管理中介的一個介面)的也可以是單元的常規(guī)地址,例如其MAC地址10和網(wǎng)絡(luò)(IP)地址11。這些地址用于路由器的管理,比如通過一個外部網(wǎng)絡(luò)監(jiān)督器,根據(jù)已知的經(jīng)驗,這些地址可以由CPU提供給路有器界面。如下文將要描述的那樣,該路有器介面可以被啟動(在這種情況下該單元可以用作路由器)或關(guān)閉(在這種情況下該單元可以用作網(wǎng)橋)。
圖1所示的路由選擇單元的常規(guī)形態(tài)是硬件。網(wǎng)橋的主要目的是提供信息包的轉(zhuǎn)換,比如在同一子網(wǎng)或VLAN上的轉(zhuǎn)換,以及發(fā)送往返于路由器4的信息包。在端口1和端口2接收到且無需路由選擇的信息包將由網(wǎng)橋中的一個進行接收,并按照相關(guān)網(wǎng)橋執(zhí)行的中介訪問控制(層2)轉(zhuǎn)換進行發(fā)送。該路用器通常需要修改該信息包,以提供給它一個新的源MAC地址,通過協(xié)調(diào)和通常的驗算校驗和來給信息包報頭減掉一個“存活時間”(TTL)值。該路由器將向一個通過合適的路由選擇信息協(xié)議方式建立的路由選擇列表求助,以能夠計算用于發(fā)送的信息包的下一個跳轉(zhuǎn)(hop)。
本發(fā)明采用以太網(wǎng)TCP/IP,但并不局限于這種特定的應(yīng)用。比如,也可以使用幀中繼SCTP/IP或ATM。
圖1所示的單元可以如圖2或圖4所示被堆疊。一個堆疊中可以有更多的單元,比如4個或8個,但是為了簡潔起見,圖示的堆疊只有兩個或者三個單元。實現(xiàn)級聯(lián)的物理連接本身是現(xiàn)有技術(shù)已知的,例如在GB-2383507-A中或2003年1月3日申請的,申請?zhí)枮?300011.4的英國專利申請。
在本發(fā)明的一個優(yōu)選實施例中,堆疊中的所有單元都能夠發(fā)送它們所接收的信息包,擁有端口(需要發(fā)送的信息包在其上被接收)的單元即發(fā)送的單元。如果發(fā)出端口位于一個不同的單元上,經(jīng)路由選擇后,信息包的發(fā)送將通過橋連到擁有發(fā)出端口的單元來進行。通過這種方式,盡管堆疊中有多個路由器,但只有一個被卷入任意給定信息包的發(fā)送。那里將只有一個路由選擇跳轉(zhuǎn),以使其看起來是堆疊外的實體,就好象該堆疊只含有一個單獨的路由器。
如GB-2384956-A和GB-2386524-A中所描述的,堆疊中的單元可以進行一次選舉,選舉可以基于控制信息包或幀的交換,以根據(jù)一些預(yù)定的標準(比如哪一個具有最低端MAC地址)決定堆疊中的哪一個單元將成為導(dǎo)引或主控單元,以及哪一個將成為下屬或從屬單元。這樣做的意義在于,導(dǎo)引或主控單元(為方便起見以下簡稱“主控單元”)將執(zhí)行完整的路由選擇協(xié)議以及地址解析協(xié)議,而其它單元(為方便起見以下簡稱“從屬單元”)將具有選定的、與這些被抑制的協(xié)議相關(guān)的輔助功能,以使它們不傳播例如RIP(路由選擇信息協(xié)議)或ARP(地址解析協(xié)議)信息包。這與在堆疊內(nèi)保持一個單一的路由選擇體的概念是一致的,并很大程度地節(jié)約了信息包所占用的帶寬(主要是級聯(lián)),該信息包否則將根據(jù)這些協(xié)議被傳播。
此外,同樣如GB-2384956-A和GB-2386524-A所述,主控路由器界面將使用與其它單元的相應(yīng)介面相同設(shè)置的IP地址,最好是相同的MAC地址(以下將被解釋)。這可以通過使路由器中的一個,最好是主控路由器,將其MAC地址借給其它(從屬)路由器來得以實現(xiàn)。
用于(特別的)堆疊的路由器的恢復(fù)性的目的,是在堆疊中的一個單元發(fā)生故障或單元間的級聯(lián)發(fā)生故障時,使路由器界面保持運作。要提供這種恢復(fù)性,各單元內(nèi)需要配置適當?shù)墓δ?,而且理想的是各單元之間能夠通過級聯(lián)以外的方式進行通訊。為這個目的,連接到路由器的外圍設(shè)備可以配置成具有與路由器單元的冗余的物理連接。依靠這個配置可以向不同的設(shè)備提供不同等級的恢復(fù)性。通常,交易平衡(trade-off)是端口與恢復(fù)性的比值,比如配置的恢復(fù)性越強,則堆疊的路由器單元得到的附加端口就越少。
圖2顯示了信息包出入路由器堆疊的級數(shù)(progression)。圖2所示的例子中假設(shè)信息包是從單元0的前一個跳轉(zhuǎn)21接收的,并將通過單元1的級聯(lián)通過,然后由單元1的面板端口發(fā)出到下一跳轉(zhuǎn)22。
在圖2中,單元0具有面板端口1、級聯(lián)端口2、網(wǎng)橋3和路由器4。單元1具有面板端口1a、級聯(lián)端口2a、網(wǎng)橋3a和路由器4a。
在圖2所示的系統(tǒng)中,來自前一跳轉(zhuǎn)21的信息包被一個面板端口1接收,同時,其MAC目標地址設(shè)置到路由器4。這個信息包通過一個網(wǎng)橋3橋聯(lián)到路由器4,路由器4會將MAC目標地址改為下次跳轉(zhuǎn)所需要的地址(以及將源MAC地址改為路由器4的地址),進行路由選擇階段通常需要的任何其他修改(比如驗算一個校驗和),并將信息包送到相關(guān)的網(wǎng)橋,以使信息包在級連20處被發(fā)出,本實施例中通過端口2。
當然,第一個單元接收到的大量的信息包可以只通過一個面板端口1發(fā)出。這些信息包的接收與發(fā)送與本發(fā)明并不直接相關(guān)。然而,因為那些需要發(fā)送的信息包將被路由器4發(fā)送,在接收單元,這些信息包將不必通過級連發(fā)送到另一個用于發(fā)送的單元。
當信息包由單元1通過級連端口2a接收,目標MAC地址早已設(shè)定到下一個跳轉(zhuǎn)。因此,它能夠從屬于網(wǎng)橋3a搜索到的一個普通的MAC地址,以獲得用于下一個跳轉(zhuǎn)的端口編號。單元1中無需介入路由器4a。
地址的出借為了使堆疊容易操作,每個單元中的路由器界面將使用與其它單元中的相應(yīng)界面相同設(shè)置的IP地址,最好是相同的MAC地址,如下文將要說明的那樣。這可以通過使路由器中的一個(這里稱為“主控”路由器)將其路由器界面IP地址和MAC地址借給其它路由器(這里稱為“從屬路由器”)得以實現(xiàn)。這些術(shù)語不僅用于說明借出地址和借入地址,也用于說明一些次要的操作差異,不同于發(fā)送信息包的主要任務(wù),該任務(wù)由所有路由器共同分擔;這些差異將在下文進行說明。
如上所述,堆疊或區(qū)段中的各單元能夠進行(最好是定期的)一個選舉,以決定堆疊或區(qū)段中的哪一個是主控單元,哪一個是從屬單元。作為(當前)主控單元的一個單元掌握主控資質(zhì);無主控資質(zhì)的單元為從屬單元。資質(zhì)的喪失以下顯示為一個“喪失主控(LostMaster)”的信號(源自主導(dǎo)選舉的CPU或其它設(shè)備);得到資質(zhì)顯示為一個“得到主控(GetMaster)”的信號。新選舉結(jié)束后,如果某一現(xiàn)行的主控單元繼續(xù)擁有該資質(zhì),就意味著產(chǎn)生了一個“主控保留(MasterRetained)”。
復(fù)原狀態(tài)機圖3所示的狀態(tài)機是使復(fù)原能力付諸實施的方法的一個例子。在GB-2386524-A中對其進行了更為全面的描述,但為了方便起見,此處加以部分復(fù)述。該狀態(tài)機最好具有如下所述的6個主要狀態(tài)31-36,作為用于狀態(tài)間轉(zhuǎn)換的前提。狀態(tài)機最好建立在軟件上,但硬件形式也是可行的。
復(fù)原狀態(tài)機由CPU6進行初始化設(shè)置。這將創(chuàng)建復(fù)原狀態(tài)機任務(wù),并進入初始狀態(tài)。初始狀態(tài)等待一個顯示該單元是否是一個主控單元或從屬單元的結(jié)果。一旦這些結(jié)果中的一個出現(xiàn),過程即開始確定該單元將在層2(Layer 2)模式或?qū)?(Layer 2)模式下運行。
復(fù)原狀態(tài)機說明以下根據(jù)各種狀態(tài)對狀態(tài)機進行說明。以下段落中將定義各種“事件”。狀態(tài)機包括一個計時器,以下段落中對計時器的各類時間間隔進行了定義。
狀態(tài)說明a、初始化狀態(tài)31這種狀態(tài)的目的是等待完成界面設(shè)置。這在啟動時,或在從屬單元需要重新設(shè)置其界面以與主控單元相一致時發(fā)生。當該單元根據(jù)前述的選舉確定了其在堆疊中是“主控”單元還是“從屬”單元之后,該狀態(tài)機就離開(退出)這種狀態(tài)。如果該單元是主控單元,則該狀態(tài)機將計時器設(shè)定到某一個值,這里稱為“ARP收聽時間(ARP LISTEN TIME)”(限定了一個預(yù)訂的最大時間,該時間對于收聽ARP信息包以確定一個將產(chǎn)生沖突的L3主控單元是必需的和適當?shù)?,并轉(zhuǎn)換到“收聽L3主控(Listen for L3 Master)”狀態(tài)32。如果該單元是從屬單元,則狀態(tài)機轉(zhuǎn)換到“L3從屬(L3 Slave)”狀態(tài)33。
b、收聽L3主控狀態(tài)32如果該單元被選為主控單元,則進入這個狀態(tài)。這個狀態(tài)的目的是確認在堆疊或區(qū)段被允許在一個路由選擇模式下運行前,沒有其它“L3主控單元”在運行。
如果收到適當?shù)腁RP請求,則已經(jīng)存在一個(不同的)路由選擇區(qū)段的主控單元,因此用于本地單元的路由選擇需要被關(guān)閉。狀態(tài)機將向本地堆疊段中的所有其它單元發(fā)送一個“停止路由選擇(Disable Routing)”指令,將計時器設(shè)定到一個值,這里稱為“ARP接收時間(ARP RECEIVE TIME)”;然后轉(zhuǎn)換到“L2主控(L2 Master)”狀態(tài)33。
如果計時器(在狀態(tài)31中設(shè)定)超時(以使不再收到確定沖突主控單元的ARP信息包),則計時器被設(shè)定到一個值,這里稱為“L3競爭時間(L3 VIE TIME)”,同時堆疊狀態(tài)機轉(zhuǎn)換到“L3主控(L3 Master)”狀態(tài)34。
當狀態(tài)機處于“收聽L3主控”狀態(tài)32時,如果收到某“喪失主控”信號,則該狀態(tài)機轉(zhuǎn)換到“L2從屬(L2 Slave)”狀態(tài)36(見下)。
c、L2主控狀態(tài)33這是這樣一種狀態(tài),其中該單元是一個主控單元,但該單元與堆疊段中的其它單元可以橋連卻不能路由選擇。
如果收到一個主控ARP,則計時器被設(shè)定到“ARP接收時間(ARP RECEIVE TIME)”值,同時該狀態(tài)機回復(fù)到相同的(L2主控)狀態(tài)。
如果發(fā)生ARP超時(說明與現(xiàn)存的L3主控單元的連接中止),則計時器被設(shè)定到“L3競爭時間(L3 VIE TIME)”值,同時狀態(tài)機轉(zhuǎn)換到“L3主控”狀態(tài)34。
如果在狀態(tài)33下收到一個“喪失主控”的信號,則狀態(tài)機轉(zhuǎn)換到“L2從屬”狀態(tài)35。
如果在狀態(tài)33下產(chǎn)生一個“主控維持”信號,則將一條“停止路由選擇”指令發(fā)送到該堆疊中的所有其他單元,同時狀態(tài)機回復(fù)到相同的“L2主控”狀態(tài)。
d、L3主控狀態(tài)34在這種狀態(tài)下,單元將定期地發(fā)送ARP請求,以確定路由器界面中的一個。盡管與本發(fā)明不直接相關(guān),但一個單元可以具有“默認”界面和非默認界面,實際操作中,識別的網(wǎng)絡(luò)地址可能就是編號最低的非默認界面的地址。如果收到一個較低的MAC主控ARP(Lower MAC Master ARP),則該機將(在其它的動作中)向堆疊段中的所有其它單元發(fā)出“停止路由選擇”指令,并轉(zhuǎn)換到“L2主控”狀態(tài)33。
如果主控資質(zhì)喪失,則狀態(tài)機將轉(zhuǎn)換到“L3從屬”狀態(tài)36。
如果收到一條“主控維持”信號,則該單元將向區(qū)段中的所有其它單元發(fā)送一條“啟用路由選擇”指令,同時保持在L3主控狀態(tài)。如果該單元收到一條一個單元已經(jīng)“消失”指示,結(jié)果也是相同的(見下)。
e、L2從屬狀態(tài)35如果得到一條“主控資質(zhì)”信號(得到主控),則該計時器設(shè)定到“ARP接收時間(ARPRECEIVE TIME)”值,同時狀態(tài)機轉(zhuǎn)換到“L2主控”狀態(tài)33。
如果收到一條“啟用路由選擇”指令,則路由選擇界面被啟動,狀態(tài)機轉(zhuǎn)換到L3從屬狀態(tài)36。這種情況將在區(qū)段中只能橋聯(lián)的單元被允許路由選擇時出現(xiàn)。
f、L3從屬狀態(tài)36如果得到“主控資質(zhì)”,則計時器設(shè)定到“ARP收聽時間(ARP RECEIVE TIME)”值,同時狀態(tài)機轉(zhuǎn)換到“L3主控收聽(Listen for L3 Master)”狀態(tài)32。
如果收到一條“停止路由選擇”指令,則路由選擇界面被停止,同時狀態(tài)機轉(zhuǎn)換到“L2從屬(L2 Slave)”狀態(tài)35。
可以注意到,圖3所示不是狀態(tài)機唯一的組織方式。例如,主控資質(zhì)喪失的影響在狀態(tài)32和34可能是不同的兩種情況都可能導(dǎo)致轉(zhuǎn)換到L2從屬狀態(tài)35。而且,也可能從初始化狀態(tài)31轉(zhuǎn)換到“收聽L3主控”狀態(tài)32,或轉(zhuǎn)換到L2從屬狀態(tài)35,而不是L3從屬狀態(tài)36。
堆疊協(xié)議介紹如上所述,本發(fā)明的目的是實現(xiàn)單元的堆疊在堆疊變化時的平穩(wěn)轉(zhuǎn)變,不管是堆疊中單元的增加,還是單元或連接從堆疊中移除或?qū)嵸|(zhì)性切斷。有兩種“情形”與這種連接相關(guān)。在這里將它們稱為“‘堆疊拆分’情形”和“‘堆疊合并’情形”。這將參考圖4予以說明。
圖4顯示了一個三個單元的堆疊,三個單元分別是單元1、單元2、和單元3,通過一個級連連接20相連接(如圖2所述)。這些堆疊的單元通過兩臺“外圍(edge)”轉(zhuǎn)換器ES1和ES2而具有外部連同性。圖4對應(yīng)于GB2386524-A中的一張圖,通過該在先文件可以變得更加清楚,圖3所述的復(fù)原狀態(tài)機特別地用于處理級聯(lián)故障的困難,以使各單元只需通過邊緣轉(zhuǎn)換器的實現(xiàn)即能保持象一個堆疊一樣運行。
開始時假設(shè)單元1為“主控單元”,單元2和單元3為從屬單元。如果單元1發(fā)生故障,則圖3和在先申請所述的復(fù)原協(xié)議將在單元2和單元3之間選舉一個新的主控單元。
例如,假設(shè)單元2被選為主控單元,因為單元1發(fā)生故障后,單元2在該堆疊中的編號較低。單元2檢測不到單元1,但是包含單元2和3的堆疊可以繼續(xù)進行路由選擇。對于協(xié)議堆疊,這種故障的情形就是“堆疊拆分”的情形。盡管單元1擁有協(xié)議主控的功能,但是現(xiàn)在這個任務(wù)必須由單元2來承擔。
第二種故障的情況是從屬單元中的一個發(fā)生故障。我們假設(shè)是單元2。單元1將保留主控地位,同時包含單元1和單元3的堆疊將繼續(xù)進行路由選擇。對于協(xié)議堆疊而言,這種故障的情形屬于“堆疊拆分”的情形。單元1繼續(xù)擁有協(xié)議主控的功能。
第三種情況是單元1和單元2之間的級聯(lián)連接發(fā)生故障。在單元2和單元3之間將選出一個新的主控單元。單元2被選中,因為它在堆疊中的編號最低。單元2檢測到單元1仍然能夠運行并開始在“層2模式”下運行。當單元進入該模式時,如前所述,IP界面被關(guān)閉,也使路由選擇協(xié)議界面被關(guān)閉。結(jié)果,該單元的路由選擇將停止。單元2將指導(dǎo)單元3在層2模式下運行。對于路由選擇協(xié)議堆疊,這種故障的情形屬于“堆疊拆分”情形。單元1將繼續(xù)擁有路由選擇協(xié)議主控的功能。
如果單元2與單元3之間的級連連接發(fā)生故障,則單元1和單元2將繼續(xù)運行而不發(fā)生變化。單元3將變成其單一單元堆疊的主控單元。單元3將檢測到前主控單元、即單元1仍然能夠運行,并將進入L2模式下的運行。路由選擇協(xié)議堆疊屬于“堆疊拆分”的情形。單元1將繼續(xù)擁有路由選擇協(xié)議主控的功能。
如果一個新的從屬單元、即單元4(圖未示)加入該堆疊,單元1仍將是主控單元。對于路由選擇協(xié)議堆疊,這種情形屬于“堆疊合并”的情形,單元4需要與主控單元同步。
現(xiàn)在,讓我們假設(shè)單元1故障后再次加入該堆疊。當單元1故障時,單元2變成了主控單元。如果單元1復(fù)原,它將重新稱為主控單元。將主控狀態(tài)切回到單元1需要所有的IP界面被“推翻(take down)”。這將依次推翻所有的路由選擇協(xié)議界面,需要路由選擇協(xié)議重新啟動。
如果單元2或者單元3故障后再次加入堆疊,則直至路由選擇協(xié)議參與,情況與一個從屬單元加入該堆疊相同。
如果單元1和單元2之間的級聯(lián)發(fā)生故障,然后單元1也故障,則單元1開始時將繼續(xù)作為主控單元繼續(xù)運行,單元2和單元3將進入層2模式。如果單元1接著故障,則單元2將檢測到該故障,然后成為主控單元。對于路由選擇協(xié)議堆疊,這是一種“堆疊拆分”的情形,單元2需要接管路由選擇協(xié)議主控單元的所有功能。
如果單元1故障后從該堆疊外返回,則如上所述,將出現(xiàn)一個新當選主控單元,即單元2。如果單元1返回,但不再是該堆疊的一部分,則單元1將檢測到單元2,且單元1將保持在層2模式。
讓我們假設(shè)單元1與單元2之間的級連故障后恢復(fù)。單元1將繼續(xù)作為主控單元運行,單元2和單元3將進入L2模式。如果該級連隨后恢復(fù),這就與兩個新的從屬單元加入到堆疊中一樣。這種情形屬于“堆疊合并”的情形。
最后,當同時向整個堆疊提供動力時,層3堆疊將選舉單元1為主控單元。這是一種“堆疊合并”的情形。
設(shè)計概述這個實施例依賴于硬件的偵測(snooping)能力,而不是用于堆疊中單元的同步的“私下”的單元到單元的通訊。這將參考OSPF協(xié)議予以說明。但是,如前所述,偵測和更新的設(shè)備可以使用其它路由選擇協(xié)議,盡管依賴各自的路由選擇協(xié)議的特定設(shè)備的偵測的程度可以不盡相同。
單元到單元的路由選擇協(xié)議堆疊通訊是通過TCP連接而進行的。通過TCP,主控單元發(fā)送其直接更新信息,用于可靠的傳遞以及防止信息包的丟失。從主控單元到每一個從屬單元之間存在著一個點對點的TCP連接。該TCP連接由一個TCP信息引擎管理。這存在于OSPF軟件中,如圖5所示。通過選用TCP信息引擎的信息界面,OSPF的堆疊功能能夠由TCP通訊特性得到保護,就如下文將要闡述的那樣。
OSPF界面狀態(tài)機(ISM)、鄰里狀態(tài)機(NSM)以及連接狀態(tài)數(shù)據(jù)庫(LSDB)的同步最好逐一加以單獨處理,并由OSPF組件內(nèi)的代碼進行控制。
OSPF堆疊代碼會將模塊化界面并入IP組件。這些模塊化界面包括功能注冊呼叫和單向功能呼叫。功能注冊用于從IP組件往OSPF組件傳輸信息。單向功能呼叫用于從OSPF組件到IP組件的信息中繼。TCP界面與層3堆疊界面將在以下的段落中進一步闡述。
圖5顯示了用于控制OSPF協(xié)議的軟件的OSPF堆疊架構(gòu)。該軟件包含一個OSPF組件,如該協(xié)議所述,該OSPF組件包括一個界面狀態(tài)機(ISM)、一個鄰里狀態(tài)機(NSM)和一個連接狀態(tài)數(shù)據(jù)庫的同步和校驗?zāi)K。這些子組件與一個連接到OSPF堆疊TCP信息引擎的OSPF堆疊信息界面相互作用。該OSPF組件包含啟動OSPF堆疊所需的代碼,并具有兩個模塊化界面,用于發(fā)送到軟件的IP組件的信息的中繼。一個界面,叫做層3堆疊界面,需要與包含于IP組件內(nèi)的層3堆疊功能進行通訊。該界面應(yīng)用從OSPF組件指向?qū)?堆疊的直接功能呼叫,以設(shè)定或找回來自層3堆疊的信息。功能注冊被用于將信息從層3堆疊傳遞到OSPF組件。
層3堆疊與OSPF之間共享的信息包括層3主控事件、第3層從屬事件以及從屬待命(ready)事件。層3主控事件說明該單元將在主控模式下運行。在例如圖3中狀態(tài)32和狀態(tài)34之間發(fā)生轉(zhuǎn)換時,或狀態(tài)33與34之間發(fā)生轉(zhuǎn)換時,會發(fā)生這種情況。當該事件發(fā)生時,該單元為L3主控狀態(tài),并將發(fā)送和接收OSPF協(xié)議信息。此外,本發(fā)明需要該單元將準備初始化運行時間同步程序,例如連接狀態(tài)數(shù)據(jù)庫(LSDB)、當一個單元出現(xiàn)在堆疊中時的LSA校驗發(fā)送。
層3從屬事件說明該單元將在從屬模式下運行。這些事件將導(dǎo)致例如L2主控狀態(tài)33(圖3)和L2從屬狀態(tài)35之間的轉(zhuǎn)換,或L3從屬狀態(tài)36和L2從屬狀態(tài)之間的臨時(occasion)轉(zhuǎn)換,為此路由選擇被關(guān)閉。本發(fā)明中更特別的,從屬單元將抑制OSPF協(xié)議信息的發(fā)送,并要求限制OSPF協(xié)議信息的接受。
從屬待命事件說明一個從屬單元已經(jīng)完成“靜態(tài)”的同步,并準備用于任意需要發(fā)生的運行時間同步程序?!办o態(tài)”同步的一個例子就是LSDB轉(zhuǎn)換。
前文所述的事件通常存在于“層3堆疊”,實際上也就是決定圖3和GB-2386524-A所描述的狀態(tài)機的軟件。
TCP界面需要與包含于IP組件內(nèi)的TCP功能進行通訊。該界面應(yīng)用從OSPF堆疊組件指向TCP組件的直接功能呼叫,以設(shè)定或找回TCP組件中的信息。功能注冊用于從TCP組件向OSPF組件傳遞信息。有名的的TCP接口(socket)界面可以用于指向存在于IP組件內(nèi)的TCP協(xié)議引擎的信息的中繼。
信息包的接收與傳輸堆疊中的每一個單元都將收到一個OSPF信息包,該信息包可以是堆疊中任意一個單一的單元收到的。這個堆疊范圍內(nèi)信息包的接收的規(guī)定在這里稱為“偵測(snooping)”。偵測是現(xiàn)存堆疊結(jié)構(gòu)的一部分,且不需要任何功能的改變。
盡管堆疊的所有單元都將收到一個可由堆疊中任意一個單元接收的OSPF信息包,但是對收到的信息包的處理決定根據(jù)單元的狀態(tài)各不相同,例如根據(jù)它是一個主控單元還是從屬單元。主控單元接收和處理所有類型的OSPF信息包。這與獨立單元的運行相似。但是,從屬單元將接收和處理連接狀態(tài)更新和連接狀態(tài)確認信息包。在保持與主控單元同步時,這使得從屬單元能夠根據(jù)網(wǎng)絡(luò)變化進行調(diào)節(jié)。從屬單元可以接收但不需要處理“問候(hello)”、“數(shù)據(jù)庫描述(database description)”、以及“連接狀態(tài)請求(link state request)”三種信息包。主控單元控制從屬單元的界面狀態(tài)機和鄰里狀態(tài)機。這削減了對“問候”信息包和“數(shù)據(jù)庫描述”信息包的需求。此外,從屬單元最好不能發(fā)送任何響應(yīng)連接狀態(tài)請求信息包的連接狀態(tài)更新信息包。
偵測還允許任何OSPF信息包的堆疊范圍信息包接收,該OSPF信息包可由堆疊中的任何一個單一單元發(fā)送。當一個單元收到堆疊中另一個單元發(fā)送的信息包時,該單元可以說是收到了一個“自我來源(self-originated)”信息包。主控單元和從屬單元都不會處理任何自我來源的信息包。該協(xié)議組織成檢查并刪除自我來源的信息包。
主控單元將產(chǎn)生和發(fā)送所有OSPF信息包的類型。這同樣類似于獨立單元的運行。從屬單元既不產(chǎn)生也不傳輸任何OSPF信息包類型。這減少了從堆疊發(fā)出的冗余信息。
靜態(tài)數(shù)據(jù)同步靜態(tài)數(shù)據(jù)同步,也叫“配置同步”,要求配置數(shù)據(jù)必須在某一合并時間(merge time)和運行時間(run time)同步。
合并時間同步從屬單元的配置必須與主控單元相同。對于OSPF協(xié)議,主控-從屬同步需要在主控單元和從屬單元之間共享某些信息。這些信息包括OSPF模式、OSPF路由器ID、OSPF域、OSPF范圍、OSPF界面、OSPF界面細節(jié)、OSPF ASBR模式和OSPF捕捉控制。
同步方法,最好是用于配置數(shù)據(jù)的方法,是一個“拖曳(pull)”方法。各從屬單元以腳本和輔助程序的方式通過主控單元拖曳信息以實現(xiàn)單獨同步。只要一個新的主控單元被選出,則由一個從屬單元執(zhí)行此拖曳過程。層3堆疊同步過程應(yīng)該被修訂,以啟動OSPF主控單元/從屬單元的同步。所有從屬單元上同步的配置信息也將存儲在PDS。
運行時間同步OSPF協(xié)議運行時間內(nèi)單元間的同步也有必要的。
動態(tài)數(shù)據(jù)同步為了確保堆疊的OSPF單元扮演一個單一虛擬路由器的角色,狀態(tài)機和連接狀態(tài)數(shù)據(jù)庫必須在所有單元保持同步。所述狀態(tài)機就是界面狀態(tài)機和鄰里狀態(tài)機。OSPF協(xié)議的三個要素早已眾所周知,并在前述的RFC中予以描述。
本發(fā)明的另一個方面,主控單元與從屬單元間的TCP連接提供了一種確保同步的方法。
主控-從屬TCP通訊信息TCP協(xié)議用于在堆疊內(nèi)的主控單元和從屬單元間傳遞信息。TCP協(xié)議是適用的,因為它包含了諸如確認和流程控制(flow control)之類的特性。同時,TCP信息包的優(yōu)先級低于系統(tǒng)關(guān)鍵性信息包(如堆疊信息包和網(wǎng)絡(luò)協(xié)議信息包)。他們的使用(在LSDB發(fā)送給從屬單元時的合并時間可能出現(xiàn)大的帶寬)不會由于溢出它們的隊列空間而反過來影響系統(tǒng)關(guān)鍵性信息包類型。
TCP信息引擎用于產(chǎn)生和破壞主控單元和從屬單元間的TCP對話。支持TCP信息引擎的編碼駐留在OSPF組件。TCP信息引擎將發(fā)送和接收用于以下目的的信息界面狀態(tài)機的同步、鄰里狀態(tài)機的同步、LSDB在合并時間的同步、以及偵測信息包接收的校驗與恢復(fù)。
在主控-從屬關(guān)系的整個生命周期內(nèi),主控-從屬TCP對話將保持活躍。當一個從屬單元加入到堆疊中,就會產(chǎn)生一個用于該從屬單元的TCP對話。當一個從屬單元離開堆疊時,相應(yīng)的對話也將結(jié)束。如果一個新的主控被選出,則所有的對話都會結(jié)束,然后由新的主控單元重新建立。TCP信息引擎將接收有關(guān)單元加入或離開該堆疊的事件,以便作出響應(yīng)打開或關(guān)閉相應(yīng)的TCP對話。
一個標準的OSPF報頭將用于該TCP對話的所有通訊。該OSPF報頭將被用于區(qū)分ISM信息、NSM信息以及LSDB信息。
所述報頭如圖6所示,包括三個部分,一個“IP報頭”(用于信息包的典型的報頭),一個與TCP相配的TCP報頭,和一個OSPF報頭。
OSPF堆疊代碼將通過適當定義的介面與TCP信息引擎通訊。該界面將緩沖OSPF堆疊代碼,通過諸如現(xiàn)存堆疊單元的數(shù)量、TCP對話的狀態(tài)、信息的格式等。TCP信息引擎還將提供隊列機制,以用于處理臨時信息的存儲/溢出。
狀態(tài)機與連接狀態(tài)數(shù)據(jù)庫之間的堆疊通訊、TCP信息引擎和TCP協(xié)議引擎如圖7所示。
介面狀態(tài)機的同步界面狀態(tài)機(ISM)定義了一個OSPF界面操作的狀態(tài)(例如Down、DR/BDR/DR Other等)。ISM操作由界面(Up、Down、Waiting等)的基本狀態(tài)和問候協(xié)議控制。
主控單元采用的介面狀態(tài)和為從屬單元設(shè)計的介面狀態(tài)之間有著直接的關(guān)系。每一次主控單元上ISM狀態(tài)的轉(zhuǎn)變,都將有一個信息發(fā)送到從屬單元以傳播這個狀態(tài)變化。
從屬單元的ISM操作將從正常運行被暫停,并由主控單元控制/編排。單元間的通訊將通過TCP對話進行。ISM信息的格式如圖8所示,包括一個IP報頭、一個TCP報頭、一個OSPF報頭、以及‘n’條ISM界面描述(description)。每條界面描述的格式如圖9所示,包括一個介面(IP)地址、一個“域”描述、以及一條界面狀態(tài)描述。
接下來的ISM主控狀態(tài)將在所述ISM信息的介面狀態(tài)描述范圍內(nèi)通過TCP發(fā)送到所述從屬單元,所述ISM信息包括Down、Waiting、Point-to-Point、DR Other、Backup和DR。
接下來的情況是圖10所示的當主控單元上一個介面狀態(tài)發(fā)生變化時,一個堆疊的ISM控制程序,包括1、主控單元經(jīng)歷一個界面狀態(tài)的轉(zhuǎn)換;2、主控單元的ISM堆疊代碼收到界面狀態(tài)變化的通知;3、主控單元ISM堆疊代碼發(fā)送一條ISM信息到含有所述新的介面狀態(tài)的從屬單元;4、從屬單元ISM堆疊代碼在所述OSPF代碼內(nèi),在其界面狀態(tài)機設(shè)置所述新的介面狀態(tài)。
鄰里狀態(tài)機的同步鄰里狀態(tài)機(NSM)就其功能而言可以描述為兩個組件。第一個組件為“問候協(xié)議”。該問候協(xié)議負責鄰里的搜索與維護,以及確保與鄰里間的雙向通訊。第二個組件負責建立鄰接以允許LSDB的同步和可靠的溢流(flooding)。
NSM需要在整個堆疊內(nèi)同步,以使a)通過如主控單元那樣偵測相同的LSU信息包,從屬單元可以參與各LSA的溢流。通過減少如果不使用偵測可能遭遇的等待時間,這將更有效地保持新的LSA的傳播。
b)故障過多的情況下,無需從屬單元改變其鄰接,以減少對正在進行的用戶對話的干擾;和c)來自主控單元和從屬單元的SNMP/CLI/WEB界面將報告一致的數(shù)據(jù)。
這個章節(jié)歸納了用于單元的堆疊中的NSM的同步機理。
通常,NSM的同步依賴于從主控單元發(fā)送到各從屬單元的直接更新。這種“客戶-服務(wù)器”結(jié)構(gòu)簡化了堆疊分布式路由器配置中NSM的操作,代價是增加了微量的等待時間。為了可靠傳輸,主控單元的直接更新將通過TCP發(fā)送。這排除了NSM為任何信息包的丟失而作出補償?shù)男枰?。利用TCP連接,主控單元將發(fā)送其TCP直接更新信息到所有的從屬單元。每個從屬單元將通過更新其NSM以適當?shù)仨憫?yīng)每一條收到的信息。
問候協(xié)議只有主控單元才運行問候協(xié)議。其它單元,即從屬單元,將不直接參與該協(xié)議。這意味著主控單元將負責處理堆疊收到的任何問候信息包。這也意味著,從屬單元不對問候信息包進行偵測,并且從屬單元收到的每一個問候信息包必須發(fā)送到級連端口,以便主控單元能夠?qū)ζ溥M行處理。此外,只有主控單元能夠產(chǎn)生用于所有路由器界面的問候信息包。
鄰里獲得(acquisition)在通過主控單元接收第一個問候信息包的過程中,一個新的鄰里被發(fā)現(xiàn)。這將導(dǎo)致產(chǎn)生該鄰里的數(shù)據(jù)結(jié)構(gòu)。一個新產(chǎn)生的鄰里的初始狀態(tài)被設(shè)定為Init(如OSPF協(xié)議所定義)。然后,主控單元向所有堆疊中的從屬單元發(fā)送其“INIT”TCP直接更新信息。收到該信息后,每個從屬單元均在其數(shù)據(jù)庫中創(chuàng)建一個新的鄰里結(jié)構(gòu),并將其狀態(tài)設(shè)定為Init。
在主控單元丟失這個問候信息包的情況下,所述鄰里結(jié)構(gòu)不會被創(chuàng)建,但是隨后的鄰里的問候信息將迅速補償這個缺陷。從屬單元信息包的丟失是不確切的,因為信息包取決于來自主控單元的TCP直接更新。
鄰里的維護與鄰里獲得一樣,只有主控單元才能進行現(xiàn)存鄰里的維護。從屬單元將依賴于來自主控單元的TCP直接更新。
所述維護基于對定期的問候信息包的處理。這既包括信息包的接收,也包括信息包的發(fā)送。
問候信息包的接受重新啟動了一個靜止計時器。這是一個一次性發(fā)射(shot)的計時器,其發(fā)射表示最近沒有發(fā)現(xiàn)來自鄰里的問候信息包。一個靜止計時器只會在主控單元上運行,而在所有從屬單元被停止。無論何時,只要主控單元處理了一個“靜止計時器”事件,一個相應(yīng)的“DOWN”TCP直接更新信息就會被發(fā)送到所有從屬單元。
只要主控單元上發(fā)生KillNbr或LLDown的情況,則同樣的“DOWN”TCP直接更新信息就會被發(fā)送。KillNbr的情況表示所有與鄰里的通訊現(xiàn)在不可能了。LLDown的情況來自較低級別的協(xié)議,表示該鄰里現(xiàn)在無法連接。
在收到指示與該鄰里的單向通訊的問候信息包的情況下,由主控單元NSM產(chǎn)生所述單向(1-Way)事件。這也將促使主控單元向從屬單元發(fā)送“INIT”TCP直接更新信息。
鄰接的形成不是每一對OSPF路由器都將建立一個鄰接。OSPF協(xié)議定義了建立鄰接所必須滿足的各種條件。
作為鄰接形成過程的結(jié)果,一個鄰里可以決定兩種狀態(tài)中的一種,該兩種狀態(tài)為雙向(2-Way)或者全功(Full)。
雙向狀態(tài)指的是路由器不能建立一個鄰接,但與所述鄰里間存在雙向通信的情況。在這種情況下,“2WAY”TCP直接更新信息將發(fā)送到所有從屬單元。這可以由雙向接收(2-Way Received)事件引發(fā),或者作為AdjOk事件的結(jié)果。第一種情況在所述雙向通訊被實現(xiàn)時發(fā)生。第二種情況由確定一個與鄰里的鄰接是否應(yīng)當被建立的決定的作出過程所引發(fā)。
全功狀態(tài)(Full state)是一個完成的鄰接形成過程的結(jié)果。這種狀態(tài)下,路由器完全實現(xiàn)同步,也就是說它們的連接狀態(tài)數(shù)據(jù)庫(LSDB)是相同的。要實現(xiàn)這種狀態(tài),路由器必須經(jīng)歷一系列的狀態(tài)。這是先前所述的通常的OSPF協(xié)議的一部分,這里不再贅述。
為保持級聯(lián)通信,只有兩種鄰接形成過程的中間狀態(tài)/情形發(fā)信號給從屬單元,這就是交換(Exchange)和全功(Full)。
交換狀態(tài)(Exchange state)指的是各路由器描述其數(shù)據(jù)庫時的狀態(tài)。在這種狀態(tài)下,各路由器完全能夠發(fā)送和接收所有類型的路由選擇協(xié)議信息包。這使得描述信息包能夠與LS更新信息包交替使用。
NSM轉(zhuǎn)換到交換狀態(tài)是基于談判成功(NegotiationDone)事件。這個事件表示發(fā)送/接收數(shù)據(jù)庫描述信息包的啟動。主控單元將把它與“EXCH”TCP直接更新信息一起發(fā)送給各從屬單元。
轉(zhuǎn)換到全功狀態(tài)(Full state)由交換完成(ExchangeDone)事件(當鄰里請求列表為空時)或裝載完成(LoadingDone)事件引發(fā)。相應(yīng)的TCP直接更新信息為“FULL”。
從屬單元不參與數(shù)據(jù)庫描述信息包的交換,但是它們將偵測連接狀態(tài)更新信息包,其中的一些可能是主控單元發(fā)送的LS請求的結(jié)果。其假設(shè)以下條件1、只有主控單元才能根據(jù)收到的數(shù)據(jù)庫描述信息包建立一個連接狀態(tài)請求列表;2、從屬單元不發(fā)送LS請求信息包;3、從屬單元不處理任何收到的LS請求信息包。
當數(shù)據(jù)庫描述信息包出錯時會由多種情況。對于所有這些情況,序列號錯配(SeqNumberMismatch)事件會發(fā)生,該事件能夠?qū)⑧徖锏臓顟B(tài)轉(zhuǎn)換到交換開始(ExStart)狀態(tài)。只要發(fā)生這種情況,則所述“INIT”TCP直接更新信息將被發(fā)送到所有從屬單元。
表1顯示了針對相關(guān)直接更新信息的NSM事件。未在表中列出的任何NSM事件均不發(fā)送給從屬單元。該設(shè)計的目標是確定一個鄰里可以維持較長時間的狀態(tài),以及最小化鄰里狀態(tài)轉(zhuǎn)換的數(shù)量,以排除任何增加的等待時間。
表1

NSM TCP直接更新信息TCP直接更新信息用于指示不同的鄰里變化,這些變化是一種鄰里狀態(tài)(如以上表1所列)、優(yōu)先級、DD序列編號、指定路由器以及指定路由器備份。
圖11是一個單一鄰里描述的結(jié)構(gòu),它包括一個鄰里ID、該鄰里的IP地址、“鄰里選項”的一個字段(field)、該鄰里的優(yōu)先級、DD序列編號、該鄰里的指定路由器以及該鄰里的指定路由器備份。
當收到一條信息后,每一個字段將被拷貝到從屬單元的一個鄰里數(shù)據(jù)結(jié)構(gòu)。這不僅允許指示與鄰里狀態(tài)相關(guān)的變化,而且還允許指示諸如其優(yōu)先級的任意其它變化。
使用TCP協(xié)議以更加可靠地發(fā)送TCP直接更新信息。一個單一TCP直接更新信息可以包裝一個以上的鄰里描述。假設(shè)該描述的結(jié)構(gòu)如上所示,通常經(jīng)由從屬單元以一個單一TCP信息包發(fā)送用于所有的鄰里的所有更新是可以實現(xiàn)的。在極端的情況下,比如鄰里的數(shù)量大與60,則每個從屬單元可以要求兩個TCP信息包。
圖12顯示了具有包裝的多個鄰里描述的一條直接更新信息,它包括一個IP報頭、一個TCP報頭、和一個OSPF報頭,每一個伴隨著各自的鄰里描述,如圖11所示。
連接狀態(tài)數(shù)據(jù)庫的同步連接狀態(tài)數(shù)據(jù)庫(LSDB)用于存儲OSPF路由器之間交換的所有網(wǎng)絡(luò)信息。SPF算法基于LSDB的內(nèi)容生成存儲于路由選擇列表中的路徑。
LSDB需要在整個堆疊保持同步,以使每個單元可以獨立進行路由選擇,選擇相同的下一個跳轉(zhuǎn),故障過多(fail-over)的情況時不需要LSDB重新同步,以及源于主控單元和從屬單元的SNMP/CLI/WEB界面發(fā)布一致的數(shù)據(jù)。
為保持LSDB在運行時間的同步,需要考慮到LS更新(LSUpdate)和自我來源的LSA,因為LSDB只有在下列情況下才能被修改a)接收到由鄰里發(fā)送的LSUpdate信息包中一個新的或更新的LSA;或者b)生成了一個自我來源的LSA。
偵測的LSUpdate信息包的丟失的檢測和恢復(fù)將通過TCP輔助偵探法處理;而自我來源的LSA將在堆疊內(nèi)被全面同步,通過由級聯(lián)上主控單元向從屬單元直接發(fā)送的TCP直接信息進行。此外,為確??煽康囊缌?,從屬單元上重發(fā)列表的維護也將被覆蓋。
自我來源的LSA路由器自己產(chǎn)生的任何LSA(例如LSA報頭中的廣告路由器與該路由器的路由ID是相同的)將被認為是自我來源的LSA。它的產(chǎn)生由以下因素引發(fā)計時器、ISM/NSM狀態(tài)轉(zhuǎn)換、域內(nèi)/域間路由的修改/增加/刪除、或連接到一個新的域。溢流時,在一個LSUpdate信息包中收到自我來源的連接狀態(tài)廣告(LSA)是正常的,且OSPF協(xié)議早已有了一個程序用于處理自我來源的LSA的接收。
如圖13所示,主控單元產(chǎn)生的任何新的LSA將通過一個TCP直接信息直接發(fā)送給從屬單元。收到這個信息后,從屬單元將更新其LSDB。從屬單元將忽略通過溢流程序偵測到的自我來源的LSA,且不會產(chǎn)生任何LSA。
由于單元間的時間偏移,自我來源的LSA需要由主控單元直接發(fā)送到從屬單元。通過溢流,從屬單元有機會接收到主控單元產(chǎn)生的一個更新的自我來源LSA。在這種特定的情況下,從屬單元將把該LSA作為一個舊的、在上一次路由器重置前由它自己產(chǎn)生的LSA。然后,它將產(chǎn)生一個該LSA的新的情況并更新其LSDB。這將導(dǎo)致該LSDB喪失同步。
因為從屬單元不能產(chǎn)生任何自我來源的LSA,如果引發(fā)產(chǎn)生自我來源LSA的情況在從屬單元上發(fā)生,而主控單元在有機會向從屬單元發(fā)送LSA前死機,則該從屬單元將錯過該LSA。
最優(yōu)化一多個自我來源的LSA的包裝多個自我來源LSA的產(chǎn)生可以由一個單一事件引發(fā)。例如,如果一個指定的路由器與一個鄰居建立了一個新的鄰接,則路由器和網(wǎng)絡(luò)的LSA都會產(chǎn)生。為了節(jié)省級聯(lián)的帶寬,多個自我來源LSA將在一個LSA更新TCP直接信息中通過級聯(lián)由主控單元發(fā)送到從屬單元。
主控單元將延遲1秒發(fā)送自我來源LSA到從屬單元,以在一條信息中包裝更多的自我來源LSA。
TCP輔助偵測如圖14所示,這個方法中,從屬單元將對LSUpdate信息包進行偵測以保持其LSDB與主控單元的同步。主控單元和從屬單元之間LSUpdate信息包的抵達順序存在差異并不重要,只要沒有達到所支持的LSA的最大數(shù)量,因為OSPF只接收最近的或最新的LSA,而忽略重復(fù)的或舊的LSA。偵測的LSUpdate信息包的丟失的檢測將通過由主控單元發(fā)送的TCP校驗信息被發(fā)現(xiàn)。
一個TCP校驗信息只包含修改主控單元LSDB的LSA報頭,例如重復(fù)的或較早的LSA報頭將不被包含在TCP校驗信息中以減少級聯(lián)通信。
TCP被選為傳輸層協(xié)議是因為保障的傳遞確保了一個LSDB永遠不會脫離同步。
以下是一個用于TCP輔助偵測的步驟順序,包括信息包丟失的檢測和恢復(fù)a)主控單元收到一條含有新的或更近的LSA的LSUpdate并相應(yīng)更新其LSDB;b)每一個從屬單元將對相同的LSUpdate信息包進行偵測并更新LSDB(這是從屬單元上信息包可能丟失的地方);c)主控單元將發(fā)送一條包含LSA報頭的校驗信息(在一個較晚的時間)給每一個從屬單元(每條校驗信息可能包含一個以上的LSA報頭);d)每一個從屬單元將收到該校驗信息并查找其LSDB中的LSA;e1)如果一個從屬單元的LSDB中具有相同的LSA,則不再進一步處理該LSA;e2)如果一個從屬單元的LSDB中沒有該LSA,或者其LSA是較早的,則該從屬單元將向主控單元請求一個LSA的完整的拷貝。該從屬單元還將把這個LSA報頭放到丟失LSA請求列表;
f)主控單元發(fā)送從屬單元請求的LSA。從主控單元收到這些更新的LSA后,LSDB將被更新,且丟失LSA請求列表中相應(yīng)的LSA報頭將被刪除。
最優(yōu)化—多個LSA報頭的包裝和延遲的校驗如果收到一個新的或更新的TCP校驗信息后即刻發(fā)送一條TCP校驗信息,那么一條TCP校驗信息中只包含一個LSA報頭。這里的問題就是將會有太過多的TCP確認。而且,TCP中包裝一條校驗信息需要代價(overhead)。為了最小化這個代價和使用的級聯(lián)帶寬,可以通過延遲發(fā)送將多個LSA報頭包裝在一個校驗信息中。
有一種可能就是在從屬單元有機會處理相應(yīng)的LSA并更新其LSDB前,從屬單元收到一條TCP校驗信息。這將導(dǎo)致不必要的請求和恢復(fù)信息,除非從屬單元緩存(buffer up)這些校驗信息。通過延遲校驗信息的發(fā)送,發(fā)生上述情況的可能性將被大幅降低。從屬單元的LSDB中校驗信息和LSA情況間的任何差異都可能被作為信息包丟失處理。
LSDB特意拆分保護為確保LSDB的同步以及故障過多(fail-over)情況下溢流的可靠性,可以使用以下三種機制丟失LSA請求列表,延遲的LSAck和列表重發(fā)。
丟失LSA請求列表從屬單元可以具有一些用于LSA丟失的待決的請求,所述LSA丟失由TCP校驗信息檢測到,但從屬單元收到該更新前主控單元死機了。這些待決的請求應(yīng)該在丟失LSA請求列表中?!岸询B拆分”后,新的主控單元必須通過向其鄰里發(fā)送LS請求來請求這個列表上所有的LSA。
延遲的LSAck用于確認收到LSUpdate的LSAck的發(fā)送可以被延遲(重復(fù)的LSUpdate除外),以使多個確認能夠在一個信息包中被發(fā)送。如果一個主控單元在收到一條LSUpdate后,但是在發(fā)出延遲的LSAck前發(fā)生故障,則該鄰里(該LSUpdate的發(fā)送方)將在重發(fā)間隔內(nèi)重新發(fā)送該LSUpdate,直至新的主控單元接收到該LSUpdate并發(fā)回一條LSAck。在“堆疊拆分”時舊的主控單元錯過發(fā)送LSAck不會造成任何問題,該協(xié)議具有一個嵌入(built-in)機制,能夠注意這種情況。
重發(fā)列表在溢流程序中,LSA將會填滿路由器界面的某些子集,并進入重發(fā)列表。如果在重發(fā)間隔內(nèi)收到一條LSAck,則重發(fā)列表中相應(yīng)的LSA將被刪除,否則LSA將被發(fā)送,直至收到一條LSAck。
從屬單元無需保留重發(fā)列表,因為它不對LSA的重發(fā)負責。但是,在“堆疊拆分”期間如果列表丟失,則一個新的主控單元將不能向各鄰里重新發(fā)送LSA。為了確保可靠的溢流,重發(fā)列表應(yīng)當被保留在從屬單元中。
在從屬單元上保留重發(fā)列表并不難,因為當收到一個新的LSA情況時,一個LSA將被加到列表中;而當收到一條偵測的LSAck時,一個LSA情況將被刪除。唯一的問題是,如果從屬單元上一個偵測的LSAck丟失了,重發(fā)列表上的LSA情況將永遠不會刪除。
解決的辦法是,當從屬單元上的重發(fā)計時器屆滿時,不是重發(fā)LSA,而是將其從重發(fā)列表上刪除。重發(fā)計時器也將被設(shè)定到確認死亡間隔(acknowledgement dead interval),那是一個多次重發(fā)的時間間隔,其確切值將是界面的死亡間隔。這里假設(shè)LSAck應(yīng)當在確認死亡間隔內(nèi)從鄰里收到。如果該時間間隔內(nèi)沒有看到LSAck,則假設(shè)偵測的LSAck丟失。使用這種方法,偵測的LSAck的處理很簡單,而且遍及堆疊的LSAck的同步可以被取消。
如果從屬單元變成了一個主控單元,則重發(fā)計時器將被重新設(shè)置回重發(fā)間隔,且重發(fā)列表上的LSA將被重新發(fā)送直至收到LSAck。
用于數(shù)據(jù)庫同步的TCP直接信息的類型用于LSDB同步的TCP直接信息根據(jù)其用法可以分為三種類型a)一個校驗信息;b)一個用于LSUpdate信息丟失的請求;和c)一個新的LSA更新信息。
所述內(nèi)容、發(fā)送方和用法如以下表2所示表2

堆疊合并情形當單元合并,且加入到堆疊的新的單元成為新堆疊的主控單元,然后新主控單元上的所有IP界面和所有的從屬單元將被關(guān)閉(go“down”)。當所有IP界面被關(guān)閉時,所有OSPF界面也被關(guān)閉。結(jié)果,所有OSPF的鄰接全部被破壞。因此,沒有動態(tài)OSPF數(shù)據(jù)需要同步。這種情況下,OSPF協(xié)議被重新啟動,堆疊與剩余的網(wǎng)絡(luò)會聚,就好象一個嶄新的路由器。
在單元合并且加入堆疊的新單元成為一個從屬單元的情況下,主控-從屬單元之間的同步將會發(fā)生。本章的重點是描述這個過程,例如主控單元和一個新的從屬單元之間動態(tài)OSPF數(shù)據(jù)的同步。
合并的情形從堆疊150中的一個單元開始,該單元即主控單元(如圖15中的主控單元151)。該單元是一個OSPF路由器,其與一個鄰里路由器251完整鄰接。
如圖16所示,第二個單元152加入到堆疊中,當其收到一個“從屬事件(slave event)”時成為了一個從屬單元。
一個旗標(“LSDB傳輸未完成”)設(shè)于從屬單元上,說明LSDB傳輸尚未完成。使用這個旗標有兩個原因。第一,當LSDB被傳輸時,我們不希望在從屬單元上運行SPF運算。因此,在運行SPF之前,這個旗標將被檢查。第二,如果在完整的LSDB被發(fā)送到從屬單元之前,主控單元發(fā)生故障,這將指示從屬單元(將變成主控單元)該OSPF鄰接必須被中斷。這將確保堆疊不會處于一個不協(xié)調(diào)的狀態(tài)下,即與網(wǎng)絡(luò)的其余部分不同步的狀態(tài)。
然后靜態(tài)配置數(shù)據(jù)(界面、路由選擇模式、計時器數(shù)據(jù)等)于是通過腳本和實用程序進行同步,并存儲于PDS(如前所述)。
在靜態(tài)配置數(shù)據(jù)被發(fā)送時,一個新的、指向從屬單元的TCP連接被創(chuàng)建。
當主控單元收到一個來自從屬單元的“從屬單元待命(slave ready)”信號時,主控單元將開始編排所有通過TCP直接信息發(fā)送到從屬單元的動態(tài)OSPF數(shù)據(jù)。請注意在靜態(tài)配置完成前,主控單元不會收到“從屬單元待命”信號。
因為主控單元和從屬單元IP界面有可能遭遇不同步(延遲的最壞的情況),主控單元將支配從屬單元上的OSPF界面狀態(tài),而不顧從屬單元上的IP界面狀態(tài)。
主控單元將持續(xù)追蹤用于每一個從屬單元的OSPF動態(tài)數(shù)據(jù)的發(fā)送狀態(tài)。該發(fā)送將從一條TCP直接信息開始,該TCP直接信息包括每一個OSPF界面(例如整個界面狀態(tài)機(ISM))的狀態(tài)。這將把主控單元的發(fā)送狀態(tài)設(shè)置到“ISM完成(ISM complete)”。
現(xiàn)在,如圖17所示,界面狀態(tài)機數(shù)據(jù)從主控單元151發(fā)送到從屬單元152。
接著,如圖18所示,整個鄰里狀態(tài)機(NSM)被發(fā)送到從屬單元。這個發(fā)送帶有1個或2個TCP直接信息(根據(jù)配置的鄰里的數(shù)量)。NSM被發(fā)送后,主控單元的發(fā)送狀態(tài)被設(shè)置到“NSM完成”。
LSDB由與特定的域相關(guān)的連接狀態(tài)廣告(LSA)和外部路由組成。如圖19所示,TCP直接信息將從主控單元發(fā)送到從屬單元,每一條包括多個連接狀態(tài)廣告。主控單元負責保持追蹤有多少LSDB被發(fā)送到從屬單元。主控單元將繼續(xù)發(fā)送信息到從屬單元,直到所有LSA均被發(fā)送(請注意,自我來源LSA包含在LSDB中,因此在合并時無需被單獨發(fā)送}。
當主控單元正在發(fā)送時如果一個新的LSA信息包抵達,該信息包將會被處理,就好象當前發(fā)送不在進行,例如,從屬單元將繼續(xù)對來自路由器251的新的LSUpdate信息包進行偵測,且校驗信息將由主控單元進行發(fā)送。換句話說,當LSDB被發(fā)送時TCP輔助偵測將發(fā)生。是偵測的LSUpdate信息包中的LSA情況,還是被發(fā)送的LSA情況先行到達無關(guān)緊要。從屬單元只會將最新的版本放入其LSDB中,而忽略任何收到的重復(fù)的版本或舊版本。
在最后一組LSA被發(fā)送之后,主控單元將發(fā)送一條“LSDB發(fā)送完成”信息(圖20)到從屬單元,并將發(fā)送狀態(tài)設(shè)置到“LSDB完成”。當從屬單元收到該“LSDB傳輸完成”,它將清除該“LSDB傳輸未完成”的旗標,并安排SPF運行。這個旗標說明該從屬單元已經(jīng)完成與主控單元的同步,而且能夠在主控單元故障時接管而無需改變鄰里連接(而成為主控單元)。這個旗標的清除完成了用于新的從屬單元的LSDB的同步。
當發(fā)生合并時,主控單元上的OSPF協(xié)議將如本文其余部分所述那樣的運行。所以,比如,如果主控單元收到一個問候信息包,這將導(dǎo)致主控單元上鄰里數(shù)據(jù)結(jié)構(gòu)的一個變化,相應(yīng)的TCP直接更新信息仍將發(fā)送到從屬單元(不管合并的狀態(tài)是什么)。同樣,如果在與從屬單元的同步過程中,主控單元上的界面狀態(tài)機上發(fā)生了一個變化,這也將導(dǎo)致一條TCP直接信息被發(fā)送到從屬單元。
在任何時候,如果從屬單元上一個IP界面打開(go up),則SPF將被安排到該從屬單元上運行。這將確保主控單元和從屬單元上的路由選擇列表處于同步(當兩個單元被同時開啟時,這特別有必要)。如前所述,如果LSDB發(fā)送尚未完成(例如設(shè)置有“LSDB傳輸未完成”旗標),則SPF不會運行。
堆疊拆分情形一個“堆疊拆分”將導(dǎo)致(如前所述)堆疊中單元的四種情形中的一種。
A、從屬單元躍升為主控單元從非主控狀態(tài)躍升到主控狀態(tài)可以在多種情況(最值得注意的是堆疊拆分,但主控單元停電或級聯(lián)故障的情況也是可以的)下發(fā)生。對于這些情況,層3(Layer 3)堆疊配置指揮返回到主控操作的過程。OSPF將收到層3主控事件,并執(zhí)行下列功能以承擔主控操作。
對于OSPF,由從屬單元躍升到主控單元需要該單元發(fā)生以下行為i)OSPF協(xié)議信息的發(fā)送將恢復(fù)。
ii)用于所有信息包的OSPF協(xié)議信息的接收將恢復(fù)。
iii)將重發(fā)計時器由確認死亡間隔重新設(shè)置回重發(fā)時間間隔。
iv)請求丟失LSA列表上的LSA。
v)與主控單元的舊的TCP連接將被刪除。
vi)與從屬單元的新的TCP連接將被創(chuàng)建。
vii)用于低于全功(full)狀態(tài)的鄰里的鄰接將被重建。
viii)如果只有一部分LSDB的發(fā)送發(fā)生(在LSDB發(fā)送完成旗標所標記的穩(wěn)定合并狀態(tài)實現(xiàn)之前發(fā)生拆分),鄰接將被重建。
B、主控單元丟失從屬單元這個情況同樣需要考慮功能。任何時候,一個主控單元丟失了一個從屬單元,與該從屬單元的舊的TCP連接必須被刪除。
C、從屬單元與新主控單元的同步這種情況無需討論,因為事件發(fā)生的順序類似于那些與主控單元的同步。但是,對于這種特定情況,需要額外考慮的是與主控單元的舊的TCP連接必須被刪除。
D、從屬單元丟失從屬單元這種情況無需討論,因為一個從屬單元丟失堆疊中的另一個從屬單元不需要功能的變化。這種情況和前一種情況在兩個單元的堆疊中不會發(fā)生。
信息包丟失情形OSPF中的重發(fā)和確認機制確保了主控單元能夠從信息包的丟失中恢復(fù)過來。用于ISM、NSM和LSDB的信息通過TCP發(fā)送,因此傳輸也是有保障的。這樣,只有從屬單元上信息包的丟失需要被考慮,本章的討論僅限于從屬單元,除非另有說明。
OSPF信息包有五種類型1、問候2、數(shù)據(jù)庫描述3、連接狀態(tài)請求4、連接狀態(tài)更新5、連接狀態(tài)確認在從屬單元上,連接、數(shù)據(jù)庫描述和連接狀態(tài)請求信息包不會被偵測(見鄰里狀態(tài)機同步以獲得更多細節(jié)),因此無需考慮信息包丟失的情況。用于連接狀態(tài)更新和連接狀態(tài)確認的簡要功能和信息包丟失的情況將在以下討論。
連接狀態(tài)更新(LSUpdate)連接狀態(tài)更新信息包包括一組新的LSA,并被溢流一個離其起點更遠的跳轉(zhuǎn)(hop)。LSDB的建設(shè)只能依靠來自鄰里的LSUpdate的接收和自我來源LSA的生成。
為了保持LSDB的同步,從屬單元將偵測LSUpdate信息包。LSUpdate信息包的丟失將導(dǎo)致LSDB脫離同步。一種叫做“TCP”輔助偵測的方法將在運行時間覺察并恢復(fù)丟失的LSUpdate信息包。在合并時間,整個LSDB將被從主控單元發(fā)送到從屬單元。發(fā)送過程中任何新的LSUpdate信息包的丟失也將被TCP輔助偵測捕捉并處理。
從理論上來將,TCP偵測用于在主控單元發(fā)生故障之前的瞬間的偵測LSUpdate信息包的丟失的情況是有困難的。然而發(fā)生這種情況的可能性很小。而且,如果丟失的信息包只是一個LSA更新信息包(例如只是序列編號不同,而內(nèi)容相同),那么路由選擇列表中相應(yīng)的路由不會被更改。如果丟失的信息包是一個更新信息包,則新的主控單元不得不等候一個LSA更新間隔(30分鐘)以得到下一個更新。
通過付出更為緩慢的協(xié)議匯集和更為復(fù)雜的設(shè)計的代價,上述這種情況可以被完全避免,但是這種完全避免沒有必要。
連接狀態(tài)確認(LSAck)LSAck用于確認收到LSUpdate信息包中的LSA。收到LSAck后,相應(yīng)LSA的重發(fā)將被停止,同時該LSA被從重發(fā)列表中刪除。LSUpdate的重發(fā)和LSAck確保了溢流程序的可靠性。
從屬單元將偵測LSAck,以維護其重發(fā)列表。偵測的LSAck的丟失將導(dǎo)致LSA永遠不會從重發(fā)列表中刪除,除非鄰接中斷,但是在從屬單元上LSA不會被重發(fā)。假設(shè)LSAck將在確認死亡時間間隔(這是一個多次重發(fā)的時間間隔,其確切值將是界面的死亡時間間隔)內(nèi)被收到,如果不是,則相應(yīng)的LSA將從重發(fā)列表中被刪除。見重發(fā)列表一章以獲得更多細節(jié)。
總之,只有LSUpdate和LSAck被偵測,且它們的丟失將分別由TCP輔助偵測和計時器來處理。其它OSPF信息包將被刪除,且無需從屬單元對丟失進行處理。表3概括了信息包丟失的處理。
表3

在一項可替換的用于同步的技術(shù)中,如前所述,主控單元將控制從屬單元的ISM和NSM,但LSDB的同步最初是通過對LSUpadte信息包的偵測。LSUpdate信息包的丟失將通過比較主控單元和從屬單元間的OSPF域校驗和的方式被檢測到。如果校驗和不同,則啟動一個恢復(fù)程序。這種技術(shù)可以用于比較小的網(wǎng)絡(luò)。
用于在主控單元和從屬單元之間傳輸數(shù)據(jù)的通訊機制不限于TCP。任何含有能夠檢測和恢復(fù)/重試丟失的信息包的機制的協(xié)議都可以被用于包裝收到的LSUpdate并將它們發(fā)送到從屬單元。
權(quán)利要求
1.一個相互連接并組織起來以構(gòu)成一個單一的路由選擇實體的堆疊的網(wǎng)絡(luò)路由器,所述路由器包括一個單一的主控路由器和至少一個從屬路由器,其特征在于a)每一個路由器均能完整執(zhí)行一項路由選擇協(xié)議,每一個路由器均有各自的網(wǎng)絡(luò)數(shù)據(jù)庫;b)所述主控路由器只能完整執(zhí)行所述路由選擇協(xié)議,只有所述主控路由器能夠根據(jù)所述路由選擇協(xié)議產(chǎn)生和發(fā)送網(wǎng)絡(luò)廣告,并接收來自其鄰里的各種類型的網(wǎng)絡(luò)數(shù)據(jù)庫更新信息;c)每一個從屬路由器都偵測來自鄰里的網(wǎng)絡(luò)更新信息;d)所述主控路由器向每一個從屬路由器發(fā)送校驗數(shù)據(jù),該校驗數(shù)據(jù)指示主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫的一個增加的更新;e)每一個從屬路由器將校驗數(shù)據(jù)與該路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫中相應(yīng)的數(shù)據(jù)進行比較,以確定所述從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫是否與主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫同步;和f)如果所述比較顯示該從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)與所述主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫不同步,則從屬路由器向所述主控路由器請求一條網(wǎng)絡(luò)廣告。
2.如權(quán)利要求1所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于,所述校驗數(shù)據(jù)由變化的網(wǎng)絡(luò)廣告組成。
3.如權(quán)利要求2所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于,所述主控單元通過傳輸控制協(xié)議的方式向每一個從屬路由器發(fā)送所述校驗數(shù)據(jù)。
4.如權(quán)利要求1所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于g)每一個路由器都有各自的協(xié)議狀態(tài)機;h)所述主控路由器向每一個從屬路由器發(fā)送直接更新信息,該直接更新信息這將使每一個從屬路由器中的單獨協(xié)議狀態(tài)機操作,以與所述主控路由器的單獨協(xié)議狀態(tài)機相同步。
5.如權(quán)利要求4所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于,所述協(xié)議是OSPF協(xié)議。
6.相互連接并組織起來以構(gòu)成一個單一的路由選擇實體的一個堆疊的網(wǎng)絡(luò)路由器,所述路由器包括一個單一的主控路由器和至少一個從屬路由器,其特征在于a)每一個路由器都能完整執(zhí)行一項OSPF路由選擇協(xié)議,每一個路由器都具有一個單獨的界面狀態(tài)機、一個單獨的鄰里狀態(tài)機和一個單獨的連接狀態(tài)數(shù)據(jù)庫;b)所述主控路由器只能完整執(zhí)行所述OSPF協(xié)議,只有所述主控路由器才能根據(jù)OSPF協(xié)議產(chǎn)生和發(fā)送網(wǎng)絡(luò)廣告,并接收來自其鄰里的各種類型的OSPF連接狀態(tài)更新信息;c)所述主控路由器向每一個從屬路由器發(fā)送直接更新信息,該直接更新信息使得每個從屬路由器的單獨界面狀態(tài)機和單獨鄰里狀態(tài)機操作,以與所述主控路由器的單獨界面狀態(tài)機和單獨鄰里狀態(tài)機同步。d)每一個從屬路由器都偵測來自相鄰里的OSPF連接狀態(tài)更新信息;e)所述主控路由器向每一個從屬路由器發(fā)送校驗數(shù)據(jù),該校驗數(shù)據(jù)代表所述主控路由器的連接狀態(tài)數(shù)據(jù)庫的一個增加的更新;f)每一個從屬路由器將校驗數(shù)據(jù)與從屬路由器的單獨連接狀態(tài)數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)進行比較,以確定所述從屬路由器的單獨連接狀態(tài)數(shù)據(jù)庫是否與主控路由器的連接狀態(tài)數(shù)據(jù)庫相同步;和g)如果所述比較顯示從屬路由器的單獨連接狀態(tài)數(shù)據(jù)庫與所述主控路由器的連接狀態(tài)數(shù)據(jù)庫不同步,則從屬路由器向所述主控路由器請求一條連接狀態(tài)廣告。
7.如權(quán)利要求6所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于,所述校驗數(shù)據(jù)包括連接狀態(tài)廣告的報頭。
8.如權(quán)利要求6所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于,所述主控單元通過傳輸控制協(xié)議的方式向每一個從屬路由器發(fā)送所述校驗數(shù)據(jù)。
9.如權(quán)利要求6所述的堆疊的網(wǎng)絡(luò)路由器,其特征在于,所述校驗數(shù)據(jù)包括一個OSPF域校驗和。
10.一個網(wǎng)絡(luò)路由選擇單元,可用于相互連接并組織起來以構(gòu)成一個單一的路由選擇實體的一個堆疊的單元,其特征在于,所述路由選擇單元具有至少一個操作的主控模式和一個操作的從屬模式,并被組織成a)當處于所述主控模式時,完全執(zhí)行一個路由選擇協(xié)議,根據(jù)所述路由選擇協(xié)議產(chǎn)生和發(fā)送網(wǎng)絡(luò)廣告、并接收各種類型的網(wǎng)絡(luò)數(shù)據(jù)庫更新信息;b)當處于所述主控模式時,提供路由器校驗數(shù)據(jù),該數(shù)據(jù)代表所述單元的網(wǎng)絡(luò)數(shù)據(jù)庫的一個增加的更新;c)當處于所述從屬模式時,偵測網(wǎng)絡(luò)更新信息;d)當處于所述從屬模式時,將校驗數(shù)據(jù)與所述單元網(wǎng)絡(luò)數(shù)據(jù)庫中的相應(yīng)信息作比較,以確定該單元的網(wǎng)絡(luò)數(shù)據(jù)庫是否與主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫相同步;和e)當處于所述從屬模式時,如果所述比較顯示該單元的網(wǎng)絡(luò)數(shù)據(jù)庫與所述主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫不同步,則向所述主控路由器請求一條網(wǎng)絡(luò)廣告。
11.如權(quán)利要求10所述的網(wǎng)絡(luò)路由選擇單元,其特征在于,包括用于操作所述路由選擇協(xié)議的協(xié)議狀態(tài)機,并進一步被組織成f)當處于所述主控模式時,提供直接更新信息,使一個從屬路由器的單獨協(xié)議狀態(tài)機操作,以與該單元的單獨協(xié)議狀態(tài)機同步;和g)當處于所述從屬模式時,響應(yīng)直接更新信息,使其協(xié)議狀態(tài)機操作以與處于主控模式下的另一個單元的單獨協(xié)議狀態(tài)機同步。
12.如權(quán)利要求10所述的網(wǎng)絡(luò)單元,其特征在于,所述校驗數(shù)據(jù)由變化的網(wǎng)絡(luò)廣告組成。
13.如權(quán)利要求10所述的網(wǎng)絡(luò)單元,其特征在于,該單元被組織成通過傳輸控制協(xié)議的方式發(fā)送所述校驗信息。
14.一個網(wǎng)絡(luò)路由選擇單元,可用于相互連接并組織起來以構(gòu)成一個單一的路由選擇實體的一個堆疊的單元,其特征在于,所述路由選擇單元具有至少一個操作的主控模式和一個操作的從屬模式,并包括協(xié)議狀態(tài)機和一個用于操作OSPF路由選擇協(xié)議的單獨的連接狀態(tài)數(shù)據(jù)庫,并被組織成a)當處于所述主控模式時,完全執(zhí)行所述路由選擇協(xié)議,根據(jù)所述路由選擇協(xié)議產(chǎn)生和發(fā)送連接狀態(tài)廣告,并接收各種類型的連接狀態(tài)數(shù)據(jù)庫更新信息;b)當處于所述主控模式時,提供直接更新信息,使一個從屬路由器的協(xié)議狀態(tài)機操作,以與所述單元的所述協(xié)議狀態(tài)機同步;c)當處于所述主控模式時,提供代表該單元的連接狀態(tài)數(shù)據(jù)庫的一個增加的更新的數(shù)據(jù)。d)當處于所述從屬模式時,響應(yīng)直接更新信息,并使該單元的協(xié)議狀態(tài)機與之同步;和e)當處于所述從屬模式時,響應(yīng)處于主控模式下的一個單元的數(shù)據(jù),以使其連接狀態(tài)數(shù)據(jù)庫與該處于主控模式下的單元的連接狀態(tài)數(shù)據(jù)庫同步。
15.如權(quán)利要求14所述的網(wǎng)絡(luò)單元,其特征在于,所述網(wǎng)絡(luò)單元被組織成f)當處于所述從屬模式時,偵測來自鄰里的網(wǎng)絡(luò)更新信息;g)當處于所述從屬模式時,將校驗數(shù)據(jù)與該單元的連接狀態(tài)數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)進行比較,以確定該單元的連接狀態(tài)數(shù)據(jù)庫是否與主控路由器的一個連接狀態(tài)數(shù)據(jù)庫相同步;和h)當處于所述從屬模式時,如果所述比較顯示該單元的連接狀態(tài)數(shù)據(jù)庫與所述主控路由器的連接狀態(tài)數(shù)據(jù)庫不同步,則向所述主控路由器請求一條連接狀態(tài)廣告。
16.如權(quán)利要求15所述的網(wǎng)絡(luò)單元,其特征在于,所述校驗數(shù)據(jù)包括連接狀態(tài)廣告的報頭。
17.如權(quán)利要求15所述的網(wǎng)絡(luò)單元,其特征在于,所述單元被組織成通過傳輸控制協(xié)議的方式發(fā)送所述校驗數(shù)據(jù)。
18.如權(quán)利要求15所述的網(wǎng)絡(luò)單元,其特征在于,所述校驗數(shù)據(jù)包括一個OSPF域校驗和。
19.一種操作堆疊的網(wǎng)絡(luò)路由器的方法,所述堆疊的網(wǎng)絡(luò)路由器相互連接并組織起來以構(gòu)成一個單一的路由選擇實體,所述路由器包括一個單一的主控路由器和至少一個從屬路由器,其中每一個路由器都能夠完全執(zhí)行一個路由選擇協(xié)議,其特征在于,所述方法包括a)使只有所述主控路由器能夠完全執(zhí)行所述路由選擇協(xié)議,只有所述主控路由器能夠根據(jù)所述路由選擇協(xié)議產(chǎn)生和發(fā)送網(wǎng)絡(luò)廣告,并接收來自其鄰里的所有類型的網(wǎng)絡(luò)數(shù)據(jù)庫更新信息;b)使每一個從屬路由器偵測來自鄰里的網(wǎng)絡(luò)更新信息;c)由主控路由器向每一個從屬路由器發(fā)送校驗數(shù)據(jù),該校驗數(shù)據(jù)代表所述主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫的一個增加的更新;d)使每一個從屬路由器將校驗數(shù)據(jù)與該從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)進行比較,以確定所述從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫是否與所述主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫相同步;和e)當所述比較顯示該從屬路由器的單獨網(wǎng)絡(luò)數(shù)據(jù)庫與所述主控路由器的網(wǎng)絡(luò)數(shù)據(jù)庫不同步時,使從屬路由器向所述主控路由器請求一條網(wǎng)絡(luò)廣告。
20.如權(quán)利要求19所述的方法,其特征在于,每一個路由器具有各自的協(xié)議狀態(tài)機,該方法進一步包括f)由該主控路由器向每一個從屬路由器發(fā)送直接更新信息,該信息使每一個從屬路由器的單獨協(xié)議狀態(tài)機操作,以與所述主控路由器的單獨協(xié)議狀態(tài)機相同步。
21.如權(quán)利要求19所述的方法,其特征在于,所述路由選擇協(xié)議是一個定向的向量路由選擇協(xié)議。
22.如權(quán)利要求19所述的方法,其特征在于,所述路由選擇協(xié)議是一個連接狀態(tài)路由選擇協(xié)議。
23.如權(quán)利要求22所述的方法,其特征在于,所述路由選擇協(xié)議是一個OSPT路由選擇協(xié)議。
24.如權(quán)利要求19所述的方法,其特征在于,所述校驗數(shù)據(jù)包括連接狀態(tài)廣告的報頭。
25.如權(quán)利要求19所述的方法,其特征在于,所述校驗數(shù)據(jù)通過傳輸控制協(xié)議的方式發(fā)送。
26.如權(quán)利要求19所述的方法,其特征在于,所述校驗數(shù)據(jù)包括一個OSPF域校驗和。
全文摘要
一種網(wǎng)絡(luò)路由器的堆疊,包括至少一個(選出)的主控單元和一個或多個從屬單元,每一個均能夠運行一個路由選擇協(xié)議。只有主控單元在給定的時間運行整個路由選擇協(xié)議。它發(fā)送直接更新信息到每一個從屬單元,該信息包括用于路由選擇協(xié)議所需要的協(xié)議狀態(tài)機的特定信息包格式,并用于網(wǎng)絡(luò)數(shù)據(jù)庫,如每一個從屬單元中的OSPF協(xié)議的連接狀態(tài)數(shù)據(jù)庫。每一個從屬單元可以純粹依靠主控單元的直接更新信息運行協(xié)議狀態(tài)機(如提供)。網(wǎng)絡(luò)數(shù)據(jù)庫的同步可以依靠偵測更新信息包和將收到的信息與主控單元發(fā)送的校驗數(shù)據(jù)信息相比較來進行。
文檔編號H04L12/56GK1649341SQ20041001143
公開日2005年8月3日 申請日期2004年12月22日 優(yōu)先權(quán)日2003年12月22日
發(fā)明者里格爾·簡·A, 圖拉茲·亞采克·A, 利文斯頓·約翰·M, 梁錦文 申請人:3Com公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1