資源描述:
《SNMP拓?fù)浒l(fā)現(xiàn)方法分析總結(jié)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、1.SNMP協(xié)議介紹及算法說(shuō)明1.1SNMP協(xié)議介紹SNMP是目前最流行的網(wǎng)管協(xié)議。作為應(yīng)用層上的協(xié)議,它主要通過(guò)一組Internet協(xié)議及其所依附的資源提供網(wǎng)絡(luò)管理服務(wù)。利用SNMP管理工作站可以遠(yuǎn)程管理所有支持這種SNMP的網(wǎng)絡(luò)設(shè)備,包括監(jiān)視網(wǎng)絡(luò)狀態(tài)、修改網(wǎng)絡(luò)設(shè)備配置、接收網(wǎng)絡(luò)事件警告等。1.2管理信息庫(kù)MIB管理信息庫(kù)MIB(ManagementInformationBase)是網(wǎng)絡(luò)管理系統(tǒng)中所有被管理元素信息的數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)中的元素是網(wǎng)管中的被管資源,且被管資源以對(duì)象來(lái)表示,每個(gè)對(duì)象表示被管資源某一方面的屬性。通過(guò)對(duì)這些對(duì)象的存取訪問(wèn),就可以得到網(wǎng)絡(luò)設(shè)備的所有靜態(tài)或動(dòng)態(tài)內(nèi)容,涵蓋網(wǎng)
2、絡(luò)性能、配置、路由和故障等各個(gè)方面。每個(gè)對(duì)象又包含若干信息變量,每個(gè)信息變量包含如下信息:變量名、變量的數(shù)據(jù)類型、變量的讀寫屬性、變量的值。MIB的定義與具體的網(wǎng)絡(luò)管理協(xié)議無(wú)關(guān),廠商可以在產(chǎn)品(如路由器)中包含SNMP代理軟件,并保證在定義新的MIB項(xiàng)目后該軟件仍遵守標(biāo)準(zhǔn)。用戶可以使用同一網(wǎng)絡(luò)管理客戶軟件來(lái)管理具有不同版本的MIB的多個(gè)路由器。MIB中的所有被管對(duì)象都被排列在一個(gè)樹形結(jié)構(gòu)之中。處于葉子位置上的對(duì)象是實(shí)際的被管對(duì)象,每個(gè)實(shí)際的被管對(duì)象表示某些被管資源、活動(dòng)或相關(guān)信息。MIB分為公有MIB和私有MIB,公有MIB-2(RFC1213)是1990年定義的,所有設(shè)備廠商都支持該MI
3、B庫(kù)定義的OID變量,每個(gè)廠商還可以補(bǔ)充自己的MIB庫(kù),這就是私有MIB,例如Cisco的私有MIB是1.3.6.4.1.9開始,該節(jié)點(diǎn)下的所有自變量都是Cisco自己定義的。9是Cisco申請(qǐng)的唯一廠商編號(hào)。1.3算法思想基于SNMP的拓?fù)浒l(fā)現(xiàn)算法方法,其基本思想是所有的網(wǎng)絡(luò)設(shè)備維護(hù)一個(gè)MIB庫(kù),保存其所有運(yùn)行進(jìn)程的相關(guān)信息,并對(duì)管理工作站的查詢進(jìn)行響應(yīng)。在網(wǎng)絡(luò)設(shè)備的MIB中含有網(wǎng)絡(luò)連接的信息,基于SNMP的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法就是通過(guò)采集設(shè)備的MIB數(shù)據(jù),從中提取出關(guān)于網(wǎng)絡(luò)拓?fù)涞男畔?。算法從管理中心的缺省路由開始,采用廣度優(yōu)先搜索遍歷的方法,對(duì)整個(gè)網(wǎng)絡(luò)中的路由進(jìn)行廣度搜索,用SNMP獲取每
4、臺(tái)被搜索到的路由器的路由表、地址表等信息,然后進(jìn)行綜合分析,從而發(fā)現(xiàn)網(wǎng)絡(luò)中的路由拓?fù)浣Y(jié)構(gòu)。然后進(jìn)行子網(wǎng)搜索,確定子網(wǎng)內(nèi)各網(wǎng)絡(luò)設(shè)備的狀態(tài)、類型等。1.4算法理論基礎(chǔ)從設(shè)備的MIB庫(kù)中提取出與邏輯網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)相關(guān)的信息,然后將這些信息歸納、總結(jié),從而得出網(wǎng)絡(luò)的路由拓?fù)浣Y(jié)構(gòu)。在算法中需要使用的MIB-II對(duì)象描述如下:(1)system組算法中使用的對(duì)象有sysObjectID,sysLocation和SysService.(2)ip組算法中使用的對(duì)象有簡(jiǎn)單對(duì)象ipFowarding和兩個(gè)表對(duì)象,ipAddTable(地址表)、ipRouteTable(路由表)。(1)interfaces組算法
5、中使用的interfaces組的對(duì)象是ifNumber,表示系統(tǒng)中的網(wǎng)絡(luò)接口數(shù)量。1.現(xiàn)有的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法2.1傳統(tǒng)的SNMP拓?fù)浒l(fā)現(xiàn)算法算法中定義三個(gè)隊(duì)列用于實(shí)現(xiàn)基于SNMP的網(wǎng)絡(luò)拓?fù)浒l(fā)現(xiàn)算法,分別為路由器隊(duì)列、子網(wǎng)隊(duì)列和連接隊(duì)列,用于存放發(fā)現(xiàn)過(guò)程中的路由器、子網(wǎng)和連接關(guān)系。以運(yùn)行拓?fù)浒l(fā)現(xiàn)的主機(jī)的默認(rèn)網(wǎng)關(guān)為起始節(jié)點(diǎn),訪問(wèn)其路由表,對(duì)于路由表的每項(xiàng)ipRouteDest,如果對(duì)應(yīng)的ifType=4,將下一跳路由器地址ipRouteNextHop放到路由器隊(duì)列,將ipRouteNextHop和路由器的連接放到連接隊(duì)列。如果對(duì)應(yīng)的ifType=3,將ipRouteDest放到子網(wǎng)隊(duì)列,將ip
6、RouteDest和路由器的連接放到連接隊(duì)列中。其中的數(shù)據(jù)結(jié)構(gòu)定義如下:StructRouterQueue{IpAddressrouterIp;RouterQueue*next;}StructSubNetQueue{IpAddresssubnetIp;//子網(wǎng)地址IpAddresssubnetMask;//子網(wǎng)掩碼IntsubnetType;//子網(wǎng)類型}連接可用一個(gè)二元組(from,to)來(lái)表示StructConnectQueueItem{IpAddressfrom;IpAddressto;ConnectQueueItem*next;}*ConnectQueue;算法描述:Begin初始
7、化路由器隊(duì)列,子網(wǎng)隊(duì)列,連接隊(duì)列;把缺省路由器放入到路由器隊(duì)列中;While(路由器隊(duì)列非空){從路由器隊(duì)列中取出一個(gè)路由器,為currentRouter;訪問(wèn)currentRouter路由表;If(ifType==3){//表示ipRouteNextHop和currentRouter相連接把路由表中的各ipRouteNextHop不重復(fù)地放到路由器列表中;把currentRouter與各ipRouteNextHop的連