《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 業界動態 > 基于SNMP的網絡拓撲結構自動發現研究

基于SNMP的網絡拓撲結構自動發現研究

2009-09-16
作者:劉亞莉 孫亞民

  摘? 要: 分析了簡單網絡管理協議(SNMP)、網絡管理模型以及地址解析協議(ARP),在此基礎上提出了一種網絡拓撲結構的自動發現方法。

  關鍵詞: 網絡管理? SNMP? 拓撲發現

?

  國際標準化組織提出的網絡管理標準框架(即開放系統互連管理框架)將網絡管理劃分成5大功能模塊:配置管理、性能管理、故障管理、計費管理和安全管理。Internet體系結構委員會在此框架基礎上提出了相應的網絡管理標準,即簡單網絡管理協議SNMP。

  直觀、可視化的網絡拓撲圖使網絡管理更加方便和高效,所以在網絡管理軟件中構造拓撲圖很有必要。網絡拓撲發現技術則是實現網絡拓撲圖的關鍵。基于TCP/IP的SNMP協議由于其簡單和易于實現的特性,已經成為網絡管理領域事實上的協議標準,且目前主要的網絡設備都提供對SNMP協議的支持,因此基于SNMP協議的拓撲發現技術被廣泛采用。本文主要討論基于SNMP協議的網絡搜索技術。

1? 相關協議及概念

1.1 SNMP的管理模型

  SNMP的網絡管理模型如圖1所示。該模型由管理站、代理、管理信息庫(Management Information Base,MIB)和網絡管理協議等組成。

?

?

  SNMP管理站一般是單機設備或者共享網絡中的一員,它是網絡管理員與網絡管理系統的接口。SNMP代理對來自管理站的信息查詢和請求做出響應,同時異步地向管理站提供一些重要的非請求信息。管理信息庫是被管代理特性的數據變量集合。管理站通過獲取代理MIB對象的值來實現監視功能,也可以通過修改代理的特殊變量的值來改變代理的配置。

  管理站和代理之間通過SNMP網絡管理協議連接。該協議包括以下功能。

  (1)Get:由管理站執行,獲取代理的MIB對象值。

  (2)Set:由管理站執行,設置代理的MIB對象值。

  (3)Trap:由代理發送的非請求信息,異步地向管理站報告重要事件。

  具體地講,管理站把感興趣的對象標識提取到應用程序中,發出GetRequest報文,從擁有SNMP管理代理的網絡設備中獲取指定對象的信息。管理代理用GetResponse消息響應GetRequest報文。GetNextRequest是管理站用于查詢信息的報文,它可以獲取一個表中指定對象的下一個對象,以遍歷整個表。Get實現了對設備信息的查詢,如果要求改變代理的配置,就需要管理站向被管代理發送SetRequest報文。SetRequest常用于對網絡設備進行遠程配置。SNMP陷阱(Trap)是SNMP代理發送給工作站的非請求消息,該消息通知管理站發生了特定事件。

1.2 SNMP報文

  管理站和代理之間通過交換SNMP報文來交換信息。管理站的每個請求或者響應都是一個完整、獨立的SNMP報文。每個報文包括SNMP版本號、SNMP共同體名和協議數據單元(Protocol Data Unit,PDU)。SNMP的消息格式如圖2所示。

?

1.3 SNMP的管理信息庫

  管理信息庫是網管數據的標準。該標準規定了網絡代理必須保存的數據項目、類型及允許的操作。網絡管理系統中的每個結點都包括一個MIB,它反映了該結點中被管資源的狀態。利用SNMP協議訪問網絡設備的管理信息庫,就可以得到網絡設備的所有統計內容,完成網絡拓撲的構建。

  MIB被劃分成8個組和171個對象,SNMP可操作的數據結構和變量都包括在其中。常用的組如下:

  (1)System組中包含被管系統的總體信息,如位置、名稱、功能、制造者等。

  (2)Interfaces組提供網絡實體的物理層接口的信息,包括配置信息和每個接口上的事件統計信息。

  (3)IP組提供網絡結點中有關IP實現和操作的信息。

  (4)ICMP組包括了有關ICMP的實現和操作的信息。

  (5)TCP組的對象主要用于解決流量控制、丟失重傳和網絡擁擠等問題。

  (6)UDP組監視打開的UDP連接,記錄錯誤信息。

  (7)EGP組用于支持外部網關協議的路由器,記錄本地和臨近路由器的EGP信息。

  (8)SNMP組包括了有關SNMP實現和操作的信息。

2?網絡拓撲結構的自動發現

  網絡拓撲圖用圖形化的方式直觀、形象地表示出整個網絡中的各子網以及子網內部網絡設備之間的互連關系。一個合理的網絡拓撲圖應該具有層次性,即包括主拓撲和子拓撲。主拓撲顯示網絡中子網及網關間的互連結構;子拓撲則顯示子網內部網絡設備間的互連關系。在網絡拓撲結構的自動發現的實現過程中,使用SNMP協議搜索路由表信息構造網絡主拓撲,使用ARP協議或者ICMP協議發現子網中的終端設備,實現子拓撲的構建。

2.1 主拓撲

  計算機網絡是由各種不同規模的子網組成的。子網通過各自的路由器同其他的子網通信。這些子網可以是局域網,也可以是某個局域網中的子網,它們都連接到路由器的一個端口上。路由器的端口可以和子網相連,也可以和路由器相連。主拓撲反映網絡中的路由設備和子網之間的關系,包括路由器-路由器、路由器-子網以及接口的關系。

  主拓撲的搜索通過SNMP協議訪問路由表的信息來實現。MIB庫中的IP路由表ipRouteTable是對路由表的抽象。其定義用ASN.1文法描述如下:

  ipRouteTable OBJECT-TYPE

  SYNTAX SEQUENCE OF IpRouteEntry

  IpRouteEntry∷=SEQUENCE

  {ipRouteDest IpAddress,  //路由器的目的子網地址

  ipRouteIfIndex INTEGER,  //惟一標識本地接口的索引值,

                //通過該接口可以到達該路由的下一站

  ipRouteNextHop IpAddress, //路由器的下一個網關地址

  ipRouteType INTEGER,//路由類型:1-其他,2-無效,

               //3-直接,4-間接

  ipRouteProto INTEGER//路由的學習機制,

               //如RIP、EGP或OSPF等

  ipRouteMask IpAddress  ? //路由目的地的子網掩碼

  ……}

  如果ipRouteDest為0.0.0.0則表示該路由為缺省路由。由于路由表中的下一站地址項標識的必然是具有路由功能的網絡結點,因此從網絡管理站的缺省路由開始,采用廣度優先或深度優先遍歷無向圖的算法對整個網絡進行遍歷,可逐級找出所有的路由器和子網,在此基礎上就可以實現網絡主拓撲結構的構建。

  實現主拓撲搜索的方法如下:假設待訪問的網絡是一個連通圖,而且至少知道其中一個節點R0的IP地址,則初始化已知路由隊列,將缺省路由標志IP放到已知的路由隊列中,已知路由器隊列={R0},已訪問路由器隊列=φ,下一跳路由器隊列=φ,子網隊列=φ。

While(已知路由隊列不為空)

{

    從已知路由隊列中取出一個路由器,為CurrentRouter;

    if(CurrentRouter屬于已訪問的路由器隊列)

?      break;

  elseif(將CurrentRouter加入到已訪問的路由隊列成功)

  {

?   訪問CurrentRouter的每個路由表項;

?   if(ipRouteType==indirect)

?   把路由表中的各ipRouteNextHop不重復地放到下一跳路由器隊列;

   if(ipRouteType==direct)

   把ipRouteDest和ipRouteMask不重復地放到子網隊列中;

  }

  遍歷下一跳路由器隊列中的每個路由器,將其標志IP放到待訪問的路由器隊列;

}

  說明:

  (1)如果在路由器的某路由記錄中ipRouteType為3,則其目的子網(ipRouteDest)與本路由器直接相連。ipRouteNextHop表示從該路由器轉發數據的出口地址,是該路由器的一塊網卡地址。此時,ipRouteNextHop與ipRouteMask相與可以得到子網地址。ipRouteTable中的ipRouteIfIndex是本地接口的索引,其值與接口表(ifTable)中的ifIndex值相對應。通過ifIndex和ifType的對應關系可以得到子網的類型。將子網及其相關信息加入到子網數據庫中。

  (2)如果不滿足條件(1),目的子網不直接與路由器相連,則只能通過ipRouteNextHop所指的下一跳路由器到達子網。此時的下一跳路由器與本路由器直接相連,將其加入到路由器數據庫中。

  (3)對于新發現的路由器,重復上述步驟完成所有路由器和子網的搜索。

  (4)通過對數據庫中路由器表和子網表的搜索可以知道大致的網絡主拓撲結構。但是要想繪制出網絡的拓撲圖還需要路由器之間、路由器和子網之間的連接關系,這些關系還需要查詢MIB中其他表項的信息。

2.2 子拓撲

  需要指出的是使用SNMP協議只能發現網絡系統中的路由器和子網,對于子網內部的結構還是一無所知。為了實現子拓撲的搜索則需要引入其他協議,如ARP協議或者ICMP協議。本文中使用ARP協議來實現子拓撲的搜索。

  任何有以太網接口的網絡設備都必須支持地址解析協議(ARP)并在本機維護一張ARP表,用于IP地址到物理地址的映射。通過分析MIB庫中的對象,發現路由器的ipNetToMediaTable表中記錄了該路由器所連接其他設備的IP地址到物理地址的映射和映射方式,其ASN.1定義如下:

  ipNetToMediaTable OBJECT-TYPE

  SYNTAX SEQUENCE OF IpNetToMediaEntry

  IpNetToMediaEntry∷=SEQUENCE

  {ipNetToMediaIfIndex INTEGER,

              //該記錄對應的接口索引

  ipNetToMediaPhysAddress PhysAddress,

              //介質依賴的物理地址

  ipNetToMediaNetAddress IpAddress,

              //與物理地址對應的IP地址

  ipNetToMediaType INTEGER } //地址映射類型

????這個表記錄了最近活動過的有效設備的IP地址和物理地址。如果子網內主機是活動的,則一定在ipNetToMediaTable中有記錄。在主拓撲的發現過程中記錄了子網的網絡地址和子網掩碼。使用子網掩碼與相應的路由器表中的ipNetToMediaNetAddress進行“與”操作,就可以得到這個子網內的所有主機的IP地址。此外,通過ipNetToMediaIfIndex查詢路由器接口表(ifTable)中對應的子網接口,查看ifType可以查詢出子網的類型,這樣就實現了子拓撲的發現。

????對于網絡節點數目不多,網絡流量不大的企業內部網,經常采用交換機完成局域網的組建。但是,一般的交換機工作于數據鏈路層,沒有路由功能,所以上述方法不適合于非三層的交換機,這樣的網絡拓撲屬于鏈路層的拓撲結構。為了檢測交換機每個端口的狀態,可以從交換機的MAU-MIB中取出相應的值。在RFC2239中定義了MAU-MIB,包含了一些設備內部的狀態信息,可以取出ifMauTable表內容,根據其中的ifMauStatus值來判斷該端口的運行狀態。

  查詢方法如下:先讀取交換機Bridge-MIB中的信息,獲取連接到交換機各個端口的計算機的物理地址,然后讀取在交換機的ipNetToMediaTable表中保存的所有通過該設備轉發數據包的主機的MAC地址。假設這張表中包含了所有連接主機的MAC地址,則可以通過下面的方法來得到它的連接情況。

  (1)首先得到dot1dTpFdbTable中關于各個端口的Address Forwarding Table,這是交換機中轉發和過濾數據幀的依據。表1顯示了端口接入設備物理地址表。

?

  (2)得到物理地址與IP地址轉換表(ipNetToMediaTable)。該表保存了所有通過該設備進行數據包轉發的主機的MAC地址,其物理地址與IP地址對應表如表2所示。

?

  (3)由上面2張表可以得出端口接入設備信息表,如表3所示。

?

?

  該表顯示了與交換機連接并激活的計算機狀態。

3? 結束語

  本文討論了基于SNMP協議和ARP協議的網絡拓撲發現方法。在使用該方法實現網絡拓撲的過程中,采用HP公司的SNMP++開發包,并使用Visual C++作為開發工具,對于MIB-Ⅱ中標識的網絡元素使用SQL Server數據庫中的表項來表示。所建立的數據庫結構反映了網絡元素之間的關系,并建立相應的路由器表、子網表、設備表以及連接關系表等。使用開發工具和開發包利用拓撲發現方法將網絡數據取到數據庫中,再利用開發工具將數據轉換成圖形顯示在網絡管理平臺上,完成網絡拓撲圖的構建。實踐結果表明該方法可以搜索出指定網段內的拓撲圖。網絡拓撲圖的實現,為繼續實現網絡管理的其他功能模塊打下了基礎。

?

參考文獻

1? 楊家海,任憲坤,王沛瑜.網絡管理原理與實現技術.北京:清華大學出版社,2000

2? 岑賢道,安常青.網絡管理協議及應用開發.北京:清華大學出版社,1998

3? 武俊明,羅軍周.基于IP的網絡結點發現與拓撲管理.連云港化工高等專科學校學報,2001;14(2)

4? 凌軍,曹陽,李莉等.基于ARP和SNMP的網絡拓撲自動發現算法.武漢大學學報,2001;47(1)

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 免费两性的视频网站 | 亚洲一级在线 | 26uuu在线 | 站长推荐国产精品视频 | 成人小视频在线播放 | 91网站网站网站在线 | 欧美成人高清在线视频大全 | 天天做夜夜做久久做狠狠 | 91精品视频免费在线观看 | 欧美viideos极品另类 | 亚洲综合网美国十次 | 久久精品国产2020 | a级国产视频 | 国产成人深夜福利短视频99 | 福利视频第一页 | 在线日韩麻豆一区 | 国产全黄三级播放 | 成人小视频免费在线观看 | 日韩国产成人精品视频 | 久久人人爽人人爽人 | 一级黄色片aaa | 日韩欧美一区在线观看 | 日韩大片高清播放器好 | 精品女同一区二区三区在线观看 | 欧美家庭影院 | 久久久久18 | 在线99视频 | 在线视频一区二区日韩国产 | 夜色在线影院 | 黄色网址免费在线观看 | 亚洲一区 中文字幕 久久 | 黄免费网站 | 我要看黄色片 | 色免费网站 | 天天插天天透天天狠 | 激情五月综合综合久久69 | 九九九九在线精品免费视频 | 五月婷综合 | 日韩成a人片在线观看日本 日韩操操操 | 日本中文字幕在线视频站 | 色黄网站aaaaaa级毛片 |