專利名稱:一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)及方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)測量和性能分析技術(shù)領(lǐng)域,特別涉及一種利用幵放最短路徑優(yōu)先協(xié)議的鏈路狀態(tài)廣播(0SPF LSA)對自治系統(tǒng)內(nèi)的與指定路由器 (Designated Router, DR)相關(guān)的網(wǎng)絡(luò)路由拓?fù)鋵崟r構(gòu)建和更新的系統(tǒng)及方 法。
背景技術(shù):
今天的國際互聯(lián)網(wǎng)(Internet)和較大的網(wǎng)絡(luò)服務(wù)提供商(Internet Service Provider, ISP)的網(wǎng)絡(luò)4皮分成大量的自治系統(tǒng)(Autonomous System, AS),自治系統(tǒng)設(shè)置了管理控制的區(qū)域和作用于自治系統(tǒng)范圍的路由策略。所 以Internet級的路由結(jié)構(gòu)常被劃分為域間和域內(nèi)兩種。對于域內(nèi)路由,有多種域內(nèi)路由協(xié)議,目前開放最短路徑優(yōu)先協(xié)議(Open Shortest Path First, OSPF)為主流的域內(nèi)路由協(xié)議,用于單個AS的路由器 之間的路由選擇,并且在Internet和電信IP承載網(wǎng)上有最廣泛的應(yīng)用。OSPF 是IETF組織開發(fā)的一個基于鏈路狀態(tài)的自治系統(tǒng)內(nèi)部路由協(xié)議。在IP網(wǎng)絡(luò)上, 它通過收集和傳遞自治系統(tǒng)的鏈路狀態(tài)來動態(tài)地發(fā)現(xiàn)并傳播路由。網(wǎng)絡(luò)拓?fù)涫侵妇W(wǎng)絡(luò)元素之間的一種連接性信息,它對于網(wǎng)絡(luò)管理者和運營 者有著重要的意義。域內(nèi)拓?fù)鋭t是指自治系統(tǒng)內(nèi)部路由器和子網(wǎng)的協(xié)議邏輯連 接性信息。實時動態(tài)的域內(nèi)拓?fù)渲庇^反映了路由故障和鏈路狀態(tài)變化,幫助網(wǎng) 絡(luò)管理人員及時發(fā)現(xiàn)網(wǎng)絡(luò)變化,定位故障地點,降低網(wǎng)絡(luò)運維成本。每一臺運行OSPF協(xié)議的路由器總是將本地網(wǎng)絡(luò)的連接狀態(tài)(如可用接口 信息、可達(dá)鄰居信息等),用鏈路狀態(tài)廣播(Link—State Advertisement, LSA) 描述,并廣播到整個自治系統(tǒng)中去。這樣,每臺路由器都收到了自治系統(tǒng)中所 有路由器生成的鏈路狀態(tài)廣播,這些鏈路狀態(tài)廣播的集合組成了鏈路狀態(tài)數(shù)據(jù) 庫(Link State Database, LSDB)。由于每一條鏈路狀態(tài)廣播是對一臺路由器 周邊網(wǎng)絡(luò)拓?fù)涞拿枋?,則整個鏈路狀態(tài)數(shù)據(jù)庫就是對該自治系統(tǒng)網(wǎng)絡(luò)拓?fù)涞恼鎸嵎从?。OSPF路由協(xié)議對其鏈路狀態(tài)廣播(0SPF LSA)報文做出了分類。0SPF將 鏈路狀態(tài)廣播報文共分成5類,分別為類型l:又被稱為路由器鏈路信息報文(OSPF Router LSA),所有的OSPF 路由器都會產(chǎn)生這種數(shù)據(jù)包,用于描述路由器上聯(lián)接到某一個區(qū)域的鏈路或是 某一端口的狀態(tài)信息。路由器鏈路信息報文只會在某一個特定的區(qū)域內(nèi)廣播, 而不會廣播至其它的區(qū)域。在類型1的鏈路報文中,OSPF路由器通過對報文中某些特定數(shù)據(jù)位的設(shè) 定,告訴其余的路由器自身是一個區(qū)域邊界路由器或是一個自治系統(tǒng)(AS)邊 界路由器。并且,類型1的鏈路狀態(tài)報文在描述其所聯(lián)接的鏈路時,會根據(jù)各 鏈路所聯(lián)接的網(wǎng)絡(luò)類型對各鏈路打上鏈路標(biāo)識Link ID。類型2:又被稱為網(wǎng)絡(luò)鏈路信息報文(OSPF Network LSA)。網(wǎng)絡(luò)鏈路信 息報文是由指定路由器產(chǎn)生的,在一個廣播性的、多點接入的網(wǎng)絡(luò),例如以太 網(wǎng)、令牌環(huán)網(wǎng)及FDDI網(wǎng)絡(luò)環(huán)境中,這種鏈路狀態(tài)報文用來描述該網(wǎng)段上所聯(lián) 接的所有路由器的狀態(tài)信息。指定路由器(DR)只有在與至少一個路由器建立相鄰關(guān)系后才會產(chǎn)生網(wǎng)絡(luò) 鏈路信息報文,在該報文中含有對所有已經(jīng)與指定路由器(DR)建立相鄰關(guān)系 的路由器的描述,包括指定路由器(DR)本身。類型2的鏈路信息只會在包含 指定路由器(DR)所處的廣播性網(wǎng)絡(luò)的區(qū)域中廣播,不會廣播至其余的OSPF 路由區(qū)域。類型3和類型4:類型3和類型4的鏈路狀態(tài)廣播在OSPF路由協(xié)議中又 稱為總結(jié)鏈路信息報文(OSPF Summary LSA),該鏈路狀態(tài)廣播是由區(qū)域邊界 路由器或AS邊界路由器產(chǎn)生的。Summary LSA描述的是到某一個區(qū)域外部的 路由信息,這一個目的地地址必須是同一個自治系統(tǒng)(AS)中。Summary LSA 也只會在某一個特定的區(qū)域內(nèi)廣播。類型3與類型4兩種總結(jié)性鏈路信息的區(qū) 別在于,類型3是由區(qū)域邊界路由器產(chǎn)生的,用于描述到同一個自治系統(tǒng)(AS) 中不同區(qū)域之間的鏈路狀態(tài);而類型4是由自治系統(tǒng)(AS)邊界路由器產(chǎn)生的, 用于描述不同自治系統(tǒng)(AS)的鏈路狀態(tài)信息。類型5:類型5的鏈路狀態(tài)廣播稱為AS外部鏈路狀態(tài)信息報文。類型5 的鏈路報文是由自治系統(tǒng)(AS)邊界路由器產(chǎn)生的,用于描述到自治系統(tǒng)(AS)外的目的地的路由信息,該數(shù)據(jù)包會在自治系統(tǒng)(AS)中除殘域(stub area) 以外的所有區(qū)域中廣播。 一般來說,這種鏈路狀態(tài)信息描述的是到自治系統(tǒng) (AS)外部某一特定網(wǎng)絡(luò)的路由信息,在這種情況下,類型5的鏈路狀態(tài)報文的鏈路標(biāo)識采用的是目的地網(wǎng)絡(luò)的IP地址;在某些情況下,自治系統(tǒng)(AS) 邊界路由器可以對自治系統(tǒng)(AS)內(nèi)部廣播默認(rèn)路由信息,在這時,類型5 的鏈路廣播數(shù)據(jù)包的鏈路標(biāo)識采用的是默認(rèn)網(wǎng)絡(luò)號碼0. 0. 0. 0。在目前的IP網(wǎng)絡(luò)運行中,從目前研究和工程的現(xiàn)狀而看,大部分基于OSPF 更新報文的自治系統(tǒng)級網(wǎng)絡(luò)拓?fù)錁?gòu)建方法都有著如下不足第一,沒有維護(hù)子 網(wǎng)的連接信息??梢暬淖泳W(wǎng)連接關(guān)系,可以幫助網(wǎng)絡(luò)管理人員發(fā)現(xiàn)子網(wǎng)的物 理連接關(guān)系,更好的對網(wǎng)絡(luò)進(jìn)行管理。第二,在廣播網(wǎng)段和NAMB的網(wǎng)段中, 沒有維護(hù)DR網(wǎng)段的接口信息。在采集到的OSPF更新報文不全或亂序的時候, 容易使得網(wǎng)絡(luò)中拓?fù)溥B接信息出錯。發(fā)明內(nèi)容本發(fā)明的目的是克服現(xiàn)有技術(shù)的不足,提供一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路 由拓?fù)涮幚硐到y(tǒng)及方法,其利用開放最短路徑優(yōu)先協(xié)議的鏈路狀態(tài)廣播(OSPF LSA),構(gòu)建和更新自治系統(tǒng)內(nèi)的DR相關(guān)的拓?fù)?,將自治系統(tǒng)內(nèi)的子網(wǎng)連接關(guān) 系可視化,方便網(wǎng)絡(luò)管理人員發(fā)現(xiàn)子網(wǎng)的物理連接關(guān)系,更好的對網(wǎng)絡(luò)進(jìn)行管 理,并且在采集到的OSPF更新報文不全或亂序的時候,仍然能夠建立正確的 路由器之間、路由器和子網(wǎng)的連接關(guān)系。為了達(dá)到上述目的,本發(fā)明提供如下技術(shù)方案一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其特征在于,包括前溯分析單元,用于根據(jù)接收到的路由信息采集探針采集的OSPF LSA報 文,解析報文內(nèi)容,分析與DR相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓?,處理DR映射表中相應(yīng)區(qū) 域包含的DR網(wǎng)段信息,并更新自治系統(tǒng)內(nèi)的拓?fù)鋱D。進(jìn)一步地,所述實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)還包括路由信息采集探針,用 于通過物理上部署到自治系統(tǒng)的OSPF區(qū)域,并通過隧道連通到網(wǎng)絡(luò)中,與網(wǎng) 絡(luò)中每個OSPF區(qū)域的運行OSPF路由協(xié)議的路由器建立鄰接關(guān)系,實時被動地 采集在該OSPF區(qū)域泛洪的OSPF LSA報文,并發(fā)送給所述前溯分析單元。進(jìn)一步地,所述前溯分析單元包括Network LSA處理模塊和Router LSA 處理模塊,其中所述Network LSA處理模塊,用于根據(jù)接收到的路由信息采集探針采集的 OSPF Network LSA報文,解析報文內(nèi)容,通過比較前后兩條Network LSA報 文,分析自治系統(tǒng)內(nèi)與DR相關(guān)的拓?fù)涞淖兓瑯?gòu)建或更新全局DR映射表中包 含該DR的網(wǎng)段信息,并更新拓?fù)鋱D;所述Router LSA處理模塊,用于根據(jù)接收到的路由信息采集探針采集的 OSPF Router LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Router LSA報文,并判斷前后兩條Router LSA中的Link類型是否與DR相關(guān),分析 自治系統(tǒng)內(nèi)的拓?fù)渥兓?,?gòu)建、刪除或更新全局DR映射表中包含該DR的網(wǎng)段 信息,并更新拓?fù)鋱D。進(jìn)一步地,所述DR網(wǎng)段信息包括含有如下內(nèi)容的數(shù)據(jù)結(jié)構(gòu)普通路由器 列表、DR網(wǎng)段的IP地址、DR的IP地址、DR的連接路由器列表。進(jìn)一步地,所述路由信息采集探針與路由器的OSPF協(xié)議關(guān)系丟失的或者 建立的時候,向所述前溯分析單元發(fā)送鄰居丟失或者鄰居建立的控制報文。進(jìn)一歩地,所述自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)還包括報文區(qū)分 模塊,用于區(qū)分所述路由信息采集探針與前溯分析單元傳輸?shù)膱笪念愋?,所?報文類型一類是路由信息采集探針通過與網(wǎng)絡(luò)中的OSPF路由器建立鄰居關(guān)系 而得到的路由更新報文;另一類是路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中OSPF路由 器之間的鄰居關(guān)系建立或者丟失的控制報文。進(jìn)一步地,所述前溯分析單元,在收到路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中 OSPF路由器之間的鄰居關(guān)系丟失的控制報文時,去除該路由器與其他路由器、 子網(wǎng)的連接關(guān)系,更新拓?fù)鋱D。進(jìn)一步地,所述自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)還包括配置模 塊,用于對所述路由信息采集探針覆蓋范圍內(nèi)的路由器進(jìn)行OSPF配置,使路 由信息采集探針與自治系統(tǒng)內(nèi)建立隧道的路由器建立起OSPF全鄰接關(guān)系,采 集到各區(qū)域內(nèi)的報文信息。本發(fā)明還提供一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒?,包括如下步驟步驟Sl,前溯分析單元根據(jù)接收到的路由信息采集探針采集的OSPF更新報文,解析報文內(nèi)容,分析與DR相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓?,?gòu)建、刪除或更新全 局DR映射表中相應(yīng)區(qū)域包含的DR網(wǎng)段信息,并更新自治系統(tǒng)內(nèi)的拓?fù)鋱D。進(jìn)一歩地,在步驟S1之前還包括步驟S1',將路由信息采集探針通過物 理上部署到自治系統(tǒng)的0SPF區(qū)域中,實時被動地采集在該0SPF區(qū)域泛洪的更 新報文,并傳輸給前溯分析單元。進(jìn)一步地,在所述歩驟sr中,還包括路由信息采集探針從每個收到的OSPF更新報文中提取出每個LSA,增添該報文所來自的OSPF路由器IP地址、 該路由器所屬的自治系統(tǒng)號字段,以及OSPF報文頭部的相應(yīng)字段。 進(jìn)一步地,所述步驟S1具體包括如下步驟歩驟Sll,前溯分析單元接收OSPF更新報文,判斷OSPFLSA類型,如果 OSPF LSA類型為Network LSA,則轉(zhuǎn)步驟S12;如果OSPF LSA類型為Router LSA, 則轉(zhuǎn)步驟S13;步驟S12,前溯分析單元根據(jù)接收到的路由信息采集探針采集的0SPF Network LSA報文,解析報文內(nèi)容,通過比較前后兩條Network LSA報文,分 析自治系統(tǒng)內(nèi)與DR相關(guān)的拓?fù)涞淖兓?,?gòu)建或更新全局DR映射表中包含該 DR的網(wǎng)段信息,轉(zhuǎn)步驟S14;步驟S13,前溯分析單元根據(jù)接收到的路由信息采集探針采集的0SPF Router LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Router LSA 報文,并判斷前后兩條Router LSA中的Link類型是否與DR相關(guān),分析自治 系統(tǒng)內(nèi)的拓?fù)渥兓?,?gòu)建、刪除或更新全局DR映射表中包含該DR的網(wǎng)段信息, 轉(zhuǎn)步驟S14;步驟S14,根據(jù)分析結(jié)果更新域內(nèi)拓?fù)湫畔ⅲD(zhuǎn)步驟Sll。 進(jìn)一步地,在所述步驟S14中,所述更新域內(nèi)拓?fù)湫畔ń⒒騽h除 路由器之間的連接關(guān)系、路由器和子網(wǎng)之間的連接關(guān)系;其中,在建立路由器 之間的連接關(guān)系時,檢査與新建立的單向連接關(guān)系相對應(yīng)的反向連接關(guān)系是否 已經(jīng)建立,如果己經(jīng)建立,則建立路由器之間的連接關(guān)系,否則暫不建立路由 器之間的連接關(guān)系。進(jìn)一歩地,所述DR的網(wǎng)段信息包括含有如下內(nèi)容的數(shù)據(jù)結(jié)構(gòu)普通路由 器列表、DR網(wǎng)段的IP地址、DR的IP地址、DR的連接路由器列表。進(jìn)一歩地,所述步驟Sll中,還包括區(qū)分收到的0SPF更新報文是0SPF LSA 報文、還是路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中OSPF路由器之間的鄰居關(guān)系建立 或者丟失的應(yīng)用層控制報文;如果判斷結(jié)果是所述鄰居關(guān)系丟失的應(yīng)用層控制 報文,則去除該路由器與其他路由器、子網(wǎng)的連接關(guān)系,轉(zhuǎn)步驟S14。進(jìn)一歩地,所述步驟S12具體包括如下步驟步驟S1201,如果該Network LSA的年齡超過最大年齡或該Network LSA 與當(dāng)前RouterID之前發(fā)送的最近一條Network LSA相同,則轉(zhuǎn)步驟S11;否 則轉(zhuǎn)歩驟S1202;步驟S1202,判斷全局的DR映射表中相應(yīng)區(qū)域是否包含DR的網(wǎng)段信息, 若否,則構(gòu)建該Network LSA所包含DR的網(wǎng)段信息,并以區(qū)域號和接口信息 為索引,加入到全局DR映射表中,轉(zhuǎn)步驟S1204;若是,則轉(zhuǎn)步驟S1203;步驟S1203,判斷DR網(wǎng)段信息中DR網(wǎng)段的IP字段是否為空,如果是為 空,則填寫DR網(wǎng)段信息中的DR的IP地址字段,遍歷DR網(wǎng)段信息中普通路由 器列表,建立該列表中的路由器指向DR的IP地址的單邊鏈路關(guān)系,轉(zhuǎn)步驟 S1204;如果不為空,則轉(zhuǎn)步驟S1204;步驟S1204,更新DR網(wǎng)段信息中的DR的IP地址字段和DR網(wǎng)段的IP地 址,比較當(dāng)前DR網(wǎng)段信息與原有DR網(wǎng)段信息的連接路由器列表,去除不再存 在的雙向鏈路關(guān)系,增加新增路由器與當(dāng)前RouterID的單向鏈路關(guān)系,并建 立新增路由器與DR網(wǎng)段的連接關(guān)系;將當(dāng)前Network LSA中附著的路由器填 寫至DR網(wǎng)段信息中的DR連接路由器列表中,轉(zhuǎn)步驟S11 。進(jìn)一步地,所述步驟S13具體包括步驟S1301,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷前一 條Router LSA中是否含有當(dāng)前Router LSA中不存在的接口 ,如果是含有當(dāng)前 Router LSA中不存在的接口,則表示這些接口不再可用,再判斷該接口信息 是否與DR相關(guān),根據(jù)判斷結(jié)果,修改拓?fù)鋱D中的連接關(guān)系,轉(zhuǎn)步驟S1302;歩驟S1302,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷當(dāng)前 Router LSA中是否含有前一條Router LSA中不存在的接口,如果是含有前一 條Router LSA中不存在的接口,則表示這些接口新啟動,轉(zhuǎn)步驟S1304;否 則轉(zhuǎn)步驟S1303;步驟S1303,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷當(dāng)前Router LSA中與前一條Router LSA中重疊的接口部分的連接信息是否相同, 如果所述連接信息不相同,則表示這些接口的連接信息改變了,再判斷前一條 Router LSA中包含的不相同的連接信息是否與DR相關(guān),如果是與DR相關(guān), 則判斷全局DR映射表中是否含有所述不相同的連接信息所在區(qū)域DR的網(wǎng)段信 息,如果是,則轉(zhuǎn)步驟1305,如果否,則轉(zhuǎn)步驟S1304;如果所述前一條Router LSA中包含的不相同的連接信息與DR不相關(guān),則處理路由器接口上與DR不相 關(guān)的連接關(guān)系,并轉(zhuǎn)步驟S1304;步驟S1304,判斷當(dāng)前Router LSA中包含的前一條Router LSA中不存在 的連接信息是否與DR相關(guān),如果是與DR相關(guān),則構(gòu)建或更新全局DR映射表 中該接口信息所在區(qū)域的DR網(wǎng)段信息,修改拓?fù)鋱D中的連接關(guān)系,轉(zhuǎn)步驟Sll; 如果不與DR相關(guān),則處理路由器接口上與DR不相關(guān)的連接關(guān)系;轉(zhuǎn)步驟Sll;步驟1305,判斷前一條Router LSA中所述不相同的連接信息是否表示當(dāng) 前路由器為DR,根據(jù)判斷結(jié)果,處理DR網(wǎng)段信息,轉(zhuǎn)步驟S1304。進(jìn)一步地,所述步驟S1301具體包括如下步驟歩驟S1301a,判斷當(dāng)前Router LSA的年齡是否超過最大年齡,如果超過, 則表示為撤銷報文,不予處理,轉(zhuǎn)歩驟S11;否則,則取該Router LSA的link 信息,設(shè)為newlinklist,并取上一次的RouterID發(fā)出的Router LSA,取其 link信息,設(shè)為oldlinklist,轉(zhuǎn)步驟S1301b;歩驟S1301b,判斷oldlinklist中的link信息是否處理完,如果是,則 轉(zhuǎn)歩驟S1302;如果否,取中間一條link信息,設(shè)為oldlinkinf,轉(zhuǎn)步驟 S1301c;步驟S1301c,判斷oldlinkinf的接口是否與newlinklist中的link信 息的接口相同,如果相同,則表示該接口仍然可用,則轉(zhuǎn)步驟S1301g,否則, 則表示這個接口不再可用,轉(zhuǎn)步驟S1301d;步驟S1301d,判斷oldlinkinf的類型是否為2,如果不是,則表示該link 信息不與DR相關(guān),刪除路由器接口上與DR不相關(guān)的連接關(guān)系,并且轉(zhuǎn)步驟 S1301g,否則,則表示該link信息是DR相關(guān)的link信息,轉(zhuǎn)步驟S1301e;步驟S1301e,判斷全局的DR映射表中是否含有oldlinkinf所在區(qū)域的 DR的網(wǎng)段信息,如果是,則表示之前收到過這個DR網(wǎng)段的link信息,將該 網(wǎng)段信息設(shè)為DRinf,轉(zhuǎn)歩驟S1301f;否則,表示該oldlinkinf所在區(qū)域的DR發(fā)生改變,或者是一個新的DR,并且第一次收到這個DR網(wǎng)段的link信息, 轉(zhuǎn)步驟S1301g;步驟S1301f,判斷oldlinkinf是否表示自己為DR,如果是,則表示DR 接口不再是有效,刪除該DR網(wǎng)段信息DRinf ,并刪除DRinf中包含的所有連 接關(guān)系,轉(zhuǎn)步驟S1301g;如果否,則表示該接口不再屬于該DR網(wǎng)段,刪除該 DR網(wǎng)段信息DRinf的普通路由器列表中RouterID的信息及連接關(guān)系,轉(zhuǎn)步驟 S薩g;步驟S1301g,標(biāo)記oldlinklist中該oldlinkinf的信息為處理過的,轉(zhuǎn) 步驟S1301b。進(jìn)一歩地,步驟S1302具體包括如下步驟步驟S1302a,判斷newlinklist中的link信息是否處理完,若是,則轉(zhuǎn) 步驟S11;否則,取中間一條link信息,設(shè)為newlinkinf ,轉(zhuǎn)步驟S1302b;步驟S1302b,判斷當(dāng)前Router LSA中的該條link信息畫linkinf的接 口是否與oldlinklist中的一條link信息的接口相同,若相同,則轉(zhuǎn)步驟 S簡,否則轉(zhuǎn)步驟S1304。進(jìn)一步地,所述步驟S1303具體包括如下步驟歩驟S1303a,判斷newlinkinf和oldlinkinf連接信息是否一致,如果 是一致,則轉(zhuǎn)步驟S1302a;否則,轉(zhuǎn)步驟S1303b;歩驟S1303b,判斷oldlinkinf類型是否為2,如果是,則表示該連接信 息是DR相關(guān)的link信息,轉(zhuǎn)步驟S1303c;如果否,表示該連接信息不與DR 相關(guān),則處理接口上與DR不相關(guān)的連接關(guān)系,并且轉(zhuǎn)步驟S1304;步驟S1303c,判斷全局的DR映射表中是否含有oldlinkinf所在區(qū)域的 DR的網(wǎng)段信息,如果是,則轉(zhuǎn)步驟S1305,如果否,則轉(zhuǎn)步驟S1304。進(jìn)一步地,所述步驟S1304,具體包括如下步驟步驟S1304a,判斷所述newlinkinf的type類型是否為2,如果否,則處 理接口上與DR不相關(guān)的連接關(guān)系,并且轉(zhuǎn)歩驟S1302a;如果是,轉(zhuǎn)步驟1304b;步驟S1304b,判斷全局的DR映射表中是否含有newlinkinf所在區(qū)域的 DR的網(wǎng)段信息,如果是,則將該網(wǎng)段信息設(shè)為DRinf,轉(zhuǎn)步驟S1304c;如果 否,則表示第一次收到新DR的報文信息,新構(gòu)建newlinkinf包含DR的網(wǎng)段 信息DRinf,并以區(qū)域號和接口信息為索引,加入到全局的DR映射表中,轉(zhuǎn)步驟SI304c;步驟S1304c,判斷newlinkinf是否表示自己為DR,如果否,則將RouterlD 填寫到網(wǎng)段信息DRinf的普通路由器列表中,轉(zhuǎn)步驟S1304e;如果是,轉(zhuǎn)步 驟S1304d;步驟S1304d,判斷DRinf中DR網(wǎng)段的IP字段是否為空,如果是,則表 示第一次收到這個DR的Router LSA,并且之前沒有收到該DR的Network LSA, 填寫DRinf中的DR的IP地址字段,遍歷DRinf中普通路由器列表,建立列表 中的路由器指向DRid的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1302a;如果否,則表示之前 收到過i亥DR的Network LSA,轉(zhuǎn)歩驟S1302a;歩驟S1304e,將RouterlD填寫到DRinf的普通路由器列表中,并判斷 DRinf中DR網(wǎng)段的IP字段是否為空,如果否,則建立RouterlD和DRinf中 DRid的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1302a;如果是,則轉(zhuǎn)步驟S1302a。進(jìn)一步地,所述歩驟S1305具體包括如下步驟步驟S1305a,判斷oldlinkinf是否表示自己為DR,如果是,則轉(zhuǎn)歩驟 S1305b,如果否,則轉(zhuǎn)步驟S1305c;步驟S1305b, oldlinkinf表示自己為DR,則表示原來的DR變?yōu)槠胀?由器,刪除DR相應(yīng)的網(wǎng)段信息DRinf,并刪除DRinf中包含的所有連接關(guān)系; 轉(zhuǎn)步驟S1304;步驟S1305c, oldlinkinf表示自己不是為DR,則表示原來與DR相連的 接口連接關(guān)系改變,刪除網(wǎng)段信息DRinf的普通路由器列表中RouterlD的信 息及連接關(guān)系;轉(zhuǎn)步驟1304。進(jìn)一步地,在所述步驟S1303和步驟S1304中所述處理接口上與DR不相 關(guān)的連接關(guān)系,包括如下步驟步驟S2001,判斷Router LSA中的Link信息的type類型是否為3,如果 是,則轉(zhuǎn)步驟S2002;如果否,則轉(zhuǎn)步驟S2003;步驟S2002,更新當(dāng)前路由器與stub子網(wǎng)的連接關(guān)系,結(jié)束;步驟S2003,更新當(dāng)前路由器與Link信息中的路由器之間的單邊連接關(guān)系7 結(jié)束o本發(fā)明的有益效果是本發(fā)明的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)及方法,通過路由探針 與網(wǎng)絡(luò)中區(qū)域內(nèi)的普通路由器建立會話,通過被動式的網(wǎng)絡(luò)測量方式,在不加重網(wǎng)絡(luò)負(fù)載的情況下,實時地采集到OSPF更新報文,然后再分析處理采集到 的OSPF更新報文,以O(shè)SPF LSA作為分析的單位,將路由器之間的連接關(guān)系、 路由器與子網(wǎng)之間的連接關(guān)系整合為全面的實時域內(nèi)拓?fù)浣Y(jié)構(gòu)。這種全面性主 要體現(xiàn)在以下兩點第一,可以使任何時刻網(wǎng)絡(luò)中的路由器之間的連接關(guān)系、路由器和子網(wǎng)之間的連接關(guān)系全面體現(xiàn);第二,連接關(guān)系能夠根據(jù)實際網(wǎng)絡(luò)的連接情況實時更新,保證了與實際網(wǎng)絡(luò)拓?fù)涞囊恢滦?。本發(fā)明為每個DR網(wǎng)段維護(hù)一個數(shù)據(jù)結(jié)構(gòu),即DR網(wǎng)段信息,并建立全局 DR映射表來統(tǒng)一組織DR網(wǎng)段信息,并且根據(jù)這個網(wǎng)段信息結(jié)構(gòu),采取前溯分 析的方式更新域內(nèi)拓?fù)?。在采集到?SPF更新報文不全或亂序的時候,避免 網(wǎng)絡(luò)中的拓?fù)溥B接信息出錯。
圖1是本發(fā)明的"前溯分析"方法處理路由器級實時域內(nèi)拓?fù)涞牧鞒虉D;圖2是本發(fā)明的處理Network LSA的流程圖; 圖3是本發(fā)明的處理Router LSA的流程圖;圖4是本發(fā)明的處理路由器與stub子網(wǎng)的連接關(guān)系、P2P類型的連接關(guān) 系、虛鏈路類型連接關(guān)系的處理流程圖;圖5是本發(fā)明的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)結(jié)構(gòu)示意圖。
具體實施方式
為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實 施例,對本發(fā)明的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)及方法進(jìn)一步詳細(xì) 說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限 定本發(fā)明。如圖5所示,本發(fā)明的自治系統(tǒng)l內(nèi)的DR相關(guān)的實時網(wǎng)絡(luò)路由拓?fù)涮幚?系統(tǒng),其包括路由信息采集探針5和前溯分析單元2,其中所述路由信息采集探針5,用于通過物理上部署到自治系統(tǒng)l(AS)的OSPF 區(qū)域(Area),并通過隧道連通到網(wǎng)絡(luò)中,與網(wǎng)絡(luò)中每個OSPF區(qū)域的運行OSPF 路由協(xié)議的路由器6建立鄰接關(guān)系,實時被動地采集在該OSPF區(qū)域泛洪 (flooding)的鏈路狀態(tài)廣播(OSPF LSA)報文,并將采集到的鏈路狀態(tài)廣播報 文發(fā)送給前溯分析單元2。所述前溯分析單元2,用于根據(jù)接收到的路由信息采集探針5采集的OSPF 鏈路狀態(tài)廣播(LSA)報文,解析報文內(nèi)容,分析與DR相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓?構(gòu)建、刪除或更新全局DR映射表中相應(yīng)區(qū)域包含的DR網(wǎng)段信息,并更新自治 系統(tǒng)l內(nèi)的拓?fù)鋱D。較佳地,所述前溯分析單元2,包括Network LSA處理模塊21和Router LSA 處理模塊22,其中Network LSA處理模塊21,用于根據(jù)接收到的路由信息采集探針5采集的 OSPF Network LSA報文,解析報文內(nèi)容,通過比較前后兩條Network LSA報 文,分析自治系統(tǒng)l內(nèi)與DR相關(guān)的拓?fù)涞淖兓?,?gòu)建或更新全局DR映射表中 包含該DR的網(wǎng)段信息,并更新拓?fù)鋱D。Router LSA處理模塊22,用于根據(jù)接收到的路由信息采集探針5采集的 OSPF Router LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Router LSA報文,并判斷前后兩條Router LSA中的Link類型是否與DR相關(guān),分析 自治系統(tǒng)1內(nèi)的拓?fù)渥兓?,?gòu)建、刪除或更新全局DR映射表中包含該DR的網(wǎng) 段信息,并更新拓?fù)鋱D。采用比較路由器的前后兩條LSA報文的方法處理拓?fù)潢P(guān)系,在本發(fā)明中稱 其為"前溯分析"方法。所述DR網(wǎng)段信息包括含有如下內(nèi)容的數(shù)據(jù)結(jié)構(gòu)普通路由器列表、DR網(wǎng) 段的IP地址、DR的IP地址(DRid) 、 DR的路由器列表。路由信息采集探針5需要模擬實現(xiàn)完整的開放最短路徑優(yōu)先路由協(xié)議 (OSPF協(xié)議),能夠運行開放最短路徑優(yōu)先路由協(xié)議的狀態(tài)機,能夠與真實 路由器6建立OSPF會話并交換OSPF路由更新報文,這個可以通過現(xiàn)有的開源 路由軟件GNU Zebra來實現(xiàn)。通過開源路由軟件GNU Zebra實現(xiàn)路由信息采集探針5是一種現(xiàn)有技術(shù), 本領(lǐng)域技術(shù)人員根據(jù)本發(fā)明實施例描述的內(nèi)容,能夠?qū)崿F(xiàn)該路由信息采集探 針,因此,在本發(fā)明實施例中,不再一一詳細(xì)描述。為了實現(xiàn)本發(fā)明的路由信息采集探針被動采集的目的,即路由信息采集探 針與真實路由器建立起OSPF會話之后,只是被動地接受對方發(fā)送過來的OSPF 更新報文,因此,本發(fā)明的路由信息采集探針5,除了按照OSPF協(xié)議規(guī)范, 為了維持與對方路由器的鄰居關(guān)系而發(fā)送的周期性Ke印Alive報文外,不向 網(wǎng)絡(luò)中注入其他任何報文,從而不影響網(wǎng)絡(luò)現(xiàn)有的路由狀況,從而達(dá)到被動采 集的目的。此外,當(dāng)路由采集探針與路由器的OSPF協(xié)議關(guān)系丟失的或者建立 的時候,路由采集探針會向上層的分析程序發(fā)送鄰居丟失(Neighbor Lost)或 者鄰居建立(Neighbor Gain)的自定義控制消息以便上層分析程序做相應(yīng)的處 理。網(wǎng)絡(luò)采集設(shè)備通過遂道的方式參與到多個自治系統(tǒng)1的OSPF協(xié)議交互中, 獲取各OSPF區(qū)域的鏈路狀態(tài)數(shù)據(jù)庫信息。路由信息采集探針5通過物理部署 到自治系統(tǒng)1 (AS)的每個運行開放最短路徑優(yōu)先路由協(xié)議(OSPF)區(qū)域(Area) 中的方式,或者僅物理部署到一自治系統(tǒng)1 (AS)的一OSPF區(qū)域(Area)中, 通過隧道(tunnel,例如GRE)連通到網(wǎng)絡(luò)中其他OSPF區(qū)域中的方式,來與 網(wǎng)絡(luò)中每個特定OSPF區(qū)域(Area)的任何一臺運行OSPF路由協(xié)議的路由器6 建立鄰接(Adjacency)關(guān)系,實時被動地采集在該OSPF區(qū)域(Area)泛洪的 鏈路狀態(tài)廣播(LSA)報文。對于實時采集到的鏈路狀態(tài)宣告(LSA)報文,為每個路由器6維護(hù)一個 OSPF報文列表,分區(qū)域記錄該路由器6產(chǎn)生的最新OSPF Router LSA和OSPF Network LSA。較佳地,為了實現(xiàn)路由信息采集探針5與前溯分析單元2有效結(jié)合的目的, 所述自治系統(tǒng)l內(nèi)的拓?fù)涮幚硐到y(tǒng)還包括報文區(qū)分模塊4,用于區(qū)分路由信息 采集探針5與前溯分析單元2傳輸?shù)膱笪念愋?。所述報文類型一類是路由信?采集探針5通過與網(wǎng)絡(luò)中的OSPF路由器6建立鄰居關(guān)系而得到的路由更新報 文;另一類是路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中OSPF路由器6之間的鄰居關(guān)系 建立或者丟失的應(yīng)用層控制報文。較佳地,所述前溯分析單元2,還用于收到路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò) 中0SPF路由器6之間的鄰居關(guān)系丟失的應(yīng)用層控制報文時,去除該路由器與 其他路由器、子網(wǎng)的連接關(guān)系,更新拓?fù)鋱D。當(dāng)收到路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中0SPF路由器6之間的鄰居關(guān)系建立的應(yīng)用層控制報文時,則不動作,繼續(xù)接收下一報文。更佳地,所述自治系統(tǒng)內(nèi)的拓?fù)涮幚硐到y(tǒng)還進(jìn)一步包括配置模塊3,用于 對路由信息采集探針5覆蓋范圍內(nèi)的路由器6進(jìn)行OSPF配置,使路由信息采 集探針5與自治系統(tǒng)1內(nèi)建立隧道的路由器6建立起0SPF全鄰接關(guān)系,采集 到各區(qū)域內(nèi)的報文信息。對路由信息采集探針5覆蓋范圍內(nèi)的路由器6進(jìn)行正確OSPF配置。在路 由信息采集探針5覆蓋范圍內(nèi)的路由器6進(jìn)行的正確信息交互的前提下,保證 采集器能收到全面的OSPF信息。需要在自治系統(tǒng)l內(nèi)進(jìn)行OSPF配置,使采集 探針與自治系統(tǒng)l內(nèi)建立隧道(tunnel)的路由器6建立起OSPF全鄰接關(guān)系, 采集到區(qū)域內(nèi)各路由器6的報文信息。作為一種可實施方式,所述在自治系統(tǒng)1進(jìn)行0SPF配置,可以實現(xiàn)如下若采集探針與被監(jiān)測路由器6屬于同一區(qū)域,用network命令將采集器的 某個接口加入到該區(qū)域;使采集探針與區(qū)域內(nèi)的路由器6建立起OSPF全鄰接 關(guān)系,采集到區(qū)域內(nèi)各路由器6的報文信息。若采集探針與被監(jiān)測路由器6屬于不同區(qū)域,先在探針上建立隧道 (tunnel),再用network命令將該隧道加入到被監(jiān)測區(qū)域,使采集探針與區(qū) 域內(nèi)的路由器6建立起0SPF全鄰接關(guān)系,采集到區(qū)域內(nèi)各路由器6的報文信 息。為了實現(xiàn)發(fā)明目的,本發(fā)明還提供一種自治系統(tǒng)內(nèi)的DR相關(guān)的實時網(wǎng)絡(luò) 路由拓?fù)涮幚矸椒?,這種方法使路由信息采集探針與網(wǎng)絡(luò)中的0SPF中每個區(qū) 域中路由器建立會話,通過被動式的網(wǎng)絡(luò)測量方式,可以在不加重網(wǎng)絡(luò)負(fù)載的 情況下,實時地采集到OSPF路由更新消息,然后基于"前溯分析"的方法給 出網(wǎng)絡(luò)中OSPF域內(nèi)DR相關(guān)路由拓?fù)鋵崟r動態(tài)的連接關(guān)系。因此,本發(fā)明的方 法包括兩個階段一.OSPF路由更新信息采集階段。路由信息采集探針通過對0SPF協(xié)議的模擬,可以與網(wǎng)絡(luò)中的0SPF路由器建立鄰居關(guān)系,同時通過使路由信息采集探針不發(fā)送任何路由更新報文,可以讓路由信息采集探針實時被動的采集到網(wǎng)絡(luò)中的0SPF路由更新報文(OSPF Update) 。 0SPFLSA報文類型主要分為5種類型,在本發(fā)明的"前溯分析"算 法中主要用到的是種類一 (Router LSA)和種類二 (network LSA)的報文。 此外,當(dāng)路由釆集探針與OSPF路由器的鄰居關(guān)系丟失的或者建立的時候,路 由采集探針會向上層的分析程序發(fā)送鄰居丟失(Neighbor Lost)或者鄰居建立 (Neighbor Gain)的自定義控制消息以便上層分析程序做相應(yīng)的處理,以保證 網(wǎng)絡(luò)拓?fù)涞膶崟r性。二.路由器級域內(nèi)OSPF網(wǎng)絡(luò)路由拓?fù)?前溯分析"的階段。 本階段通過接受0SPF路由更新信息采集階段所采集到的0SPF路由更新報 文,進(jìn)行自治系統(tǒng)級網(wǎng)絡(luò)拓?fù)涞?前溯分析",可以實時地給出域內(nèi)OSPF的網(wǎng) 絡(luò)路由拓?fù)溥B接性,并將這種連接性具體到自治系統(tǒng)內(nèi)的路由器之間、路由器 和子網(wǎng)之間。為了分析域內(nèi)的路由器之間的連接關(guān)系,且根據(jù)OSPF協(xié)議的定義,路由 器之間需要建立雙向的鏈路關(guān)系。只當(dāng)路由器建立了雙向鏈路的時候,才建立 路由器之間的拓?fù)溥B接關(guān)系。在P2P網(wǎng)絡(luò)或者是虛電路類型的網(wǎng)絡(luò)中,則當(dāng)路 由器雙方都發(fā)送了包含對方ID的Router LSA的link信息時才建立路由器之 間的拓?fù)溥B接關(guān)系,當(dāng)收到年齡為最大年齡3600的撤銷LSA的信息時,則清 除雙向鏈路關(guān)系。而在廣播網(wǎng)或者NAMB網(wǎng)絡(luò)中,則需要DR發(fā)送了相應(yīng)的 Router LSA宣告自己、Network LSA宣告DR網(wǎng)段信息,并且普通路由器宣告 了包含DR的Router LSA的link信息后,兩者匹配無誤才能建立雙向的鏈路 關(guān)系。但是由于現(xiàn)有技術(shù)中普通路由器宣告包含DR的Router LSA的link信 息中只包含了DR的接口信息,不能直接建立鏈路關(guān)系,所以本發(fā)明中為每一 個DR網(wǎng)段維護(hù)了一個數(shù)據(jù)結(jié)構(gòu),以DR所在區(qū)域號和DR接口信息作為索引。 這個數(shù)據(jù)結(jié)構(gòu)包含了普通路由器列表、DR網(wǎng)段的IP地址、DR的IP地址(DRid)、 DR的連接路由器列表。只有普通路由器列表和DR的路由器列表的交集部分的 普通路由器才會與DR建立雙向的鏈路關(guān)系。為了分析域內(nèi)的路由器與子網(wǎng)之間的拓?fù)溥B接關(guān)系,需要對兩種類型的報 文進(jìn)行處理。對于stub子網(wǎng)與路由器之間的拓?fù)溥B接關(guān)系,則只當(dāng)收到包含 這個子網(wǎng)信息的link信息type類型為3的Router LSA時建立,即建立該stub子網(wǎng)與宣告這條Router LSA的路由器之間建立連接關(guān)系;而DR子網(wǎng)與路由 器之間的拓?fù)溥B接關(guān)系,則當(dāng)收到DR的Network LSA的時候建立。這個拓?fù)?連接關(guān)系包括普通路由器和DR之間的協(xié)議邏輯連接關(guān)系,路由器和DR子網(wǎng) 網(wǎng)段的連接關(guān)系。具體來說,本發(fā)明的自治系統(tǒng)內(nèi)的DR相關(guān)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒?包括步驟Sl',將路由信息采集探針通過物理上部署到自治系統(tǒng)的OSPF區(qū)域 中,實時被動地采集在該OSPF區(qū)域泛洪的更新報文,并傳輸給前溯分析單元;步驟SI,前溯分析單元根據(jù)接收到的路由信息采集探針5采集的OSPF更 新報文,解析報文內(nèi)容,分析與DR相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓瑯?gòu)建、刪除或更新 全局DR映射表中相應(yīng)區(qū)域包含的DR網(wǎng)段信息,并更新自治系統(tǒng)1內(nèi)的拓?fù)鋱D。較佳地,所述步驟Sl'中,還包括路由信息采集探針從每個收到的OSPF 更新報文中提取出每個LSA,增添該報文所來自的OSPF路由器IP地址 (advertising router)、該路由器所屬的自治系統(tǒng)號(AS)字段,以及OSPF報文頭部的相應(yīng)字段。較佳地,如圖1所示,所述步驟S1具體包括,其中步驟Sll,前溯分析單元接收OSPF更新報文,判斷OSPF LSA類型,如果 OSPF LSA類型為Network LSA,則轉(zhuǎn)步驟S12;如果OSPF LSA類型為Router LSA, 則轉(zhuǎn)歩驟S13;步驟S12,前溯分析單元根據(jù)接收到的路由信息采集探針5采集的OSPF Network LSA報文,解析報文內(nèi)容,通過比較前后兩條Network LSA報文,分 析自治系統(tǒng)1內(nèi)與DR相關(guān)的拓?fù)涞淖兓瑯?gòu)建或更新全局DR映射表中包含該 DR的網(wǎng)段信息,轉(zhuǎn)步驟S14。步驟S13,前溯分析單元根據(jù)接收到的路由信息采集探針5采集的OSPF Router LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Router LSA 報文,并判斷前后兩條Router LSA中的Link類型是否與DR相關(guān),分析自治 系統(tǒng)1內(nèi)的拓?fù)渥兓?,?gòu)建、刪除或更新全局DR映射表中包含該DR的網(wǎng)段信 息,轉(zhuǎn)步驟S14。步驟S14,根據(jù)分析結(jié)果更新域內(nèi)拓?fù)湫畔?,轉(zhuǎn)步驟Sll。較佳地,所述更新域內(nèi)拓?fù)湫畔ń⒒騽h除路由器之間的連接關(guān)系、 路由器和子網(wǎng)之間的連接關(guān)系;其中,在建立路由器之間的連接關(guān)系時,要檢 查與新建立的單向連接關(guān)系相對應(yīng)的反向連接關(guān)系是否已經(jīng)建立,如果已經(jīng)建 立,則建立路由器之間的連接關(guān)系,否則暫不建立路由器之間的連接關(guān)系。所述DR的網(wǎng)段信息包括含有如下內(nèi)容的數(shù)據(jù)結(jié)構(gòu)普通路由器列表、DR網(wǎng)段的IP地址、DR的IP地址(DRid)、 DR的連接路由器列表。較佳地,所述步驟S11中,還包括區(qū)分收到的OSPF更新報文是OSPF LSA報文、還是路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中0SPF路由器6之間的鄰居關(guān)系建立或者丟失的應(yīng)用層控制報文;如果判斷結(jié)果是所述鄰居關(guān)系丟失的應(yīng)用層控制報文,則轉(zhuǎn)步驟S15;步驟S15,前溯分析單元收到路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中0SPF路由器6之間的鄰居關(guān)系丟失的應(yīng)用層控制報文時,去除該路由器與其他路由器、子網(wǎng)的連接關(guān)系,轉(zhuǎn)步驟S14。下面進(jìn)一步詳細(xì)描述步驟S12,如圖2所示,步驟S12具體包括 步驟S1201 ,如果該Network LSA的年齡超過最大年齡MAXAGE或該Network LSA與當(dāng)前RouterID (發(fā)送這條Router LSA的路由器ID,即IP地址)之前 發(fā)送的最近一條Network LSA相同,則轉(zhuǎn)步驟S11;否則轉(zhuǎn)歩驟S1202;步驟S1202,判斷全局的DR映射表中相應(yīng)區(qū)域是否包含DR的網(wǎng)段信息 DRinf ,若否,則構(gòu)建該Network LSA所包含DR的網(wǎng)段信息DRinf ,并以區(qū)域 號和接口信息為索引,加入到全局DR映射表中,轉(zhuǎn)步驟S1204;若是,則轉(zhuǎn) 步驟S1203;步驟S1203,判斷DR網(wǎng)段信息DRinf中DR網(wǎng)段的IP字段是否為空,如 果是為空,則填寫DR網(wǎng)段信息DRinf中的DR的IP地址(DRid)字段,遍歷 DR網(wǎng)段信息DRinf中普通路由器列表,建立該列表中的路由器指向DR的IP 地址的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1204);如果不為空,則轉(zhuǎn)步驟S1204;步驟S1204,更新DR網(wǎng)段信息DRinf中的DR的IP地址(DRid)字段和 DR網(wǎng)段的IP地址,比較當(dāng)前DR網(wǎng)段信息與原有DR網(wǎng)段信息的連接路由器列 表,去除不再存在的雙向鏈路關(guān)系,增加新增路由器與當(dāng)前RouterID的單向 鏈路關(guān)系,并建立新增路由器與DR網(wǎng)段的連接關(guān)系;將當(dāng)前Network LSA中附著的路由器填寫至DR網(wǎng)段信息DRinf中的DR連接路由器列表中,轉(zhuǎn)步驟 Sll。下面進(jìn)一歩詳細(xì)描述歩驟S13,步驟S13具體包括步驟S1301,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷前一 條Router LSA中是否含有當(dāng)前Router LSA中不存在的接口 ,如果是含有當(dāng)前 Router LSA中不存在的接口,則表示這些接口不再可用,再判斷該接口信息 是否與DR相關(guān),根據(jù)判斷結(jié)果,修改拓?fù)鋱D中的連接關(guān)系,轉(zhuǎn)步驟S1302;步驟S1302,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷當(dāng)前 Router LSA中是否含有前一條Router LSA中不存在的接口,如果是含有前一 條Router LSA中不存在的接口,則表示這些接口新啟動,轉(zhuǎn)步驟S1304;否 則轉(zhuǎn)步驟S1303;步驟S1303,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷當(dāng)前 Router LSA中與前一條Router LSA中重疊的接口部分的連接信息是否相同, 如果所述連接信息不相同,則表示這些接口的連接信息改變了,再判斷前一條 Router LSA中包含的不相同的連接信息是否與DR相關(guān),如果是與DR相關(guān), 則判斷全局DR影射表中是否含有所述不相同的連接信息所在區(qū)域DR的網(wǎng)段信 息,如果是,則轉(zhuǎn)歩驟1305,如果否,則轉(zhuǎn)步驟S1304;如果所述前一條Router LSA中包含的不相同的連接信息不與DR相關(guān),則處理路由器接口上與DR不相 關(guān)的連接關(guān)系,并轉(zhuǎn)步驟S1304;所述與DR不相關(guān)的連接關(guān)系包括與stub子 網(wǎng)的連接關(guān)系、P2P (Peer-to-Peer)類型的連接關(guān)系或虛鏈路類型連接關(guān)系;步驟S1304,判斷當(dāng)前Router LSA中包含的前一條Router LSA中不存在 的連接信息是否與DR相關(guān),如果是與DR相關(guān),則構(gòu)建或更新全局DR映射表 中該接口信息所在區(qū)域的DR網(wǎng)段信息,修改拓?fù)鋱D中的連接關(guān)系,轉(zhuǎn)步驟Sll; 如果不與DR相關(guān),則處理路由器接口上與DR不相關(guān)的連接關(guān)系;轉(zhuǎn)步驟Sll;步驟1305,判斷前一條Router LSA中所述不相同的連接信息是否表示當(dāng) 前路由器為DR,根據(jù)判斷結(jié)果,處理DR網(wǎng)段信息,轉(zhuǎn)步驟S1304。較佳地,如圖3所示,所述步驟S1301具體包括如下步驟 步驟S1301a,判斷當(dāng)前Router LSA的年齡是否超過最大年齡MAXAGE,如果超過,則表示為撤銷報文,不予處理,轉(zhuǎn)步驟S11;否貝lj,則取該Router LSA 的link信息,設(shè)為newlinklist,并取上一次的RouterID發(fā)出的Router LSA, 取其link信息,設(shè)為oldlinklist,轉(zhuǎn)步驟S1301b;歩驟S1301b,判斷oldlinklist中的link信息是否處理完,如果是,則 轉(zhuǎn)步驟S1302;如果否,取中間一條link信息,設(shè)為oldlinkinf,轉(zhuǎn)步驟 S1301c;步驟S1301c,判斷oldlinkinf的接口是否與newlinklist中的link信 息的接口相同,如果相同,則表示該接口仍然可用,則轉(zhuǎn)步驟S1301g,否則, 則表示這個接口不再可用,轉(zhuǎn)歩驟S1301d;步驟S1301d,判斷oldlinkinf的類型是否為2,如果不是,則表示該link 信息不與DR相關(guān),刪除路由器接口上與DR不相關(guān)的連接關(guān)系,并且轉(zhuǎn)步驟 S1301g,否則,則表示該link信息是DR相關(guān)的link信息,轉(zhuǎn)步驟S1301e;步驟S1301e,判斷全局的DR映射表中是否含有oldlinkinf所在區(qū)域的 DR的網(wǎng)段信息,如果是,則表示之前收到過這個DR網(wǎng)段的link信息,將該 網(wǎng)段信息設(shè)為DRinf,轉(zhuǎn)歩驟S1301f;否則,表示該oldlinkinf所在區(qū)域的 DR發(fā)生改變,或者是一個新的DR信息,并且第一次收到這個DR網(wǎng)段的link 信息,轉(zhuǎn)步驟S1301g;步驟S1301f,判斷oldlinkinf是否表示自己為DR,如果是,則表示DR 接口不再是有效,刪除該DR網(wǎng)段信息DRinf,并刪除DRinf中包含的所有連 接關(guān)系,轉(zhuǎn)步驟S1301g;如果否,則表示該接口不再屬于該DR網(wǎng)段,刪除該 DR網(wǎng)段信息DRinf的普通路由器列表中RouterID的信息及連接關(guān)系,轉(zhuǎn)步驟 S1301g。步驟S1301g,標(biāo)記oldlinklist中該oldlinkinf的信息為處理過的,轉(zhuǎn) 步驟S1301b。較佳地,如圖3所示,步驟S1302具體包括如下歩驟步驟S1302a,判斷newlinklist中的link信息是否處理完,若是,則轉(zhuǎn)步驟S11;否則,取中間一條link信息,設(shè)為newlinkinf ,轉(zhuǎn)步驟S1302b; 步驟S1302b.判斷當(dāng)前Router LSA中的該條link信息newlinkinf的接口是否與oldlinklist中的一條link信息的接口相同,若相同,則轉(zhuǎn)步驟S1303,否則轉(zhuǎn)步驟S1304;較佳地,如圖3所示,所述歩驟S1303具體包括如下歩驟步驟S1303a,判斷newlinkinf和oldlinkinf連接信息是否一致,如果 是一致,則轉(zhuǎn)步驟S1302a;否則,轉(zhuǎn)步驟S1303b;步驟S1303b,判斷oldlinkinf類型是否為2,如果是,則表示該連接信 息是DR相關(guān)的link信息,轉(zhuǎn)步驟S1303c;如果否,表示該連接信息不與DR 相關(guān),則處理接口上與DR不相關(guān)的連接關(guān)系,并且轉(zhuǎn)歩驟S1304;步驟S1303c,判斷全局的DR映射表中是否含有oldlinkinf所在區(qū)域的 DR的網(wǎng)段信息,如果是,則轉(zhuǎn)步驟S1305,如果否,則轉(zhuǎn)步驟S1304。較佳地,如圖3所示,所述步驟S1304,具體包括如下步驟 步驟S1304a,判斷所述newlinkinf的type類型是否為2,如果否,則處 理接口上與DR不相關(guān)的連接關(guān)系,并且轉(zhuǎn)步驟S1302a;如果是,轉(zhuǎn)步驟1304b;步驟S1304b,判斷全局的DR映射表中是否含有newlinkinf所在區(qū)域的 DR的網(wǎng)段信息,如果是,則將該網(wǎng)段信息設(shè)為DRinf,轉(zhuǎn)步驟S1304c;如果 否,則表示第一次收到新DR的報文信息,新建立newlinkinf包含DR的網(wǎng)段 信息DRinf,并以區(qū)域號和接口信息為索引,加入到全局的DR映射表中,轉(zhuǎn) 歩驟S1304c;步驟S1304c,判斷newlinkinf是否表示自己為DR,如果否,則將RouterID 填寫到網(wǎng)段信息DRinf的普通路由器列表中,轉(zhuǎn)步驟S1304e;如果是,轉(zhuǎn)步 驟S1304d;步驟S1304d,判斷DRinf中DR網(wǎng)段的IP字段是否為空,如果是,則表 示第一次收到這個DR的Router LSA,并且之前沒有收到該DR的Network LSA, 填寫DRinf中的DR的IP地址(DRid)字段,遍歷DRinf中普通路由器列表, 建立列表中的路由器指向DRid的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1302a;如果否,則 表示之前收到過該DR的Network LSA,轉(zhuǎn)步驟S1302a;歩驟S1304e,將RouterID填寫到DRinf的普通路由器列表中,并判斷 DRinf中DR網(wǎng)段的IP字段是否為空,如果否,則建立RouterID和DRinf中 DRid的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1302a;如果是,則轉(zhuǎn)步驟S1302a。較佳地,如圖3所示,所述步驟S1305具體包括如下步驟歩驟S1305a,判斷oldlinkinf是否表示自己為DR,如果是,則轉(zhuǎn)步驟 S1305b,如果否,則轉(zhuǎn)步驟S1305c;步驟S1305b, oldlinkinf表示自己為DR,則表示原來的DR變?yōu)槠胀?由器,刪除DR相應(yīng)的網(wǎng)段信息DRinf,并刪除DRinf中包含的所有連接關(guān)系; 轉(zhuǎn)步驟S1304;步驟S1305c, oldlinkinf表示自己不是為DR,則表示原來與DR相連的 接口連接關(guān)系改變,刪除網(wǎng)段信息DRinf的普通路由器列表中RouterID的信 息及連接關(guān)系;轉(zhuǎn)步驟1304。進(jìn)一步地,在上述步驟S1303b和步驟S1304a中所述處理接口上與DR不 相關(guān)的連接關(guān)系,如圖4所示,包括如下步驟步驟S2001,判斷Link信息的type類型是否為3,如果是,則表明是路 由器與stub子網(wǎng)的連接關(guān)系,轉(zhuǎn)歩驟S2002;如果否,則表明是路由器的P2P 或者虛電路連接關(guān)系,轉(zhuǎn)步驟S2003;步驟S2002,更新當(dāng)前路由器與stub子網(wǎng)的連接關(guān)系,結(jié)束;步驟S2003,更新當(dāng)前路由器與Link信息中的路由器之間的單邊連接關(guān) 系,結(jié)束。上述步驟中,Newlinklist、 Newlinkinf是指在當(dāng)前Router LSA報文中, Oldlinklist、 Oldlinkinf是指在上一個Router LSA中,對當(dāng)前Router LSA 處理完后,在處理下一個Router LSA時,則當(dāng)前Router LSA相對于下一個 Router LSA即為所述的上一個Router LSA。本發(fā)明路由信息采集探針與網(wǎng)絡(luò)中的OSPF中每個區(qū)域中路由器建立會 話,通過被動式的網(wǎng)絡(luò)測量方式,可以在不加重網(wǎng)絡(luò)負(fù)載的情況下,實時地采 集到OSPF路由更新消息,然后基于"前溯分析"的方法給出網(wǎng)絡(luò)中OSPF域內(nèi) DR相關(guān)路由拓?fù)鋵崟r動態(tài)的連接關(guān)系。本發(fā)明的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)及方法,通過路由探針 與網(wǎng)絡(luò)中區(qū)域內(nèi)的普通路由器建立會話,通過被動式的網(wǎng)絡(luò)測量方式,在不加 重網(wǎng)絡(luò)負(fù)載的情況下,實時地采集到OSPF更新報文,然后再分析處理采集到的OSPF更新報文,以O(shè)SPF LSA作為分析的單位,將路由器之間的連接關(guān)系、路由器與子網(wǎng)之間的連接關(guān)系整合為全面的實時域內(nèi)拓?fù)浣Y(jié)構(gòu)。這種全面性主要體現(xiàn)在以下兩點第一,可以使任何時刻網(wǎng)絡(luò)中的路由器之間的連接關(guān)系、 路由器和子網(wǎng)之間的連接關(guān)系全面體現(xiàn);第二,連接關(guān)系能夠根據(jù)實際網(wǎng)絡(luò)的連接情況實時更新,保證了與實際網(wǎng)絡(luò)拓?fù)涞囊恢滦?。本發(fā)明為每個DR網(wǎng)段維護(hù)一個數(shù)據(jù)結(jié)構(gòu),即DR網(wǎng)段信息,并建立全局 DR映射表來統(tǒng)一組織DR網(wǎng)段信息,并且根據(jù)這個網(wǎng)段信息結(jié)構(gòu),采取前溯 分析的方式更新域內(nèi)拓?fù)?。在采集到的OSPF更新報文不全或亂序的時候,避 免網(wǎng)絡(luò)中的拓?fù)溥B接信息出錯。以上所述內(nèi)容,僅為本發(fā)明具體的實施方式,但本發(fā)明的保護(hù)范圍并不局 限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易 想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1. 一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其特征在于,包括前溯分析單元,用于根據(jù)接收到的路由信息采集探針采集的OSPF LSA報文,解析報文內(nèi)容,分析與指定路由器相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓幚碇付酚善饔成浔碇邢鄳?yīng)區(qū)域包含的指定路由器網(wǎng)段信息,并更新自治系統(tǒng)內(nèi)的拓?fù)鋱D。
2、 根據(jù)權(quán)利要求1所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其 特征在于,還包括路由信息采集探針,用于通過物理上部署到自治系統(tǒng)的0SPF 區(qū)域,并通過隧道連通到網(wǎng)絡(luò)中,與網(wǎng)絡(luò)中每個OSPF區(qū)域的運行OSPF路由協(xié) 議的路由器建立鄰接關(guān)系,實時被動地采集在該0SPF區(qū)域泛洪的OSPF LSA 報文,并發(fā)送給所述前溯分析單元。
3、 根據(jù)權(quán)利要求1或2所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng), 其特征在于,所述前溯分析單元包括Network LSA處理模塊和Router LSA處理模塊,其中所述Network LSA處理模塊,用于根據(jù)接收到的路由信息采集探針采集的 OSPF Network LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Network LSA報文,分析自治系統(tǒng)內(nèi)與指定路由器相關(guān)的拓?fù)涞淖兓瑯?gòu)建或更新全局 指定路由器映射表中包含該指定路由器的網(wǎng)段信息,并更新拓?fù)鋱D;所述Router LSA處理模塊,用于根據(jù)接收到的路由信息采集探針采集的 OSPF Router LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Router LSA報文,并判斷前后兩條Router LSA中的Link類型是否與指定路由器相關(guān), 分析自治系統(tǒng)內(nèi)的拓?fù)渥兓瑯?gòu)建、刪除或更新全局指定路由器映射表中包含 該指定路由器的網(wǎng)段信息,并更新拓?fù)鋱D。
4、 根據(jù)權(quán)利要求1所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其 特征在于,所述指定路由器的網(wǎng)段信息包括含有如下內(nèi)容的數(shù)據(jù)結(jié)構(gòu)普通路 由器列表、指定路由器網(wǎng)段的IP地址、指定路由器的IP地址、指定路由器的 連接路由器列表。
5、 根據(jù)權(quán)利要求2所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其 特征在于,所述路由信息采集探針與路由器的OSPF協(xié)議關(guān)系丟失或者建立的 時候,向所述前溯分析單元發(fā)送鄰居丟失或者鄰居建立的控制報文。
6、 根據(jù)權(quán)利要求5所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其 特征在于,還包括報文區(qū)分模塊,用于區(qū)分所述路由信息采集探針與前溯分析 單元傳輸?shù)膱笪念愋?,所述報文類型一類是路由信息采集探針通過與網(wǎng)絡(luò)中的 0SPF路由器建立鄰居關(guān)系而得到的路由更新報文;另一類是路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中0SPF路由器之間的鄰居關(guān)系建立或者丟失的控制報文。
7、 根據(jù)權(quán)利要求5或6所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng), 其特征在于,所述前溯分析單元,在收到路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中0SPF 路由器之間的鄰居關(guān)系丟失的控制報文時,去除該路由器與其他路由器、子網(wǎng) 的連接關(guān)系,更新拓?fù)鋱D。
8、 根據(jù)權(quán)利要求2所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng),其特征在于,還包括配置模塊,用于對所述路由信息采集探針覆蓋范圍內(nèi)的路由 器進(jìn)行0SPF配置,使路由信息采集探針與自治系統(tǒng)內(nèi)建立隧道的路由器建立 起OSPF全鄰接關(guān)系,采集到各區(qū)域內(nèi)的報文信息。
9、 一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒?,包括如下步驟歩驟Sl,前溯分析單元根據(jù)接收到的路由信息采集探針采集的0SPF更新 報文,解析報文內(nèi)容,分析與指定路由器相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓瑯?gòu)建、刪除或 更新全局DR映射表中相應(yīng)區(qū)域包含的指定路由器網(wǎng)段信息,并更新自治系統(tǒng) 內(nèi)的拓?fù)鋱D。
10、 根據(jù)權(quán)利要求9所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?特征是,在步驟S1之前還包括步驟S1,,將路由信息采集探針通過物理上部 署到自治系統(tǒng)的0SPF區(qū)域中,實時被動地采集在該0SPF區(qū)域泛洪的更新報文, 并傳輸給前溯分析單元。
11、 根據(jù)權(quán)利要求10所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒?,其特征是,在所述步驟sr中,還包括路由信息采集探針從每個收到的ospf更新報文中提取出每個lsa,增添該報文所來自的ospf路由器ip地址、該路 由器所屬的自治系統(tǒng)號字段,以及0SPF報文頭部的相應(yīng)字段。
12、 根據(jù)權(quán)利要求9所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?特征是,所述步驟S1具體包括如下步驟歩驟Sll,前溯分析單元接收OSPF更新報文,判斷OSPF LSA類型,如果 OSPF LSA類型為Network LSA,則轉(zhuǎn)步驟S12;如果OSPF LSA類型為Router LSA, 則轉(zhuǎn)步驟S13;步驟S12,前溯分析單元根據(jù)接收到的路由信息采集探針采集的OSPF Network LSA報文,解析報文內(nèi)容,通過比較前后兩條Network LSA報文,分 析自治系統(tǒng)內(nèi)與指定路由器相關(guān)的拓?fù)涞淖兓瑯?gòu)建或更新全局指定路由器映 射表中包含該指定路由器的網(wǎng)段信息,轉(zhuǎn)步驟S14;步驟S13,前溯分析單元根據(jù)接收到的路由信息采集探針采集的OSPF Router LSA報文,解析報文內(nèi)容,通過比較該路由器的前后兩條Router LSA 報文,并判斷前后兩條Router LSA中的Link類型是否與指定路由器相關(guān),分 析自治系統(tǒng)內(nèi)的拓?fù)渥兓?,?gòu)建、刪除或更新全局指定路由器映射表中包含該 指定路由器的網(wǎng)段信息,轉(zhuǎn)步驟S14;步驟S14,根據(jù)分析結(jié)果更新域內(nèi)拓?fù)湫畔?,轉(zhuǎn)步驟Sll。
13、 根據(jù)權(quán)利要求12所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,在所述步驟S14中,所述更新域內(nèi)拓?fù)湫畔ń⒒騽h除路由 器之間的連接關(guān)系、路由器和子網(wǎng)之間的連接關(guān)系;其中,在建立路由器之間 的連接關(guān)系時,檢査與新建立的單向連接關(guān)系相對應(yīng)的反向連接關(guān)系是否已經(jīng) 建立,如果已經(jīng)建立,則建立路由器之間的連接關(guān)系,否則暫不建立路由器之 間的連接關(guān)系。
14、 根據(jù)權(quán)利要求9所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ涮卣魇?,所述指定路由器的網(wǎng)段信息包括含有如下內(nèi)容的數(shù)據(jù)結(jié)構(gòu)普通路由器列表、指定路由器網(wǎng)段的IP地址、指定路由器的IP地址、指定路由器的連 接路由器列表。
15、 根據(jù)權(quán)利要求12所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,所述步驟Sll中,還包括區(qū)分收到的0SPF更新報文是OSPF LSA 報文、還是路由采集探針?biāo)l(fā)送的與網(wǎng)絡(luò)中OSPF路由器之間的鄰居關(guān)系建立 或者丟失的應(yīng)用層控制報文;如果判斷結(jié)果是所述鄰居關(guān)系丟失的應(yīng)用層控制 報文,則去除該路由器與其他路由器、子網(wǎng)的連接關(guān)系,轉(zhuǎn)步驟S14。
16、 根據(jù)權(quán)利要求12所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,所述步驟S12具體包括如下步驟步驟S1201,如果該Network LSA的年齡超過最大年齡或該Network LSA 與當(dāng)前RouterID之前發(fā)送的最近一條Network LSA相同,則轉(zhuǎn)歩驟Sll;否 則轉(zhuǎn)歩驟S1202;步驟S1202,判斷全局指定路由器映射表中相應(yīng)區(qū)域是否包含發(fā)出該 Network LSA的指定路由器的網(wǎng)段信息,若否,則構(gòu)建該Network LSA所包含 指定路由器的網(wǎng)段信息,并以區(qū)域號和接口信息為索引,加入到全局指定路由 器映射表中,轉(zhuǎn)步驟S1204;若是,則轉(zhuǎn)步驟S1203;步驟S1203,判斷指定路由器的網(wǎng)段信息中指定路由器網(wǎng)段的IP字段是 否為空,如果是為空,則填寫指定路由器的網(wǎng)段信息中的指定路由器的IP地 址字段,遍歷指定路由器的網(wǎng)段信息中普通路由器列表,建立該列表中的路由 器指向指定路由器的IP地址的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1204;如果不為空, 則轉(zhuǎn)步驟S1204;步驟S1204,更新指定路由器的網(wǎng)段信息中的指定路由器的IP地址字段 和指定路由器網(wǎng)段的IP地址,比較當(dāng)前指定路由器的網(wǎng)段信息與原有指定路 由器網(wǎng)段信息的連接路由器列表,去除不再存在的雙向鏈路關(guān)系,增加新增路 由器與當(dāng)前RouterID的單向鏈路關(guān)系,并建立新增路由器與指定路由器網(wǎng)段 的連接關(guān)系;將當(dāng)前Network LSA中附著的路由器填寫至指定路由器網(wǎng)段信息 中的指定路由器連接路由器列表中,轉(zhuǎn)步驟Sll。
17、根據(jù)權(quán)利要求12所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,所述步驟S13具體包括步驟S1301,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷前一 條Router LSA中是否含有當(dāng)前Router LSA中不存在的接口 ,如果是含有當(dāng)前 Router LSA中不存在的接口,則表示這些接口不再可用,再判斷該接口信息 是否與指定路由器相關(guān),根據(jù)判斷結(jié)果,修改拓?fù)鋱D中的連接關(guān)系,轉(zhuǎn)步驟 S1302;步驟S1302,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷當(dāng)前 Router LSA中是否含有前一條Router LSA中不存在的接口,如果是含有前一 條Router LSA中不存在的接口,則表示這些接口新啟動,轉(zhuǎn)步驟S1304;否 則轉(zhuǎn)步驟S1303;歩驟S1303,比較該路由器發(fā)送的前后兩條Router LSA報文,判斷當(dāng)前Router LSA中與前一條Router LSA中重疊的接口部分的連接信息是否相同, 如果所述連接信息不相同,則表示這些接口的連接信息改變了,再判斷前一條 Router LSA中包含的不相同的連接信息是否與指定路由器相關(guān),如果是與指 定路由器相關(guān),則判斷全局指定路由器映射表中是否含有所述不相同的連接信 息所在區(qū)域指定路由器的網(wǎng)段信息,如果是,則轉(zhuǎn)步驟1305,如果否,則轉(zhuǎn) 步驟S1304;如果所述前一條Router LSA中包含的不相同的連接信息與指定 路由器不相關(guān),則處理路由器接口上與指定路由器不相關(guān)的連接關(guān)系,并轉(zhuǎn)步 驟S1304;步驟S1304,判斷當(dāng)前Router LSA中包含的前一條Router LSA中不存在 的連接信息是否與指定路由器相關(guān),如果是與指定路由器相關(guān),則構(gòu)建或更新 全局指定路由器映射表中該接口信息所在區(qū)域的指定路由器網(wǎng)段信息,修改拓 撲圖中的連接關(guān)系,轉(zhuǎn)步驟S11;如果不與指定路由器相關(guān),則處理路由器接 口上與指定路由器不相關(guān)的連接關(guān)系;轉(zhuǎn)步驟Sll;步驟1305,判斷前一條Router LSA中所述不相同的連接信息是否表示當(dāng) 前路由器為指定路由器,根據(jù)判斷結(jié)果,處理指定路由器網(wǎng)段信息,轉(zhuǎn)步驟 S1304。
18、根據(jù)權(quán)利要求17所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,所述歩驟S1301具體包括如下步驟步驟S1301a,判斷當(dāng)前Router LSA的年齡是否超過最大年齡,如果超過, 則表示為撤銷報文,不予處理,轉(zhuǎn)步驟S11;否則,則取該Router LSA的link 信息,設(shè)為newlinklist,并取上一次的RouterID發(fā)出的Router LSA,取其 link信息,設(shè)為oldlinklist,轉(zhuǎn)歩驟S1301b;步驟S1301b,判斷oldlinklist中的link信息是否處理完,如果是,則 轉(zhuǎn)步驟S1302;如果否,取中間一條link信息,設(shè)為oldlinkinf,轉(zhuǎn)步驟 S讓c;步驟S1301c,判斷oldlinkinf的接口是否與newlinklist中的link信 息的接口相同,如果相同,則表示該接口仍然可用,則轉(zhuǎn)步驟S1301g,否則, 則表示這個接口不再可用,轉(zhuǎn)步驟S1301d;步驟S1301d,判斷oldlinkinf的類型是否為2,如果不是,則表示該link 信息不與指定路由器相關(guān),刪除路由器接口上與指定路由器不相關(guān)的連接關(guān)系,并且轉(zhuǎn)歩驟S1301g,否則,則表示該link信息是與指定路由器相關(guān)的link 信息,轉(zhuǎn)歩驟S1301e;步驟S1301e,判斷全局指定路由器映射表中是否含有oldlinkinf所在區(qū) 域的指定路由器的網(wǎng)段信息,如果是,則表示之前收到過這個指定路由器網(wǎng)段 的link信息,將該網(wǎng)段信息設(shè)為DRinf,轉(zhuǎn)歩驟S1301f;否則,表示該 oldlinkinf所在區(qū)域的指定路由器發(fā)生改變,或者是一個新的指定路由器, 并且第一次收到這個指定路由器網(wǎng)段的link信息,轉(zhuǎn)步驟S1301g;步驟S1301f,判斷oldlinkinf是否表示自己為指定路由器,如果是,則 表示指定路由器接口不再是有效,刪除該指定路由器的網(wǎng)段信息DRinf,并刪 除DRinf中包含的所有連接關(guān)系,轉(zhuǎn)步驟S1301g;如果否,則表示該接口不 再屬于該指定路由器網(wǎng)段,刪除該指定路由器的網(wǎng)段信息DRinf的普通路由器 列表中RouterID的信息及連接關(guān)系,轉(zhuǎn)步驟S1301g;步驟S1301g,標(biāo)記oldlinklist中該oldlinkinf的信息為處理過的,轉(zhuǎn) 步驟S1301b。
19、 根據(jù)權(quán)利要求17所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,步驟S1302具體包括如下步驟步驟S1302a,判斷newlinklist中的link信息是否處理完,若是,則轉(zhuǎn) 步驟S11;否則,取中間一條link信息,設(shè)為newlinkinf,轉(zhuǎn)步驟S1302b;步驟S1302b,判斷當(dāng)前Router LSA中的該條link信息newlinkinf的接 口是否與oldlinklist中的一條link信息的接口相同,若相同,則轉(zhuǎn)步驟 S1303,否則轉(zhuǎn)步驟S1304。
20、 根據(jù)權(quán)利要求17至19任一項所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)?處理方法,所述步驟S1303具體包括如下步驟歩驟S1303a,判斷newlinkinf和oldlinkinf連接信息是否一致,如果 是一致,則轉(zhuǎn)步驟S1302a;否則,轉(zhuǎn)步驟S1303b;步驟S1303b,判斷oldlinkinf類型是否為2,如果是,則表示該連接信 息是與指定路由器相關(guān)的Hnk信息,轉(zhuǎn)步驟S1303c;如果否,表示該連接信 息不與指定路由器相關(guān),則處理接口上與指定路由器不相關(guān)的連接關(guān)系,并且 轉(zhuǎn)步驟S1304;歩驟S1303c,判斷全局指定路由器映射表中是否含有oldlinkinf所在區(qū)域的指定路由器的網(wǎng)段信息,如果是,則轉(zhuǎn)步驟S1305,如果否,則轉(zhuǎn)步驟S1304。
21、 根據(jù)權(quán)利要求19任一項所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚?方法,所述歩驟S1304,具體包括如下步驟歩驟S1304a,判斷所述newlinkinf的type類型是否為2,如果否,則處 理接口上與指定路由器不相關(guān)的連接關(guān)系,并且轉(zhuǎn)歩驟S1302a;如果是,轉(zhuǎn) 步驟1304b;步驟S1304b,判斷全局指定路由器映射表中是否含有newlinkinf所在區(qū) 域的指定路由器的網(wǎng)段信息,如果是,則將該網(wǎng)段信息設(shè)為DRinf,轉(zhuǎn)步驟 S1304c;如果否,則表示第一次收到新指定路由器的報文信息,新構(gòu)建 newlinkinf包含指定路由器的網(wǎng)段信息DRinf,并以區(qū)域號和接口信息為索 引,加入到全局指定路由器映射表中,轉(zhuǎn)步驟S1304c;步驟S1304c,判斷newlinkinf是否表示自己為指定路由器,如果否,則 將RouterID填寫到網(wǎng)段信息DRinf的普通路由器列表中,轉(zhuǎn)步驟S1304e;如 果是,轉(zhuǎn)步驟S1304d;步驟S1304d,判斷DRinf中指定路由器網(wǎng)段的IP字段是否為空,如果是, 則表示第一次收到這個指定路由器的Router LSA,并且之前沒有收到該指定 路由器的Network LSA,填寫DRinf中的指定路由器的IP地址字段,遍歷DRinf 中普通路由器列表,建立列表中的路由器指向DRid的單邊鏈路關(guān)系,轉(zhuǎn)步驟 S1302a;如果否,則表示之前收到過該指定路由器的Network LSA,轉(zhuǎn)步驟 S1302a;步驟S1304e,將RouterID填寫到DRinf的普通路由器列表中,并判斷 DRinf中指定路由器網(wǎng)段的IP字段是否為空,如果否,則建立RouterID和 DRinf中DRid的單邊鏈路關(guān)系,轉(zhuǎn)步驟S1302a;如果是,則轉(zhuǎn)歩驟S1302a。
22、 根據(jù)權(quán)利要求17任一項所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚?方法,所述步驟S1305具體包括如下步驟歩驟S1305a,判斷oldlinkinf是否表示自己為指定路由器,如果是,則 轉(zhuǎn)步驟S1305b,如果否,則轉(zhuǎn)步驟S1305c;步驟S1305b, oldlinkinf表示自己為指定路由器,則表示原來的指定路 由器變?yōu)槠胀酚善?,刪除指定路由器相應(yīng)的網(wǎng)段信息DRinf,并刪除DRinf中包含的所有連接關(guān)系;轉(zhuǎn)步驟S1304;步驟S1305c,如果oldlinkinf表示自己不是指定路由器,則表示原來與 指定路由器相連的接口連接關(guān)系改變,刪除網(wǎng)段信息DRinf的普通路由器列表 中RouterID的信息及連接關(guān)系;轉(zhuǎn)步驟1304。
23、根據(jù)權(quán)利要求17所述的自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚矸椒ǎ?其特征是,在所述步驟S1303和步驟S1304中所述處理接口上與指定路由器不相關(guān)的連接關(guān)系,包括如下步驟步驟S2001,判斷Router LSA中的Link信息的type類型是否為3,如果是,則轉(zhuǎn)步驟S2002;如果否,則轉(zhuǎn)歩驟S2003;步驟S2002,更新當(dāng)前路由器與stub子網(wǎng)的連接關(guān)系,結(jié)束;步驟S2003,更新當(dāng)前路由器與Link信息中的路由器之間的單邊連接關(guān)系,結(jié)束。
全文摘要
本發(fā)明提供一種自治系統(tǒng)內(nèi)的實時網(wǎng)絡(luò)路由拓?fù)涮幚硐到y(tǒng)及方法。該系統(tǒng)包括前溯分析單元,用于根據(jù)接收到的路由信息采集探針采集的OSPF LSA報文,解析報文內(nèi)容,分析與指定路由器(DR)相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓?,處理DR映射表中相應(yīng)區(qū)域包含的DR網(wǎng)段信息,并更新自治系統(tǒng)內(nèi)的拓?fù)鋱D。該方法包括步驟S1,前溯分析單元根據(jù)接收到的路由信息采集探針采集的OSPF更新報文,解析報文內(nèi)容,分析與DR相關(guān)的網(wǎng)絡(luò)拓?fù)渥兓瑯?gòu)建、刪除或更新全局DR映射表中相應(yīng)區(qū)域包含的DR網(wǎng)段信息,并更新自治系統(tǒng)內(nèi)的拓?fù)鋱D。本發(fā)明使網(wǎng)絡(luò)中的路由器之間的連接關(guān)系、路由器和子網(wǎng)之間的連接關(guān)系實時更新,并避免網(wǎng)絡(luò)中的拓?fù)溥B接信息出錯。
文檔編號H04L12/24GK101282241SQ200810105849
公開日2008年10月8日 申請日期2008年5月4日 優(yōu)先權(quán)日2008年5月4日
發(fā)明者劉大鵬, 曄 李, 畢經(jīng)平, 旭 許 申請人:中國科學(xué)院計算技術(shù)研究所