專利名稱:路由監(jiān)控裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種通信網(wǎng)絡(luò)的路由監(jiān)控裝置。
技術(shù)背景計(jì)算機(jī)網(wǎng)絡(luò)中的路由監(jiān)控系統(tǒng)分為對(duì)自治域內(nèi)路由的監(jiān)控和對(duì)自治域間路由的監(jiān)控。自治域內(nèi)路由的監(jiān)控主要是指對(duì)OSPF (Open Shortest Path First,開放最短路徑優(yōu)先)路由的監(jiān)控。自治域間路由的監(jiān)控主要指對(duì)BGP (BorderGateway Protocol,邊界網(wǎng)關(guān)協(xié)議)^各由的監(jiān)控。對(duì)于基于鏈路狀態(tài)的路由協(xié)議來說,每個(gè)路由器都會(huì)維護(hù)一個(gè)本路由域 內(nèi)的全局網(wǎng)絡(luò)拓樸結(jié)構(gòu)數(shù)據(jù)庫。任何網(wǎng)絡(luò)故障都會(huì)通過該拓樸結(jié)構(gòu)數(shù)據(jù)庫的 變化反映出來,通過分析網(wǎng)絡(luò)故障和拓樸結(jié)構(gòu)數(shù)據(jù)庫變化之間的關(guān)系,就能 夠確定故障檢測和定位所需的網(wǎng)絡(luò)故障模型。根據(jù)上述的原理,RFC2453提出了一個(gè)OSPF的監(jiān)控系統(tǒng),該監(jiān)控系統(tǒng) 目標(biāo)是提供對(duì)OSPF行為的實(shí)時(shí)跟蹤和提供一個(gè)離線的、從深度上對(duì)OSPF 行為的分析。該監(jiān)控系統(tǒng)由三部分組成(1)LSA Reflector(LSAR):負(fù)責(zé)從 網(wǎng)絡(luò)中收集LSAs; (2)LSA Ggregator(LSAG):負(fù)責(zé)實(shí)時(shí)分析LSAs流; (3)OSPFScan:基于LSA存案提供離線分析能力。RFC中還通過實(shí)驗(yàn)對(duì)監(jiān)控 系統(tǒng)作評(píng)估。上述監(jiān)控系統(tǒng)雖然提供了基于LSA存案的離線分析能力,可以通過路由 協(xié)議(如OSPF等)發(fā)現(xiàn)網(wǎng)絡(luò)的拓樸圖。但是并沒有給用戶一個(gè)直觀的界面 顯示,不便于管理。上述監(jiān)控系統(tǒng)的LSAR組件收集的是所有的LSA,由OSPF協(xié)議可知,上述所有的LSA中存在著大量的冗余,這是對(duì)存儲(chǔ)空間的 浪費(fèi);而LSAG產(chǎn)生的每一條拓樸改變信息都是只包含一個(gè)時(shí)間戳,因此, 很難僅從這些拓樸改變信息就獲得某一歷史時(shí)刻的拓樸信息的比如在t0時(shí) 刻出現(xiàn)"RTRUP,,的路由器,很難知道它在t1時(shí)刻是否還存在,解決辦法只 能是遍歷/人t0時(shí)刻到t1時(shí)刻的所有拓樸改變信息。發(fā)明內(nèi)容本發(fā)明的目的是提供一種路由監(jiān)控裝置,從而可以有效地對(duì)無線通信網(wǎng) 絡(luò)的拓樸信息進(jìn)行統(tǒng)計(jì)和顯示,獲取網(wǎng)絡(luò)的故障情況。 本發(fā)明的目的是通過以下技術(shù)方案實(shí)現(xiàn)的 一種路由監(jiān)控裝置,包括數(shù)據(jù)采集模塊,用于收集網(wǎng)絡(luò)的路由信息,并將收集到的路由信息傳輸 給數(shù)據(jù)存儲(chǔ)模塊;數(shù)據(jù)存儲(chǔ)模塊,用于根據(jù)數(shù)據(jù)采集模塊傳輸過來的路由信息生成拓樸信 息、網(wǎng)絡(luò)事件;將所述路由信息、拓樸信息、網(wǎng)絡(luò)事件進(jìn)行存儲(chǔ);數(shù)據(jù)處理模塊,用于對(duì)數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的數(shù)據(jù)進(jìn)行分析和處理,對(duì) 網(wǎng)絡(luò)的路由行為進(jìn)行監(jiān)控,獲得網(wǎng)絡(luò)的故障信息;界面顯示模塊,用于將數(shù)據(jù)處理模塊所獲得的網(wǎng)絡(luò)的故障信息通過界面 進(jìn)行顯示。由上述本發(fā)明提供的技術(shù)方案可以看出,本發(fā)明通過采用被動(dòng)監(jiān)控與主 動(dòng)監(jiān)控相結(jié)合的方式來收集網(wǎng)絡(luò)的路由信息數(shù)據(jù),對(duì)收集到的路由信息數(shù)據(jù) 進(jìn)行過濾、保存和分析,獲得網(wǎng)絡(luò)的路由行為數(shù)據(jù)和拓樸結(jié)構(gòu)等信息,并從 中提取出故障節(jié)點(diǎn)和線路的信息,并將獲得的信息以直觀、交互的界面顯示 出來。從而可以有效地對(duì)通信網(wǎng)絡(luò)的故障進(jìn)行監(jiān)控。
圖1為本發(fā)明提供的路由監(jiān)控裝置的實(shí)施例的結(jié)構(gòu)示意圖;圖2為本發(fā)明提供的一種路由^息統(tǒng)計(jì)功能的處理過程示意圖;圖3為本發(fā)明提供的快照信息查詢的處理過程示意圖;圖4為本發(fā)明提供的路由器抖動(dòng)信息的統(tǒng)計(jì)過程示意圖;圖5為本發(fā)明提供的"報(bào)文前進(jìn)"動(dòng)作示意圖;圖6為本發(fā)明提供的根據(jù)標(biāo)準(zhǔn)拓樸檢測網(wǎng)絡(luò)故障的處理過程示意圖;圖7為本發(fā)明提供的拓樸樹的數(shù)據(jù)結(jié)構(gòu)示意圖;圖8為本發(fā)明提供的根AS為18011,層次為3的拓樸樹的結(jié)構(gòu)示意圖;圖9為本發(fā)明提供的虛節(jié)點(diǎn)的結(jié)構(gòu)示意圖;圖10為本發(fā)明提供的XML的實(shí)施例的示意圖。
具體實(shí)施方式
本發(fā)明提供了 一個(gè)路由監(jiān)控裝置。域間路由監(jiān)測就是對(duì)BGP路由的監(jiān)測,目前最常用的外部網(wǎng)關(guān)協(xié)議是 BGP-4 (Border Gateway Protocol Version 4,邊界網(wǎng)關(guān)協(xié)議版本4) 。 BGP國 4是一個(gè)用于自治系統(tǒng)之間的、復(fù)雜的分布式動(dòng)態(tài)路由協(xié)議,BGP-4的主要功 能是在實(shí)現(xiàn)BGP-4協(xié)議的系統(tǒng)之間交換網(wǎng)絡(luò)可達(dá)性信息。這些網(wǎng)絡(luò)可達(dá)性信 息包括 一 個(gè)路由所穿越的自治系統(tǒng)的列表,用以建立 一 個(gè)表示連接狀態(tài)的 圖,從而解決路由環(huán)路問題,使在AS (Access Server,接入服務(wù)器)基礎(chǔ) 上的路由選擇策略成為可能。兩個(gè)BGP-4 Speaker建立了TCP連接后,進(jìn)行參數(shù)協(xié)商,在達(dá)成一致 后,開始交換路由信息。在這時(shí)的初始情況下,兩個(gè)BGP-4 Speaker需要交互全部的路由表。此后,采用增量更新的方式,即只聲明新的路由或撤銷無 效的路由,不需要進(jìn)行周期性的路由刷新。由于BGP-4是一個(gè)集距離向量算法和鏈路狀態(tài)算法于一身的協(xié)議,通過 對(duì)路由交互信息的分析,特別是Update幀中的AS-PATH屬性的分析,可以得 到從觀測點(diǎn)到目的網(wǎng)絡(luò)的AS序列。將這些序列整合起來,可以得到關(guān)于整個(gè) 網(wǎng)絡(luò)的拓樸結(jié)構(gòu)。另外,BGP-4是一個(gè)動(dòng)態(tài)的路由協(xié)議,除了在初始情況下 交互全部的路由表,BGP-4將會(huì)以增量的方式發(fā)送路由變化信息。這些信息 都通過Update幀發(fā)送給鄰近的BGP-4 Speaker。通過動(dòng)態(tài)的對(duì)這些信息的分 析,可以達(dá)到對(duì)整個(gè)BGP網(wǎng)絡(luò)動(dòng)態(tài)實(shí)時(shí)的分析。本發(fā)明所述的路由監(jiān)控裝置主要是通過路由協(xié)議(包括ospf和BGP協(xié)議 等)發(fā)現(xiàn)網(wǎng)絡(luò)故障。該路由監(jiān)控裝置的實(shí)施例的結(jié)構(gòu)如圖1所示。主要由數(shù) 據(jù)采集平臺(tái)(即數(shù)據(jù)采集模塊)、數(shù)據(jù)管理、存儲(chǔ)(即數(shù)據(jù)存儲(chǔ)模塊)、數(shù) 據(jù)分析、處理(即數(shù)據(jù)處理模塊)、界面顯示模塊等4個(gè)模塊組成。上述路由監(jiān)控裝置可以應(yīng)用于自治域內(nèi)路由的監(jiān)控和自治域間路由的監(jiān) 控。自治域內(nèi)路由的監(jiān)控基于OSPF,自治域間路由的監(jiān)控基于BGP。下面詳細(xì)介紹本發(fā)明所述的路由監(jiān)控裝置中各個(gè)模塊的功能和具體實(shí)現(xiàn)。一、數(shù)據(jù)采集模塊。數(shù)據(jù)采集模塊主要負(fù)責(zé)收集網(wǎng)絡(luò)的路由信息數(shù)據(jù),并將采集到的路由信 息數(shù)據(jù)傳輸給數(shù)據(jù)存儲(chǔ)、管理模塊。上述路由信息數(shù)據(jù),在OSPF協(xié)議中是 LSA報(bào)文,在BGP協(xié)議中是Update幀。數(shù)據(jù)采集模塊采用被動(dòng)監(jiān)控與主動(dòng)監(jiān)控相結(jié)合的方式來收集數(shù)據(jù)。在該 單元中,由一個(gè)路由代理實(shí)現(xiàn)OSPF和BGP協(xié)議,然后通過與其他路由器建 立緊鄰關(guān)系和進(jìn)行路由信息交互,從而獲取路由信息數(shù)據(jù)。二、 數(shù)據(jù)存儲(chǔ)模塊。數(shù)據(jù)存儲(chǔ)模塊將數(shù)據(jù)采集模塊傳輸過來的路由信息數(shù)據(jù)進(jìn)行相應(yīng)的處 理,按照路由信息數(shù)據(jù)的內(nèi)容生成拓樸信息、網(wǎng)絡(luò)事件等。然后,將上述原 始的路由信息數(shù)據(jù)、拓樸信息、網(wǎng)絡(luò)事件等進(jìn)行保存,以供監(jiān)控系統(tǒng)進(jìn)行分 析和處理。三、 數(shù)據(jù)處理模塊。數(shù)據(jù)處理模塊對(duì)存儲(chǔ)和管理模塊所存儲(chǔ)的數(shù)據(jù)進(jìn)行分析和處理,以實(shí)現(xiàn) 主要的路由監(jiān)控功能。在該模塊中包括拓樸監(jiān)控模塊,路由監(jiān)控模塊和故障 監(jiān)控模塊,分別完成網(wǎng)絡(luò)拓樸監(jiān)控功能、路由行為監(jiān)控和網(wǎng)絡(luò)故障監(jiān)控功 能。路由行為監(jiān)控模塊中包括路由信息統(tǒng)計(jì)子模塊、路由交互信息查詢子 模塊、快照時(shí)間配置子模塊和路由器抖動(dòng)統(tǒng)計(jì)子模塊。下面分別介紹上述各 個(gè)子模塊。1、路由信息統(tǒng)計(jì)子模塊。在數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的路由信息數(shù)據(jù)中包含有一些直接的路由信息, 如OSPF協(xié)議中的網(wǎng)絡(luò)路由,External 1路由,External 2路由等;BGP協(xié)議 中的AS—PATH, prefix等。路由信息統(tǒng)計(jì)子模塊統(tǒng)計(jì)單位時(shí)間內(nèi)接收到的上 述路由信息量,根據(jù)該上述路由信息量來衡量網(wǎng)絡(luò)狀況。當(dāng)上述路由信息量 出現(xiàn)了突然的變動(dòng),則意味著網(wǎng)絡(luò)故障的發(fā)生。因此,通過對(duì)路由信息量的 監(jiān)測,能夠起到網(wǎng)絡(luò)預(yù)警的作用。一種路由信息統(tǒng)計(jì)功能的處理過程示意圖如圖2所示,具體處理過程 為Daemon程序以固定時(shí)間(5分鐘)從路由表中獲得統(tǒng)計(jì)路由信息,將該 統(tǒng)計(jì)路由信息保存在RRD-Tool數(shù)據(jù)庫中。當(dāng)用戶在網(wǎng)頁上提交參數(shù)(如顯 示多長時(shí)間范圍的數(shù)據(jù))時(shí),根據(jù)用戶提交的參數(shù)和保存在RRD-Tool數(shù)據(jù)庫中的數(shù)據(jù),生成相應(yīng)的圖表,并通過web頁面顯示。2、 路由交互信息查詢子模塊。路由交互信息查詢包括快照信息查詢和實(shí)時(shí)信息查詢??煺招畔⒉樵?實(shí)現(xiàn)對(duì)定時(shí)Snapshot (快照)數(shù)據(jù)庫的查詢,其處理過程如圖3所示,具體 處理過程為用JSP動(dòng)態(tài)生成查詢頁面,用JavaBean實(shí)現(xiàn)進(jìn)行快照信息搜索的核心程 序。用戶可以選擇搜索Snapshot數(shù)據(jù)庫的時(shí)間、搜索Snapshot數(shù)據(jù)庫中的路由信息數(shù)據(jù)的類型、每網(wǎng)頁顯示結(jié)果的數(shù)目。用戶可以指定搜索某路由器的 公布的路由信息數(shù)據(jù),以及指定搜索的網(wǎng)絡(luò)或者路由器等。實(shí)時(shí)信息查詢與快照信息查詢類似,所不同的是實(shí)時(shí)Snapshot的時(shí)間值 需要由用戶進(jìn)行填寫用戶可以指定所搜索路由信息的beginTime和lastTime的時(shí)間范圍,也可以選擇僅搜索當(dāng)前時(shí)刻有效的路由信息,還可以選擇搜索 昨天活動(dòng)過的路由信息。3、 快照時(shí)間配置子模塊??煺諘r(shí)間配置子模塊主要提供給用戶配置系統(tǒng)作快照的間隔時(shí)間,并根 據(jù)該間隔時(shí)間控制對(duì)路由信息數(shù)據(jù)進(jìn)行快照。其具體處理過程為首先,將用戶指定的間隔時(shí)間保存到配置文件中??煺誅AEMON程序?qū)?最近一次進(jìn)行路由信息快照的時(shí)間記錄下來,該DAEMON程序還以一個(gè)較小 的時(shí)間間隔檢查最近一次快照的時(shí)間, 一旦當(dāng)前時(shí)間與最近一次快照的時(shí)間 大于或等于上述用戶指定的時(shí)間間隔,該DAEMON程序即對(duì)路由信息數(shù)據(jù)進(jìn) 行快照,將快照結(jié)果保存到數(shù)據(jù)庫中。4、 路由器抖動(dòng)統(tǒng)計(jì)子模塊。某段時(shí)間內(nèi)路由器抖動(dòng)的情況能反映出路由器設(shè)備的性能以及存在的問題,路由器抖動(dòng)信息的統(tǒng)計(jì)過程如圖4所示,具體處理過程為把路由器抖動(dòng)事件定義為某路由器新出現(xiàn);某路由器發(fā)生故障;某路 由器中新添加一鏈路;某路由器減少一鏈路(故障)等。首先,設(shè)定一個(gè)數(shù)值N和一個(gè)時(shí)間值T作為參數(shù)。然后,通過訪問數(shù)據(jù)庫 統(tǒng)計(jì)從時(shí)間T到當(dāng)前時(shí)刻之內(nèi)發(fā)生抖動(dòng)最嚴(yán)重的前N個(gè)路由器(如果存在至少 有N個(gè)路由器發(fā)生抖動(dòng)的話),并根據(jù)統(tǒng)計(jì)結(jié)果生成網(wǎng)頁文件輸出,供用戶 查詢。在網(wǎng)頁中可以通過JSP調(diào)用C程序進(jìn)行信息統(tǒng)計(jì),并把結(jié)果顯示出來。 五、界面顯示子模塊。界面顯示子模塊主要用于將經(jīng)分析和處理后的拓樸數(shù)據(jù)以一個(gè)友好、交 互的界面顯示出來。界面顯示子模塊需要顯示網(wǎng)絡(luò)的拓樸結(jié)構(gòu),顯示不同時(shí) 刻拓樸結(jié)構(gòu)的差異,還需要通過頁面列出網(wǎng)絡(luò)事件和發(fā)生的故障,給用戶提 供對(duì)存儲(chǔ)數(shù)據(jù)的查詢等。路由監(jiān)控系統(tǒng)的拓樸顯示形式包括兩種, 一種是OSPF路由監(jiān)控的Java Applet顯示形式,另一種是BGP路由監(jiān)控的Flash顯示形式。下面就這兩種顯 示形式進(jìn)行詳細(xì)說明。(1) 、 OSPF路由監(jiān)控的拓樸顯示形式。OSPF路由監(jiān)控的拓樸顯示是通過在HTML文件里嵌入一個(gè)Java Applet 文件(以jar形式保存),當(dāng)用戶訪問HTML文件的時(shí)候,即自動(dòng)加載該Java Applet。該拓樸顯示的處理過程如下1、 用戶瀏覽HTML文件,在HTML文件里嵌入了一個(gè)Java Applet文件;2、 用戶的瀏覽器加載上述Java Applet文件;3、上述Java Applet啟動(dòng),進(jìn)行下述初始化過程初始布局,載入標(biāo)志拓樸(用以發(fā)現(xiàn)拓樸異常),設(shè)置各事件監(jiān)控;Applet訪問同一服務(wù)器上的文件,獲取各拓樸信息并進(jìn)行構(gòu)造拓樸結(jié)構(gòu);Applet根據(jù)HTML文件里各參數(shù)進(jìn)行初始化拓樸顯示相關(guān)數(shù)據(jù); Applet把網(wǎng)絡(luò)拓樸結(jié)果顯示出來。 下面分幾個(gè)部分來介紹OSPF路由監(jiān)控的拓樸顯示方式。 (1 )、拓樸生成。該拓樸顯示形式的算法的簡單描述如下 輸入當(dāng)前有效拓樸信息集T 輸出網(wǎng)絡(luò)拓樸G《V,W,E〉1) [初始化G]V—0, W《0, E—02) [遍歷當(dāng)前有效拓樸信息集]vinfo 6 T={info | info.valid=1},執(zhí)行3)~5)3) [處理路由器]若info.topoType二RT, V《V+{info.v};4) [處理網(wǎng)絡(luò)]若info.topoType-NET, W《W+{info.w};5) [處理鏈路]若info.topoType二Link, E<~E+{info.e};另外,把輸入改為在某一歷史時(shí)刻tO有效的拓樸信息集,即可得到歷史 拓樸生成算法。(2)、節(jié)點(diǎn)信息相關(guān)。每一個(gè)節(jié)點(diǎn)都有其相關(guān)信息包括動(dòng)態(tài)獲取或者是靜態(tài)配置的。其中, 依靠協(xié)議動(dòng)態(tài)獲取的節(jié)點(diǎn)信息有路由器的IP地址、Router ID、接口數(shù)目、公布的LSA數(shù)目,以及各鏈路的度量等。而靜態(tài)配置的節(jié)點(diǎn)信息則可以比較 靈活。當(dāng)用戶想查看某個(gè)節(jié)點(diǎn)的時(shí)候,可以顯示與該節(jié)點(diǎn)相關(guān)的所有信息; 而當(dāng)用戶想查看所有節(jié)點(diǎn)的信息時(shí),則可以循環(huán)顯示各節(jié)點(diǎn)信息。為了使得 顯示的節(jié)點(diǎn)信息更加靈活,可以通過手工編輯節(jié)點(diǎn)信息。(3) 、網(wǎng)絡(luò)故障檢測。本發(fā)明提供的根據(jù)標(biāo)準(zhǔn)拓樸檢測網(wǎng)絡(luò)故障的處理過程示意圖如圖6所 示,具體處理過程如下首先,人工配置一個(gè)標(biāo)準(zhǔn)的網(wǎng)絡(luò)拓樸,在Applet剛初始化的時(shí)候,加載 該標(biāo)準(zhǔn)的網(wǎng)絡(luò)拓樸。當(dāng)Applet獲取得到當(dāng)前時(shí)候(或歷史時(shí)刻)的拓樸信息 后,將得到的拓樸信息與上述標(biāo)準(zhǔn)的網(wǎng)絡(luò)拓樸進(jìn)行比較,如果標(biāo)準(zhǔn)的網(wǎng)絡(luò)拓 樸里的某些節(jié)點(diǎn)或者某些鏈路在得到的拓樸信息里不存在,則在網(wǎng)絡(luò)拓樸顯 示圖上顯示出網(wǎng)絡(luò)故障。(4) 、獲取兩個(gè)時(shí)間點(diǎn)間的網(wǎng)絡(luò)拓樸差異??梢酝ㄟ^處理(t0,t1 ]間的拓樸信息得到網(wǎng)絡(luò)拓樸的變化,具體算法如下輸入拓樸信息集TtO, Tt0t1 ,時(shí)間點(diǎn)t0和t1 輸出拓樸結(jié)構(gòu)G0與G1的差異G21) [求G0]由算法三得到t0時(shí)刻的網(wǎng)絡(luò)拓樸結(jié)構(gòu)G0;2) [初始化G1, G2]G2.V《0, G2.W^0, G2.E《0, G1《G0;3) [遍歷集合]按時(shí)間逆序,vjnfo eTt0t1={info | info.t1>tOA(jnfo.t2<=t1 ||info.flag=1)};4) [處理V]若info.topoType二RT,執(zhí)行5)~6)5) [獲取G1.V畫G0.V]如果(info, flag =1 且 info.v g G0.V),G1 .V《G1 .V+info.v, G2.V《G2.V+info.v;6) [獲取G0.V誦G1.V]如果(info. flag =0且info." GO.V), G1.V《G1.V-info.v, G2.V《G2.V+info.v;7) [處理W]若info.topoType-NET,執(zhí)行8)~9)8) [獲取G1.W-G0.W]如果(info, flag =1且 info.w e G0.W), G1 .W《G1 ,W+info.w, G2.W《G2,W+info.w;9) [獲取G0.W-G1.W]如果(info, flag =0且 info.w 6 G0.W), G1 .W《G1 .W國info.w, G2.W《G2.W+info.w;10) [處理E]若info.topoType:LINK,執(zhí)行11)~12)11) [獲取G1.E-G0.E]如果(info, flag =1且 info.e - G0.E), G1.E《G1.E+info.e, G2.E《G2.E+info.e;12) [獲取G0.E-G1,E]如果(info. flag =0且info.e 6 G0.E), G1.E《G1.E誦 info.e, G2.E《G2.E+info.e;上面算法只是一個(gè)簡單的描述,實(shí)際的實(shí)現(xiàn)要復(fù)雜得多。算法5的思想 是利用兩拓樸結(jié)構(gòu)的"增量"來計(jì)算出拓樸的變化,它不計(jì)算G1,而通過 G0以及G0與G1間的變化來推算出G1。算法5在求得G0后,只需遍歷一次 (t1,t2]時(shí)間段內(nèi)的拓樸信息即可,當(dāng)G0與G1相差不大時(shí),其數(shù)據(jù)量是相當(dāng)小 的。利用上述算法5,還可以得到一些有用的信息如果把所有的節(jié)點(diǎn)按照 它們?cè)趖1和t2兩個(gè)時(shí)間點(diǎn)的狀態(tài)進(jìn)行劃分,可以分為以下五類第一類t1時(shí)刻存在,t2時(shí)刻也存在,且在[t1,t2]內(nèi)沒有變化的節(jié)點(diǎn);第二類t1時(shí)刻存在,t2時(shí)刻也存在,且在[t1,t2]內(nèi)有變化的節(jié)點(diǎn);第三類t1時(shí)刻不存在,t2時(shí)刻存在的節(jié)點(diǎn);第四類t1時(shí)刻存在,t2時(shí)刻不存在的節(jié)點(diǎn);第五類t1時(shí)刻不存在,t2時(shí)刻也不存在,但中途出現(xiàn)過的節(jié)點(diǎn)。為了得到上述五類不同的節(jié)點(diǎn),對(duì)上述算法5進(jìn)行了改進(jìn),改進(jìn)后的算 法如下1 )初始化兩布爾數(shù)組hasProcess和hasDown,其容量均為上一次網(wǎng)絡(luò)拓 樸節(jié)點(diǎn)的數(shù)目,所有值均為false;初始化NewNodeList—1 , NewNodeList—2兩個(gè)4連表;按照時(shí)間遞減的順序遍歷從時(shí)刻11到時(shí)刻t2新安裝的拓樸類型為節(jié)點(diǎn) (如路由器)的信息記錄,對(duì)于每一條記錄t,進(jìn)行下面的處理;a) 在上一次網(wǎng)絡(luò)拓樸結(jié)構(gòu)中查找該節(jié)點(diǎn),如果存在(設(shè)其索引值為i),貝'J3口果hasProcess[i]為false,則hasProcess[i]《tme, ^口果t. flag =0,貝寸 hasDown[i]《true;b) 否則(該節(jié)點(diǎn)不存在于上一次的網(wǎng)絡(luò)拓樸結(jié)構(gòu)中),在NewNodeList—1 和NewNodeList一2查找該節(jié)點(diǎn),如果都不存在,貝,Ji. 如果t. flag =1,則把節(jié)點(diǎn)加入到NewNodeList—1鏈表中去;ii. 否則把節(jié)點(diǎn)加入到NewNodeList—2《連表中去;經(jīng)過2),根據(jù)t1和t2兩個(gè)不同時(shí)刻的拓樸,我們可以抽取出五類不同的 節(jié)點(diǎn)并在拓樸圖中用不同顏色標(biāo)識(shí)第一類節(jié)點(diǎn){node_i | hasProcess[i]=false},用藍(lán)色表示;第二類節(jié)點(diǎn)(node一i | hasProcess[i]=true, hasDown[i]=false},用黃色表示;第三類節(jié)點(diǎn){nodej I node」in NewNodeList—1},用黑色表示;第四類節(jié)點(diǎn){node—i | hasProcess[i]=true且hasDown[i]=true},用紅色表示;第五類節(jié)點(diǎn){nodej I node」in NewNodeList—2},用灰色表示。 (5)、節(jié)點(diǎn)隱藏功能。由于種種原因,在網(wǎng)絡(luò)拓樸圖上有時(shí)需要不顯示一些節(jié)點(diǎn),最典型的是 監(jiān)控系統(tǒng)由于監(jiān)控系統(tǒng)也實(shí)現(xiàn)了路由協(xié)議,所以通過拓樸抽取算法得到的 拓樸結(jié)構(gòu)里也包含該監(jiān)控系統(tǒng),但從網(wǎng)絡(luò)管理操作人員的角度來看,是不希 望在拓樸圖上出現(xiàn)該監(jiān)控系統(tǒng)的。因此,本發(fā)明實(shí)現(xiàn)了可以人工配置節(jié)點(diǎn)顯示與否的功能,具體處理過程 為將不希望出現(xiàn)在拓樸圖上的節(jié)點(diǎn)的ROUTER ID以及節(jié)點(diǎn)類型(路由器節(jié) 點(diǎn)或者網(wǎng)絡(luò)節(jié)點(diǎn))寫到一配置文件上,根據(jù)該配置文件對(duì)網(wǎng)絡(luò)拓樸結(jié)構(gòu)進(jìn)行 改變,如假如現(xiàn)在路由器節(jié)點(diǎn)A、 B、 C的連接關(guān)系是A—B—C (為簡便, 這里的連接都是雙向的),當(dāng)配置成不顯示節(jié)點(diǎn)B的時(shí)候,那么對(duì)節(jié)點(diǎn)A和C 的改變是1 ) A和C直接相連;2) A到C之間的度量等于A到B加上B到C的 度量,而C到A之間的度量也類似。2、 BGP路由監(jiān)控的拓樸顯示形式。BGP的路由監(jiān)控系統(tǒng)的拓樸顯示是釆用Flash技術(shù)實(shí)現(xiàn)的,采用網(wǎng)頁的 方式進(jìn)行顯示。在該拓樸顯示形式中,主要工作是按用戶指定參數(shù)對(duì)拓樸進(jìn) 行布圖,并且提供對(duì)路由信息和路由表的查詢功能。用戶指定要顯示的拓樸 范圍,系統(tǒng)根據(jù)用戶指定的參數(shù)對(duì)拓樸結(jié)構(gòu)表進(jìn)行處理,生成拓樸元素的座 標(biāo),并通過XML語言對(duì)其進(jìn)行封裝,傳送到拓樸顯示模塊予以顯示。用戶可以通過根AS和層次這兩個(gè)參數(shù)來控制拓樸顯示的范圍根AS:根AS是要顯示的拓樸的核心AS,根AS在拓樸圖中位于圖的中央,其他的AS與其相連,圍繞根AS分布在其周圍。層次在拓樸圖中,顯示到根AS距離小于等于層次的那些AS。這樣,可以把拓樸圖看成一個(gè)圓形結(jié)構(gòu),根AS是圓的圓心,層次是圓的 半徑。在實(shí)際系統(tǒng)中,用樹結(jié)構(gòu)來表示n層的拓樸,這棵樹被稱為拓樸樹。其 中,樹的根節(jié)點(diǎn)是根AS,樹的高度是層次level。由于拓樸不是一個(gè)真正意義 上的樹,因此,樹中節(jié)點(diǎn)之間也可能有連接關(guān)系存在,但是,在拓樸樹中, 只考慮層次結(jié)構(gòu),不考慮那些額外的連接,具體的連接信息將在以后處理。一種拓樸樹的數(shù)據(jù)結(jié)構(gòu)示意圖如圖7所示,該拓樸樹的數(shù)據(jù)結(jié)構(gòu)如下 每個(gè)節(jié)點(diǎn)都有一個(gè)asn項(xiàng)用來表示自治系統(tǒng), 一個(gè)level項(xiàng)來表示層次,根節(jié) 點(diǎn)的層次為0,另外每個(gè)節(jié)點(diǎn)還有指向其第一個(gè)子女的firstchild指針和指向最 后一個(gè)子女的lastchild指針,指向下一個(gè)兄弟節(jié)點(diǎn)的nextsibling指針和指向前 一個(gè)兄弟的presibling指針。這樣通過指針可以方便的查找一個(gè)節(jié)點(diǎn)的子女和 兄弟。在拓樸樹中, 一個(gè)節(jié)點(diǎn)和他的父節(jié)點(diǎn)以及子女都存在鄰接關(guān)系,為了在 添加子女時(shí)不會(huì)將父節(jié)點(diǎn)也添加進(jìn)去,采用一個(gè)全局的AS鏈表來保存已經(jīng)處 理過的AS,在實(shí)際系統(tǒng)中,這個(gè)鏈表被Hash表代替,以提高查找效率。生 成一棵以rootAS為根,層次為n的拓樸樹的構(gòu)造算法如下初始化level二O, currentAS=rootAS, AS—LIST=[]創(chuàng)建節(jié)點(diǎn)以currentAS和level構(gòu)建樹節(jié)點(diǎn)node在ASJJST中添加currentAS從TOPO—TABLE中取出currentAS的neighbor—setlevel = level + 1, parentAS = currentAS若l6Vd >=門結(jié)束遍歷neighbor—set中的每一個(gè)元素neighbor如果該neighbor.AS在AS—LIST中不存在,currentAS = neighbor.AS,遞歸調(diào)用創(chuàng)建新節(jié)點(diǎn)。將該節(jié)點(diǎn)添力口到parrentAS的子女中本發(fā)明提供的一種根AS為18011,層次為3的拓樸樹的結(jié)構(gòu)如圖8所示。通過上述算法,可以創(chuàng)建用戶指定根AS和層次的拓樸樹。樹中的節(jié)點(diǎn)代 表了要顯示給用戶的所有的AS。由于拓樸顯示是用flash進(jìn)行顯示,flash的計(jì) 算能力有限,為了提高運(yùn)行速度以及顯示的美觀,本發(fā)明在后臺(tái)確定每一個(gè) AS的位置,將AS的位置,AS中包含的prefix以及AS間的連接通過XML語言 進(jìn)行封裝,發(fā)送到前臺(tái),通過flash編寫的界面給予顯示。下面介紹坐標(biāo)的確定算法。由于整個(gè)拓樸顯示圖表現(xiàn)為一個(gè)圓形形狀,所以,采用圓形布局的方案 來確定各個(gè)AS的位置。根AS在圓心的位置,其他節(jié)點(diǎn)都圍繞在圓心的四 周。每一層次的節(jié)點(diǎn)排放在同一個(gè)圓的軌跡上,每層之間的距離相等。這 樣,可以用極坐標(biāo)來表示節(jié)點(diǎn)的位置,根節(jié)點(diǎn)的坐標(biāo)為(O, 0)。對(duì)于一個(gè)節(jié)點(diǎn)而言,其坐標(biāo)(p, e)中p值由其所在的層次決定,e應(yīng)該由其 子女坐標(biāo)來決定。e = (emin+emax)/2,即父節(jié)點(diǎn)的e值由其子女的e值的最大 和最小值決定。這樣,父節(jié)點(diǎn)將位于子節(jié)點(diǎn)的對(duì)稱軸上。若一節(jié)點(diǎn)沒有子節(jié)點(diǎn),則需要在外層留下該節(jié)點(diǎn)的位置,這個(gè)位置被稱 為虛節(jié)點(diǎn),否則,將無法計(jì)算沒有子節(jié)點(diǎn)的父節(jié)點(diǎn)的位置。在最外層,將節(jié) 點(diǎn)和虛節(jié)點(diǎn)平均分布。本發(fā)明提供的一種虛節(jié)點(diǎn)的應(yīng)用示意圖如圖9所示。在拓樸樹中,N2沒 有子節(jié)點(diǎn),此時(shí),在拓樸圖中需要為他加入一個(gè)虛節(jié)點(diǎn)。虛節(jié)點(diǎn)參與布圖計(jì) 算,但是在最后顯示中不加以顯示。對(duì)最外層的節(jié)點(diǎn)和虛節(jié)點(diǎn)進(jìn)行編號(hào),在內(nèi)層的節(jié)點(diǎn),用兩個(gè)值start和 end來表示其子節(jié)點(diǎn)的開始編號(hào)和結(jié)束編號(hào)。在最外層的節(jié)點(diǎn),start-end。如圖9所示,虛節(jié)點(diǎn)的編號(hào)為0, N4點(diǎn)編號(hào)為1, N5點(diǎn)編號(hào)為2。則,N2 點(diǎn)的start二O, end二0, N3點(diǎn)的start二1, end=2。 (start+end)/(max+1) x兀即為 該點(diǎn)的極坐標(biāo)中的e值。其中max為最大編號(hào)。因此,在圖10中,N2點(diǎn)的e值 為(0+0)/3 x兀=0, N3點(diǎn)的e值為(1+2) /3 x丌=兀。在拓樸圖中,可以看出, 一個(gè)節(jié)點(diǎn)的start為其第一個(gè)節(jié)點(diǎn)的start, end 為其最后一個(gè)節(jié)點(diǎn)的end。如果一個(gè)節(jié)點(diǎn)沒有子節(jié)點(diǎn),則給該節(jié)點(diǎn)賦予一個(gè) stai^end的編號(hào)。編號(hào)算法如下首先,i殳一全局變量max-1遞歸執(zhí)行下面算法makeNo(as):如果as;殳有子節(jié)點(diǎn),貝'Jas.start二max-1, as.end=max-1, max=max+1 ,結(jié)束遍歷其子節(jié)點(diǎn)childmakeNo(child)as.start = as.firstchild.startas.end = as.lastchild.end調(diào)用makeNo(rootAS)。根據(jù)上述算法,能夠計(jì)算出每個(gè)節(jié)點(diǎn)的編號(hào)范圍,通過編號(hào)范圍,就能確定極坐標(biāo)中的e值。在布圖中,最外層節(jié)點(diǎn)和虛節(jié)點(diǎn)是均勻分布的,這就要求節(jié)點(diǎn)之間的距 離相等。由于最外層節(jié)點(diǎn)可能會(huì)很多,因此,最外層節(jié)點(diǎn)間必須保證一最小距離minjange才能確保節(jié)點(diǎn)不至于太密而出現(xiàn)重疊的問題。通過min—range, ;f尤育fe確定每層之間的-巨離(level—range)。為了布圖 的美觀,對(duì)層與層之間的最小距離做了限制,當(dāng)計(jì)算出來的距離小于該最小 3巨離min—level—range,令level—range = min—level—range。設(shè)最外層鄰近的兩點(diǎn)的坐標(biāo)為(p, ei)和(p, e2),則他們間的距離為如cos(A) _ p cos,2 + O sin, - / si攀))2 , 筒^尋到兩點(diǎn)間-巨離為W2(1-cos(&-,在公式中&為兩點(diǎn)間的夾角,為2兀/max。令 min—range-^/2(1 — cos(^ —欲),則可以計(jì)算出p的值。由于每一層之間距離相 等,因此,每一層節(jié)點(diǎn)的半徑為(leve廣p)/maxjevel。通過計(jì)算出的半徑和角度,在拓樸圖上就能確定每一個(gè)點(diǎn)的位置。當(dāng)位 置確定好以后,再通過查找拓樸表,將連接信息和prefix信息添加到拓樸樹 中,最后,用XML進(jìn)行封裝。 一個(gè)XML的例子如圖10。在上圖可以看到,每個(gè)AS用一個(gè)as元素進(jìn)行表示,用屬性as—number表 示AS號(hào),level表示層次,x和y表示坐標(biāo)。每個(gè)as元素包含了若干個(gè)neighbor 元素用來表示連接關(guān)系,若干個(gè)prefix元素表示屬于該自治系統(tǒng)的網(wǎng)絡(luò)的前 綴。通過拓樸布圖,生成了用戶指定的區(qū)域的節(jié)點(diǎn)坐標(biāo),通過XML對(duì)其進(jìn)行 封裝,將坐標(biāo)送到前臺(tái)顯示模塊,顯示給最終用戶。在實(shí)際應(yīng)用中,在將上述本發(fā)明所述的路由監(jiān)控系統(tǒng)部署在CERNET2 網(wǎng)絡(luò)的北京節(jié)點(diǎn)附近,與北京核心路由器形成鄰接關(guān)系后,所述路由監(jiān)控系 統(tǒng)多次靈敏地反映出CERNET2網(wǎng)絡(luò)中故障節(jié)點(diǎn)的IP地址,故障鏈路的起始IP地址,極大地幫助了網(wǎng)管人員確定故障位置,并迅速排除故障。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式
,但本發(fā)明的保護(hù)范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可 輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明 的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1. 一種路由監(jiān)控裝置,其特征在于,包括數(shù)據(jù)采集模塊,用于收集網(wǎng)絡(luò)的路由信息,并將收集到的路由信息傳輸給數(shù)據(jù)存儲(chǔ)模塊;數(shù)據(jù)存儲(chǔ)模塊,用于根據(jù)數(shù)據(jù)采集模塊傳輸過來的路由信息生成拓?fù)湫畔?、網(wǎng)絡(luò)事件;將所述路由信息、拓?fù)湫畔?、網(wǎng)絡(luò)事件進(jìn)行存儲(chǔ);數(shù)據(jù)處理模塊,用于對(duì)數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的數(shù)據(jù)進(jìn)行分析和處理,對(duì)網(wǎng)絡(luò)的路由行為進(jìn)行監(jiān)控,獲得網(wǎng)絡(luò)的故障信息;界面顯示模塊,用于將數(shù)據(jù)處理模塊所獲得的網(wǎng)絡(luò)的故障信息通過界面進(jìn)行顯示。
2、 根據(jù)權(quán)利要求1所述的路由監(jiān)控裝置,其特征在于,所述的數(shù)據(jù)采集 模塊采用被動(dòng)監(jiān)控與主動(dòng)監(jiān)控相結(jié)合的方式來收集網(wǎng)絡(luò)的路由信息。
3、 根據(jù)權(quán)利要求1所述的路由監(jiān)控裝置,其特征在于,所述的數(shù)據(jù)存儲(chǔ) 模塊根據(jù)預(yù)先設(shè)定的過濾機(jī)制對(duì)所述路由信息、拓樸信息、網(wǎng)絡(luò)事件進(jìn)行過 濾,將過濾后獲得的路由信息、拓樸信息、網(wǎng)絡(luò)事件進(jìn)行存儲(chǔ)。
4、 根據(jù)權(quán)利要求1所述的路由監(jiān)控裝置,其特征在于,所述的數(shù)據(jù)處理 模塊包括故障監(jiān)控模塊,用于根據(jù)數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的信息獲取網(wǎng)絡(luò)的故障信 息,該故障信息包括節(jié)點(diǎn)和鏈路的故障信息中至少一項(xiàng)。
5、 根據(jù)權(quán)利要求4所述的路由監(jiān)控裝置,其特征在于,所述的數(shù)據(jù)處理 模塊包括路由監(jiān)控模塊,用于根據(jù)數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的信息,對(duì)網(wǎng)絡(luò)的路由行為信息進(jìn)行統(tǒng)計(jì)和監(jiān)控;拓樸監(jiān)控模塊,用于根據(jù)數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的信息,對(duì)網(wǎng)絡(luò)的拓樸信 息進(jìn)行監(jiān)控。
6、 根據(jù)權(quán)利要求5所述的路由監(jiān)控裝置,其特征在于,所述的路由監(jiān)控 模塊包括路由信息統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)單位時(shí)間內(nèi)網(wǎng)絡(luò)中的路由信息量,根據(jù) 該路由信息量來衡量網(wǎng)絡(luò)狀況;路由交互信息查詢子模塊,用于對(duì)定時(shí)或根據(jù)用戶設(shè)定的時(shí)間間隔值獲 得的快照路由信息進(jìn)行查詢;快照時(shí)間配置子模塊,用于設(shè)置系統(tǒng)作快照的間隔時(shí)間,并根據(jù)該間隔 時(shí)間控制對(duì)路由信息數(shù)據(jù)進(jìn)行快照;路由器抖動(dòng)統(tǒng)計(jì)子模塊,用于統(tǒng)計(jì)設(shè)定時(shí)間內(nèi)路由器的抖動(dòng)信息,根據(jù) 該抖動(dòng)信息來衡量路由器的性能。
7、 根據(jù)權(quán)利要求1至6任一項(xiàng)所述的路由監(jiān)控裝置,其特征在于,所述 的界面顯示模塊所顯示的信息還包括網(wǎng)絡(luò)的拓樸結(jié)構(gòu)、不同時(shí)刻網(wǎng)絡(luò)的拓 樸結(jié)構(gòu)的差異、網(wǎng)絡(luò)事件和網(wǎng)絡(luò)故障中的至少一項(xiàng)。
8、 根據(jù)權(quán)利要求1至6任一項(xiàng)所述的路由監(jiān)控裝置,其特征在于,所述 的路由監(jiān)控裝置應(yīng)用于自治域內(nèi)路由的監(jiān)控或自治域間路由的監(jiān)控。
9、 根據(jù)權(quán)利要求8所述的路由監(jiān)控裝置,其特征在于,所述的自治域內(nèi) 路由的監(jiān)控基于開放最短路徑優(yōu)先OSPF協(xié)議,所述的自治域間路由的監(jiān)控 基于邊界網(wǎng)關(guān)協(xié)議BGP。
全文摘要
本發(fā)明提供了一種路由監(jiān)控裝置,該裝置主要包括數(shù)據(jù)采集模塊,用于收集網(wǎng)絡(luò)的路由信息,并將收集到的路由信息傳輸給數(shù)據(jù)存儲(chǔ)模塊;數(shù)據(jù)存儲(chǔ)模塊,用于根據(jù)數(shù)據(jù)采集模塊傳輸過來的路由信息生成拓?fù)湫畔?、網(wǎng)絡(luò)事件;將所述路由信息、拓?fù)湫畔?、網(wǎng)絡(luò)事件進(jìn)行存儲(chǔ);數(shù)據(jù)處理模塊,用于對(duì)數(shù)據(jù)存儲(chǔ)模塊所存儲(chǔ)的數(shù)據(jù)進(jìn)行分析和處理,對(duì)網(wǎng)絡(luò)的路由行為進(jìn)行監(jiān)控,獲得網(wǎng)絡(luò)的路由行為數(shù)據(jù)信息,判斷網(wǎng)絡(luò)故障的節(jié)點(diǎn)和線路;界面顯示模塊,用于將數(shù)據(jù)處理模塊所獲得的網(wǎng)絡(luò)故障的節(jié)點(diǎn)和線路信息通過界面進(jìn)行顯示。利用本發(fā)明,可以準(zhǔn)確判斷故障的節(jié)點(diǎn)和線路,有效地對(duì)無線通信網(wǎng)絡(luò)的故障進(jìn)行監(jiān)控。
文檔編號(hào)H04L12/26GK101247278SQ20071011999
公開日2008年8月20日 申請(qǐng)日期2007年8月6日 優(yōu)先權(quán)日2007年8月6日
發(fā)明者朱彥軍, 丹 袁 申請(qǐng)人:北京高信達(dá)網(wǎng)絡(luò)科技有限公司