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