本發(fā)明涉及網(wǎng)絡(luò)測(cè)量和監(jiān)測(cè)領(lǐng)域,特別涉及一種針對(duì)ospf網(wǎng)絡(luò)的路由配置異常檢測(cè)方法及系統(tǒng)。
背景技術(shù):
在信息社會(huì)中,人們對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的依賴(lài),使得計(jì)算機(jī)網(wǎng)絡(luò)運(yùn)行的可靠性變得越來(lái)越重要,計(jì)算機(jī)網(wǎng)絡(luò)運(yùn)行的可靠性對(duì)網(wǎng)絡(luò)管理便提出了更高的要求,osi(opensystemsinterconnection,開(kāi)放式系統(tǒng)互聯(lián))網(wǎng)絡(luò)管理標(biāo)準(zhǔn)中定義了網(wǎng)絡(luò)管理的五項(xiàng)基本功能:配置管理(configurationmanagement)、性能管理(performancemanagement)、故障管理(malfunctionmanagement)、安全管理(securitymanagement)和計(jì)費(fèi)管理(feemanagement),在上述五大功能域中,配置管理是基礎(chǔ),它的主要功能包括發(fā)現(xiàn)網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),監(jiān)視和管理網(wǎng)絡(luò)設(shè)備的配置情況,其中網(wǎng)絡(luò)設(shè)備配置情況對(duì)網(wǎng)絡(luò)運(yùn)行的可靠性具有非常重要的影響。路由配置異常檢測(cè)的主要目的是發(fā)現(xiàn)網(wǎng)絡(luò)設(shè)備上會(huì)導(dǎo)致網(wǎng)絡(luò)不穩(wěn)定的配置信息。
目前internet和其他較大的專(zhuān)有網(wǎng)絡(luò)都由大量的自治系統(tǒng)(autonomoussystem,as)組成,這些網(wǎng)絡(luò)的路由結(jié)構(gòu)一般被劃分為域內(nèi)路由和域間路由兩種結(jié)構(gòu)。自治系統(tǒng)內(nèi)部的路由器通過(guò)內(nèi)部網(wǎng)關(guān)協(xié)議(interiorgatewayprotocol,igp)彼此交換路由信息,一般內(nèi)部網(wǎng)關(guān)協(xié)議分為距離矢量協(xié)議和鏈路狀態(tài)路由協(xié)議,前者以路由信息協(xié)議(routinginformationprotocol,rip)和思科特有的動(dòng)態(tài)距離向量路由協(xié)議(interiorgatewayroutingprotocol,igrp)為代表,后者具有代表性的是開(kāi)放最短路徑優(yōu)先(openshortestpathfirst,ospf)協(xié)議和中間系統(tǒng)到中間系統(tǒng)(intermediatesystemtointermediatesystem,is-is)協(xié)議,其中ospf協(xié)議常用于在單一as內(nèi)決策路由,ospf路由器根據(jù)配置的信息通告路由,所有的路由器維護(hù)一個(gè)相同的描述這個(gè)as結(jié)構(gòu)的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)中存放的是路由域中相應(yīng)鏈路的狀態(tài)信息,然而所配置的路由信息有時(shí)候會(huì)表現(xiàn)出意料外的路由行為,稱(chēng)為路由配置異常,路由配置異常會(huì)導(dǎo)致目的網(wǎng)絡(luò)不可達(dá)、路由循環(huán)、路由振蕩,甚至是網(wǎng)絡(luò)中斷,增加丟包率,增加網(wǎng)絡(luò)收斂時(shí)間,浪費(fèi)路由器和鏈路資源,影響網(wǎng)絡(luò)的整體性能,降低服務(wù)質(zhì)量。
對(duì)于域內(nèi)ospf路由配置異常檢測(cè),目前有三種技術(shù):基于簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(snmp)檢測(cè)技術(shù)、基于traceroute方法檢測(cè)技術(shù)和基于ospf協(xié)議檢測(cè)技術(shù)。
基于簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(snmp)檢測(cè)技術(shù)。snmp方法主要是利用存儲(chǔ)在路由器mib庫(kù)中的路由表信息和arp表信息來(lái)發(fā)現(xiàn)新地址,主要流程如下:使用一個(gè)種子路由器,獲取其路由表內(nèi)記錄的所有可達(dá)網(wǎng)段,以及到達(dá)該網(wǎng)段所經(jīng)由的下一跳路由器的端口ip地址及相關(guān)路由信息,然后它將繼續(xù)擴(kuò)展其搜索,一直達(dá)到用戶(hù)指定的深度為止。同時(shí)還可獲取到每個(gè)路由設(shè)備上所有端口的直連子網(wǎng)及其相應(yīng)的子網(wǎng)掩碼,根據(jù)這些信息,進(jìn)而獲取到這些子網(wǎng)中的所有活動(dòng)主機(jī),根據(jù)這些信息可以進(jìn)行網(wǎng)絡(luò)前綴沖突和接口ip沖突的檢測(cè)。使用snmp的最大優(yōu)點(diǎn)是信息自動(dòng)隨網(wǎng)絡(luò)的狀況更新,這樣通過(guò)snmp獲取的網(wǎng)絡(luò)信息總是反映網(wǎng)絡(luò)最新的狀況,具有比較強(qiáng)的時(shí)時(shí)性,但是缺點(diǎn)也是致命的,并不是所有的設(shè)備都支持snmp,而且除了標(biāo)準(zhǔn)的mib信息外,各廠家都為自己的設(shè)備開(kāi)發(fā)了專(zhuān)門(mén)的mib,除此之外,很多用戶(hù)為了網(wǎng)絡(luò)安全性需要,經(jīng)常關(guān)閉mib,這些都給獲取網(wǎng)絡(luò)信息數(shù)據(jù)帶來(lái)了很大的困難。試驗(yàn)也表明在跨越多個(gè)區(qū)域(area)情況下,基于snmp的網(wǎng)絡(luò)發(fā)現(xiàn)能力很低,相應(yīng)的拓?fù)渌阉魉惴ㄔ趶V域網(wǎng)以及處理大規(guī)模數(shù)據(jù)時(shí)遇到很大的問(wèn)題。由于諸多權(quán)限的限制,這種方法更難以在internet上推廣應(yīng)用。
基于traceroute方法檢測(cè)技術(shù)。traceroute是利用icmp(internet控制消息協(xié)議)的原理去進(jìn)行internet網(wǎng)絡(luò)拓?fù)鋽?shù)據(jù)收集的,通過(guò)traceroute可以記錄數(shù)據(jù)從源主機(jī)到互聯(lián)網(wǎng)目的主機(jī)所走的路徑,我們稱(chēng)為路由追蹤技術(shù),使用traceroute方法優(yōu)點(diǎn)是所有的路由器都支持這種實(shí)現(xiàn)方式,根據(jù)由數(shù)據(jù)搜集模塊得到的路徑總表,最后根據(jù)路徑總表信息分析出是否存在網(wǎng)絡(luò)地址沖突信息,但其同樣也存在著缺點(diǎn),由于安全性的需要,網(wǎng)絡(luò)管理者往往利用防火墻屏蔽icmp包,這也給使用這種方式獲取網(wǎng)絡(luò)數(shù)據(jù)帶來(lái)困難。同時(shí),在使用traceroute方法時(shí)還存在著比較難解決的技術(shù)難題。目前來(lái)說(shuō)使用traceroute方法主要有以下幾個(gè)難題:1)怎樣適當(dāng)?shù)倪x擇源主機(jī)和目的主機(jī),才能使所獲取的數(shù)據(jù)盡量的完整而且不具有重復(fù)性,是在使用traceroute方法時(shí)需要解決的問(wèn)題;2)使用traceroute將會(huì)產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)都會(huì)占用比較多的網(wǎng)絡(luò)帶寬,如何用最少的數(shù)據(jù)獲取需要的信息也是一個(gè)重要的問(wèn)題;3)由于一個(gè)路由器可能存在多個(gè)端口,甚至一個(gè)端口通過(guò)別名的方式具有多個(gè)ip地址,如何解決多端口以及別名問(wèn)題是使用traceroute方法獲取網(wǎng)絡(luò)信息數(shù)據(jù)的關(guān)鍵問(wèn)題;4)有時(shí)候,我們要確定哪一個(gè)路由器屬于哪一個(gè)isp(網(wǎng)絡(luò)服務(wù)提供商),如何確定路由器的歸屬問(wèn)題也是一個(gè)比較困難的技術(shù)難點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明提出一種針對(duì)ospf網(wǎng)絡(luò)的路由配置異常檢測(cè)方法及系統(tǒng)。
本發(fā)明提出一種針對(duì)ospf網(wǎng)絡(luò)的路由配置異常檢測(cè)系統(tǒng),包括:
報(bào)文采集模塊,用于采集ospf網(wǎng)絡(luò)的鏈路狀態(tài)更新報(bào)文lsu,將所述鏈路狀態(tài)更新報(bào)文lsu發(fā)送給綜合分析模塊;
所述綜合分析模塊,用于接收所述鏈路狀態(tài)更新報(bào)文lsu,解析后得到多個(gè)類(lèi)型的鏈路狀態(tài)廣播信息lsa,所述鏈路狀態(tài)廣播信息lsa構(gòu)成ospf網(wǎng)絡(luò)的ospf鏈路狀態(tài)數(shù)據(jù)庫(kù)lsdb,維護(hù)所述ospf鏈路狀態(tài)數(shù)據(jù)庫(kù)lsdb,同時(shí)持久化到數(shù)據(jù)庫(kù)中;
異常檢測(cè)模塊,用于根據(jù)所述ospf鏈路狀態(tài),查找ospf網(wǎng)絡(luò)中路由器直連網(wǎng)段最長(zhǎng)前綴匹配的子網(wǎng)信息,若找到,則判斷所述子網(wǎng)信息所屬的路由器是否相同,若不同則判斷所述子網(wǎng)信息所屬的路由器是否存在鄰居關(guān)系,若不存在,則所述子網(wǎng)信息所屬的路由器存在網(wǎng)絡(luò)地址沖突的配置,如果存在,則判斷所述子網(wǎng)信息是否為兩個(gè)路由器之間建立鄰居關(guān)系的網(wǎng)段,若不是,則所述子網(wǎng)信息所屬的路由器的網(wǎng)絡(luò)前綴沖突。
所述報(bào)文采集模塊與路由器建立ospf會(huì)話(huà),在交換數(shù)據(jù)庫(kù)描述報(bào)文階段,所述報(bào)文采集模塊始終給鄰居路由器發(fā)送內(nèi)容為空的數(shù)據(jù)庫(kù)描述報(bào)文;所述報(bào)文采集模塊接收來(lái)自鄰居路由器宣告的鏈路狀態(tài)更新報(bào)文后,對(duì)鏈路狀態(tài)更新報(bào)文重新封裝,在鏈路狀態(tài)更新報(bào)文的頭部封裝時(shí)間戳與其所在自治系統(tǒng)號(hào),將封裝后的鏈路狀態(tài)更新報(bào)文發(fā)送給所述綜合分析模塊。
所述鏈路狀態(tài)廣播信息lsa包括類(lèi)型type為1的路由器鏈路狀態(tài)廣播信息,類(lèi)型type為2的網(wǎng)絡(luò)鏈路狀態(tài)廣播信息,類(lèi)型type為3和4的聚合鏈路狀態(tài)廣播信息,類(lèi)型type為5和7的外部鏈路狀態(tài)廣播信息。
所述綜合分析模塊根據(jù)所述鏈路狀態(tài)廣播信息lsa,獲取路由器信息、路由器連接關(guān)系、路由器直連網(wǎng)段、路由器接口ip;
所述路由器信息包括路由器id、路由器所屬自治系統(tǒng)號(hào)、路由器類(lèi)型和路由器信息的創(chuàng)建時(shí)間;
所述路由器連接關(guān)系包括路由器id、接口ip、路由器所屬自治系統(tǒng)號(hào)、路由器所屬區(qū)域號(hào)、子網(wǎng)掩碼、鄰居路由器id、鄰居路由器接口ip、鏈路類(lèi)型、鏈路metric、鏈路信息的創(chuàng)建時(shí)間;
所述路由器直連網(wǎng)段包括路由器id、網(wǎng)絡(luò)前綴、子網(wǎng)掩碼和鏈路信息的創(chuàng)建時(shí)間;
所述路由器接口ip包括路由器id、路由器接口ip地址、鏈路信息的創(chuàng)建時(shí)間。
所述異常檢測(cè)模塊還包括對(duì)于從所述鏈路狀態(tài)廣播信息lsa中獲取的路由器的接口ip信息,首先在路由器接口信息表中尋找是否有相同的接口信息,如果找到,則說(shuō)明ospf網(wǎng)絡(luò)中存在路由器接口ip地址沖突的配置。
本發(fā)明還提出一種利用如權(quán)利要求1系統(tǒng)的針對(duì)ospf網(wǎng)絡(luò)的路由配置異常檢測(cè)方法,包括:
步驟1,采集ospf網(wǎng)絡(luò)的鏈路狀態(tài)更新報(bào)文lsu,將所述鏈路狀態(tài)更新報(bào)文lsu發(fā)送給綜合分析模塊;
步驟2,接收所述鏈路狀態(tài)更新報(bào)文lsu,解析后得到多個(gè)類(lèi)型的鏈路狀態(tài)廣播信息lsa,所述鏈路狀態(tài)廣播信息lsa構(gòu)成ospf網(wǎng)絡(luò)的ospf鏈路狀態(tài)數(shù)據(jù)庫(kù)lsdb,維護(hù)所述ospf鏈路狀態(tài)數(shù)據(jù)庫(kù)lsdb,同時(shí)持久化到數(shù)據(jù)庫(kù)中;
步驟3,根據(jù)所述ospf鏈路狀態(tài),查找ospf網(wǎng)絡(luò)中路由器直連網(wǎng)段最長(zhǎng)前綴匹配的子網(wǎng)信息,若找到,則判斷所述子網(wǎng)信息所屬的路由器是否相同,若不同則判斷所述子網(wǎng)信息所屬的路由器是否存在鄰居關(guān)系,若不存在,則所述子網(wǎng)信息所屬的路由器存在網(wǎng)絡(luò)地址沖突的配置,如果存在,則判斷所述子網(wǎng)信息是否為兩個(gè)路由器之間建立鄰居關(guān)系的網(wǎng)段,若不是,則所述子網(wǎng)信息所屬的路由器的網(wǎng)絡(luò)前綴沖突。
所述報(bào)文采集模塊與路由器建立ospf會(huì)話(huà),在交換數(shù)據(jù)庫(kù)描述報(bào)文階段,所述報(bào)文采集模塊始終給鄰居路由器發(fā)送內(nèi)容為空的數(shù)據(jù)庫(kù)描述報(bào)文;所述報(bào)文采集模塊接收來(lái)自鄰居路由器宣告的鏈路狀態(tài)更新報(bào)文后,對(duì)鏈路狀態(tài)更新報(bào)文重新封裝,在鏈路狀態(tài)更新報(bào)文的頭部封裝時(shí)間戳與其所在自治系統(tǒng)號(hào),將封裝后的鏈路狀態(tài)更新報(bào)文發(fā)送給所述綜合分析模塊。
所述鏈路狀態(tài)廣播信息lsa包括類(lèi)型type為1的路由器鏈路狀態(tài)廣播信息,類(lèi)型type為2的網(wǎng)絡(luò)鏈路狀態(tài)廣播信息,類(lèi)型type為3和4的聚合鏈路狀態(tài)廣播信息,類(lèi)型type為5和7的外部鏈路狀態(tài)廣播信息。
根據(jù)所述鏈路狀態(tài)廣播信息lsa,獲取路由器信息、路由器連接關(guān)系、路由器直連網(wǎng)段、路由器接口ip;
所述路由器信息包括路由器id、路由器所屬自治系統(tǒng)號(hào)、路由器類(lèi)型和路由器信息的創(chuàng)建時(shí)間;
所述路由器連接關(guān)系包括路由器id、接口ip、路由器所屬自治系統(tǒng)號(hào)、路由器所屬區(qū)域號(hào)、子網(wǎng)掩碼、鄰居路由器id、鄰居路由器接口ip、鏈路類(lèi)型、鏈路metric、鏈路信息的創(chuàng)建時(shí)間;
所述路由器直連網(wǎng)段包括路由器id、網(wǎng)絡(luò)前綴、子網(wǎng)掩碼和鏈路信息的創(chuàng)建時(shí)間;
所述路由器接口ip包括路由器id、路由器接口ip地址、鏈路信息的創(chuàng)建時(shí)間。
所述步驟3還包括對(duì)于從所述鏈路狀態(tài)廣播信息lsa中獲取的路由器的接口ip信息,首先在路由器接口信息表中尋找是否有相同的接口信息,如果找到,則說(shuō)明ospf網(wǎng)絡(luò)中存在路由器接口ip地址沖突的配置。
由以上方案可知,本發(fā)明的優(yōu)點(diǎn)在于:
本發(fā)明使報(bào)文采集模塊與網(wǎng)絡(luò)中的ospf路由器通過(guò)tunnel隧道建立對(duì)等會(huì)話(huà),通過(guò)被動(dòng)式方式采集ospf鏈路狀態(tài)更新報(bào)文,分析得到路由器信息表、連接關(guān)系表、路由器子網(wǎng)信息表和路由器接口信息表,并依此分析出會(huì)造成網(wǎng)絡(luò)地址沖突和接口ip地址沖突的路由配置異常,同時(shí)保證實(shí)時(shí)性和高效性,能夠?qū)崟r(shí)被動(dòng)式采集網(wǎng)絡(luò)中路由信息,通過(guò)分析路由信息,找到網(wǎng)絡(luò)中是否存在會(huì)導(dǎo)致網(wǎng)絡(luò)不穩(wěn)定的配置異常,如路由器直連網(wǎng)段的網(wǎng)絡(luò)前綴沖突、路由器接口ip地址沖突。
附圖說(shuō)明
圖1是本發(fā)明綜合檢測(cè)設(shè)備部署示意圖;
圖2是本發(fā)明域內(nèi)網(wǎng)絡(luò)異常配置檢測(cè)流程圖。
具體實(shí)施方式
以下為本發(fā)明的具體步驟,如下所示,包括:
ospf報(bào)文采集技術(shù):在網(wǎng)絡(luò)測(cè)量技術(shù)領(lǐng)域,通常把部署在網(wǎng)絡(luò)中、通過(guò)主動(dòng)發(fā)包或者被動(dòng)監(jiān)聽(tīng)方式獲取網(wǎng)絡(luò)中相關(guān)報(bào)文信息的軟件或者硬件稱(chēng)為采集探針,所述報(bào)文采集模塊即為采集探針。報(bào)文采集模塊模擬完整的ospf協(xié)議,與真實(shí)路由器建立ospf會(huì)話(huà)并采集ospf鏈路狀態(tài)更新報(bào)文lsu。首先,通過(guò)修改采集探針上ospf模塊達(dá)到被動(dòng)采集的目的:即報(bào)文采集模塊與真實(shí)路由器建立起ospf會(huì)話(huà),在交換數(shù)據(jù)庫(kù)描述dd報(bào)文階段,報(bào)文采集模塊始終給鄰居路由器發(fā)送內(nèi)容為空的dd報(bào)文,就不會(huì)向網(wǎng)絡(luò)中注入自身的鏈路狀態(tài)更新報(bào)文lsu,從而不影響網(wǎng)絡(luò)現(xiàn)有的路由狀況,達(dá)到被動(dòng)采集的目的;其次,報(bào)文采集模塊接收來(lái)自鄰居路由器宣告的鏈路狀態(tài)更新報(bào)文后,對(duì)報(bào)文重新封裝,在報(bào)文頭部封裝一個(gè)時(shí)間戳和所在as號(hào),然后將封裝后的報(bào)文發(fā)送給綜合分析模塊。
為了實(shí)現(xiàn)ospf鏈路狀態(tài)更新報(bào)文的采集,報(bào)文采集模塊與自治系統(tǒng)as內(nèi)每個(gè)區(qū)域中的一個(gè)路由器建立隧道連接,通過(guò)隧道與區(qū)域中的路由器建立對(duì)等會(huì)話(huà)。如果自治系統(tǒng)存在多個(gè)區(qū)域,在選擇區(qū)域中的路由器時(shí),優(yōu)先考慮區(qū)域間路由器(areaboundaryrouter,abr)。首先報(bào)文采集模塊周期性地與ospf路由器通過(guò)hello報(bào)文建立和維護(hù)鄰居關(guān)系,再通過(guò)dd報(bào)文來(lái)進(jìn)行鏈路狀態(tài)數(shù)據(jù)庫(kù)(lsdb)的同步,報(bào)文采集模塊就能知道鄰居路由器上鏈路數(shù)據(jù)庫(kù)的信息。然后報(bào)文采集模塊通過(guò)鏈路狀態(tài)請(qǐng)求報(bào)文(lsr)向鄰居路由器請(qǐng)求所需的lsa,鄰居ospf路由器收到lsr報(bào)文后,通過(guò)鏈路狀態(tài)更新報(bào)文(lsu)將報(bào)文采集模塊所需的lsa發(fā)送過(guò)去,報(bào)文采集模塊通過(guò)lsack報(bào)文對(duì)新收到lsa報(bào)文進(jìn)行確認(rèn)。
基于ospf報(bào)文檢測(cè)路由異常配置技術(shù):綜合分析模塊接收來(lái)自報(bào)文采集模塊發(fā)送的鏈路狀態(tài)更新報(bào)文lsu,解析后得到不同類(lèi)型的鏈路狀態(tài)廣播lsa信息,這些信息構(gòu)成整個(gè)網(wǎng)絡(luò)的ospf鏈路狀態(tài)數(shù)據(jù)庫(kù)lsdb,綜合分析設(shè)備在內(nèi)存中維護(hù)最新的lsdb,同時(shí)持久化到數(shù)據(jù)庫(kù)中。這些lsa信息包括類(lèi)型type為1的路由器lsa(routerlsa),類(lèi)型type為2的網(wǎng)絡(luò)lsa(networklsa),類(lèi)型type為3和4的聚合lsa(summarylsa),類(lèi)型type為5和7的外部lsa(externallsa)信息。綜合分析模塊根據(jù)這些lsa信息可以得到以下四類(lèi)信息:
路由器信息:包括路由器id、所屬as號(hào)、路由器類(lèi)型和路由器信息的創(chuàng)建時(shí)間;
路由器連接關(guān)系:路由器id、接口ip、所屬as號(hào)、所屬區(qū)域號(hào)、子網(wǎng)掩碼、鄰居路由器id、鄰居路由器接口ip、鏈路類(lèi)型、鏈路屬性值(metric)、鏈路信息的創(chuàng)建時(shí)間;
路由器直連網(wǎng)段:包括路由器id、網(wǎng)絡(luò)前綴、子網(wǎng)掩碼和鏈路信息的創(chuàng)建時(shí)間;
路由器接口ip:包括路由器id、路由器接口ip地址、鏈路信息的創(chuàng)建時(shí)間。
其中,路由器信息和連接關(guān)系在檢測(cè)網(wǎng)段配置沖突和接口ip地址配置沖突中作為重要的判斷依據(jù),路由器直連網(wǎng)段信息即路由器的子網(wǎng)信息。
異常檢測(cè)模塊,對(duì)于從所述lsa信息中得到路由器的直連網(wǎng)段信息,首先在路由器直連網(wǎng)段尋找最長(zhǎng)前綴匹配的子網(wǎng)信息,如果找不到,則退出本次檢測(cè),繼續(xù)檢測(cè)下一個(gè)lsa信息,如果找到,則需要進(jìn)一步判斷子網(wǎng)信息所屬的路由器是否相同;;如果相同,則不存在網(wǎng)段沖突,如果不同,再進(jìn)一步判斷子網(wǎng)信息所屬的路由器是否存在鄰居關(guān)系,如果不存在,則說(shuō)明所屬的路由器存在網(wǎng)絡(luò)地址沖突的配置;如果存在,需要判斷子網(wǎng)信息是否為這兩個(gè)路由器建立鄰居關(guān)系的網(wǎng)段,如果不是,則說(shuō)明所屬的路由器存在網(wǎng)絡(luò)前綴沖突的配置,如果是則不存在網(wǎng)段沖突。
對(duì)于從所述lsa信息中得到路由器的接口ip信息,首先在路由器接口信息表中尋找是否有相同的接口信息,如果找到相同的,則說(shuō)明本網(wǎng)絡(luò)中存在路由器接口ip地址沖突的配置。
以下為本發(fā)明一具體實(shí)施方式,如下所示:
基于ospf協(xié)議實(shí)時(shí)高效地檢測(cè)域內(nèi)路由配置異常,包括一個(gè)運(yùn)行ospf協(xié)議的自治系統(tǒng)as,所述as包括至少一個(gè)區(qū)域area,所述as內(nèi)部署有一個(gè)綜合檢測(cè)設(shè)備。所述綜合檢測(cè)設(shè)備包括報(bào)文采集模塊和綜合分析模塊。所述報(bào)文采集模塊使能ospf協(xié)議,通過(guò)隧道和每個(gè)所述area中的一個(gè)ospf路由器建立鄰居關(guān)系,接收ospf路由器宣告的鏈路狀態(tài)更新(linkstateupdate,lsu)報(bào)文,報(bào)文采集模塊將空的數(shù)據(jù)庫(kù)描述(databasedescription,dd)報(bào)文宣告給ospf路由器,以實(shí)現(xiàn)在不影響實(shí)際網(wǎng)絡(luò)拓?fù)浜吐酚傻那疤嵯卤粍?dòng)式地采集lsu報(bào)文。報(bào)文采集模塊將受到的lsu報(bào)文經(jīng)過(guò)重新封裝,發(fā)送給綜合分析模塊。所述綜合分析模塊接收來(lái)自報(bào)文采集模塊的lsu報(bào)文,獲得所有路由器直連網(wǎng)段、接口ip等配置信息,分析網(wǎng)絡(luò)是否存在配置異常。圖2展示了進(jìn)行域內(nèi)網(wǎng)絡(luò)異常配置檢測(cè)的流程,具體步驟如下所示:
s1):接收來(lái)自服務(wù)器采集進(jìn)程重新封裝后的ospf鏈路狀態(tài)更新報(bào)文,放入報(bào)文隊(duì)列中,然后執(zhí)行s2);
s2):按照重定義的報(bào)文格式,對(duì)隊(duì)列中鏈路狀態(tài)更新報(bào)文進(jìn)行解析,得到報(bào)文中所有l(wèi)sa信息,然后,對(duì)每一條lsa進(jìn)行分析,執(zhí)行s3);
s3):如果lsa的類(lèi)型為1,則表示是路由器lsa(routerlsa),執(zhí)行s4),否則,執(zhí)行s9);
s4):得到lsa中的鏈路類(lèi)型(linktype)值,如果鏈路類(lèi)型為1或者為2,可以得到宣告路由器(advertisingrouter)的鄰居關(guān)系,執(zhí)行s5),否則執(zhí)行s7);
s5):從routerlsa中得到宣告路由器(advertisingrouter)與其鄰居路由器的連接信息,得到路由器信息和連接關(guān)系,構(gòu)建自治系統(tǒng)網(wǎng)絡(luò)拓?fù)?,然后?zhí)行s6);
s6):將得到的lsa信息存儲(chǔ)到本as服務(wù)器數(shù)據(jù)庫(kù)的routerlsa表中,然后執(zhí)行s26),進(jìn)行接口ip信息的獲取,執(zhí)行s11);
s7):得到lsa中的鏈路類(lèi)型(linktype)值,如果鏈路類(lèi)型為3,可以得到宣告路由器(advertisingrouter)的路由器直連網(wǎng)段信息,執(zhí)行s13),否則,對(duì)于其他鏈路類(lèi)型,對(duì)于構(gòu)建域內(nèi)拓?fù)錄](méi)有作用,則執(zhí)行s26);
s8):如果lsa的類(lèi)型為2,則表示是網(wǎng)絡(luò)lsa(networklsa),則執(zhí)行s9),否則,執(zhí)行s16);
s9):從networklsa中得到指定路由器(dr)與其鄰居路由器的連接信息,得到路由器信息和連接關(guān)系,構(gòu)建自治系統(tǒng)網(wǎng)絡(luò)拓?fù)洌缓髨?zhí)行s10);
s10):將得到的連接信息存儲(chǔ)到本as服務(wù)器數(shù)據(jù)庫(kù)的networklsa表中,然后執(zhí)行s26),然后獲取dr直連網(wǎng)段信息,執(zhí)行s13);
s11):從routerlsa的linkid字段可以得到路由器的接口ip地址,將得到的接口ip地址更新到路由器接口信息表,然后執(zhí)行s12);
s12):根據(jù)得到的路由器接口ip地址,首先在路由器接口信息表中尋找是否有相同的接口信息,且接口信息所屬路由器不為同一個(gè)。如果找到相同的,則說(shuō)明本網(wǎng)絡(luò)中存在路由器接口ip地址沖突的配置,生成相應(yīng)的告警信息進(jìn)行提示,然后執(zhí)行s26);
s13):從類(lèi)型type為3的routerlsa,可以得到stub網(wǎng)絡(luò)中路由器的直連網(wǎng)段信息,從networklsa中的linkstateid字段和networkmask字段得到指定路由器(dr)的直連網(wǎng)段信息,將得到的直連網(wǎng)段更新到路由器子網(wǎng)信息表中,然后執(zhí)行s14);
s14):根據(jù)得到的路由器直連網(wǎng)段信息,首先在路由器子網(wǎng)信息表中尋找最長(zhǎng)前綴匹配的子網(wǎng)信息,且子網(wǎng)信息所屬路由器不為同一個(gè)。如果找到相同的,則需要依據(jù)網(wǎng)絡(luò)拓?fù)溥M(jìn)一步判斷子網(wǎng)信息所屬的路由器是存在鄰居關(guān)系,如果不存在,則滿(mǎn)足條件;如果存在鄰居關(guān)系,還需要進(jìn)一步判斷子網(wǎng)信息是否為這兩個(gè)路由器建立鄰居關(guān)系的網(wǎng)段,如果不是,則滿(mǎn)足條件。上述滿(mǎn)足條件的情況均可以得到所路由器存在網(wǎng)絡(luò)地址沖突的配置,同時(shí)生成相應(yīng)的告警信息進(jìn)行提示,然后執(zhí)行s26);
s15):如果lsa的類(lèi)型為3,則表示是網(wǎng)絡(luò)匯總lsa(networksummarylsa),則執(zhí)行s16),否則,執(zhí)行s17);
s16):從networksummarylsa中得到區(qū)域邊界路由器(abr)通告的區(qū)域外的網(wǎng)絡(luò)地址,然后執(zhí)行s19);
s17):如果lsa的類(lèi)型為4,則表示是as邊界路由器匯總lsa(asbrsummarylsa),則執(zhí)行s18),否則,執(zhí)行s20);
s18):從asbrsummarylsa中得到通告區(qū)域外的自治系統(tǒng)邊界路由器的routerid信息,然后執(zhí)行s19);
s19):將類(lèi)型為3或4的匯總lsa(summarylsa)信息存儲(chǔ)到本as服務(wù)器數(shù)據(jù)庫(kù)的summarylsa表中,然后執(zhí)行s25);
s20):如果lsa的類(lèi)型為5,則表示是as外部lsa(asexternallsa),則執(zhí)行s21),否則,執(zhí)行s22);
s21:從asexternallsa中得到通告的其他外部as的可達(dá)網(wǎng)段信息,然后執(zhí)行s24);
s22):如果lsa的類(lèi)型為7,則表示是完全非末梢區(qū)域lsa(nssaexternallsa),則執(zhí)行s23),否則對(duì)于其他類(lèi)型的lsa,對(duì)于構(gòu)建域內(nèi)網(wǎng)絡(luò)拓?fù)錄](méi)有意義,則執(zhí)行s24);
s23):從nssaexternallsa得到完全非末梢區(qū)域內(nèi)的asbr產(chǎn)生的外部可達(dá)網(wǎng)段信息,該信息只能在nssa區(qū)域內(nèi)傳播,然后執(zhí)行s26);
s24):將類(lèi)型為5或7類(lèi)型的外部lsa(externallsa)信息存儲(chǔ)到本as服務(wù)器數(shù)據(jù)庫(kù)的externallsa表中,然后執(zhí)行s25);
s25):將得到的lsa信息,更新到鏈路狀態(tài)數(shù)據(jù)庫(kù)lsdb中,維護(hù)最新的狀態(tài)。然后執(zhí)行s26);
s26):如果后續(xù)還有l(wèi)sa報(bào)文需要進(jìn)行處理,則返回繼續(xù)執(zhí)行s2);否則返回執(zhí)行s1)。
本發(fā)明提供了一種實(shí)時(shí)高效地域內(nèi)路由配置異常檢測(cè)方法,應(yīng)用本方法,使報(bào)文采集模塊與網(wǎng)絡(luò)中的ospf路由器通過(guò)tunnel隧道建立對(duì)等會(huì)話(huà),通過(guò)被動(dòng)式方式采集ospf鏈路狀態(tài)更新報(bào)文,分析得到路由器信息表、連接關(guān)系表、路由器子網(wǎng)信息表和路由器接口信息表,并依此分析出會(huì)造成網(wǎng)絡(luò)地址沖突和接口ip地址沖突的路由配置異常,同時(shí)保證實(shí)時(shí)性和高效性。