IP網(wǎng)管系統(tǒng)中網(wǎng)絡(luò)探測器設(shè)計與實現(xiàn)

呂東強 楊文清

解放軍理工大學(xué)通信工程學(xué)院

南瑞集團通信系統(tǒng)分公司




  摘 要 針對目前IP網(wǎng)絡(luò)管理系統(tǒng)中管理信息的收集所存在的不足之處,文中設(shè)計了一種基于RMON的網(wǎng)絡(luò)探測器并給出了具體的實現(xiàn)方案;該探測器充分利用一些現(xiàn)有的免費開發(fā)工具包,并可以有效地解決這些問題。


  關(guān)鍵詞 網(wǎng)絡(luò)探測器 網(wǎng)絡(luò)管理 遠程監(jiān)視



1 引言


  在一個網(wǎng)絡(luò)管理系統(tǒng)中,網(wǎng)管信息的收集是一項最基本的任務(wù),它是實現(xiàn)各種復(fù)雜的網(wǎng)絡(luò)管理功能的基礎(chǔ)。在本網(wǎng)管系統(tǒng)的基本實現(xiàn)中,是依賴于管理站來采集網(wǎng)絡(luò)中的各種信息,并對采集到的信息進行分析和處理,這種方式基本上能夠滿足多數(shù)網(wǎng)絡(luò)的管理需求,然而,它也存在一些不足之處。


 。1)所有網(wǎng)管信息的采集全部依賴于中心的管理站,對管理站的處理能力有較高的要求,同時,由于各種原始的網(wǎng)管信息都需要匯集到管理站,就會帶來管理站四周較大的網(wǎng)絡(luò)流量,容易造成網(wǎng)絡(luò)的阻塞;


  (2)對于一些帶有防火墻的虛擬網(wǎng),位于其外部的管理站無法訪問到其內(nèi)部的網(wǎng)絡(luò),因而也就無法對其進行監(jiān)視與管理;


 。3)管理站在信息采集的時候,主要是利用SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)和各個網(wǎng)絡(luò)設(shè)備進行通信,獲得各設(shè)備的網(wǎng)管信息。然而,這些信息主要是關(guān)于設(shè)備自身的,而關(guān)于整個網(wǎng)絡(luò)的總體信息則比較缺乏。


  “網(wǎng)絡(luò)探測器”正是為了有效解決上述問題而提出的。


  在本網(wǎng)管系統(tǒng)中,網(wǎng)絡(luò)探測器是放置在一個局域網(wǎng)內(nèi)部的硬件裝置,它可以按照預(yù)定的配置信息,對該局域網(wǎng)內(nèi)部的網(wǎng)絡(luò)信息進行收集和統(tǒng)計,并對局域網(wǎng)的工作狀況進行監(jiān)視;同時,提供一定的接口,供管理站與之進行通信,獲得它的網(wǎng)管信息,并對它進行配置與管理。
2 網(wǎng)絡(luò)探測器原理


2.1 網(wǎng)絡(luò)數(shù)據(jù)包的偵聽


  在以太網(wǎng)上,任何一個主機發(fā)出的數(shù)據(jù)包都是在共享的以太網(wǎng)傳輸介質(zhì)上進行傳輸?shù),每個數(shù)據(jù)包的包頭部分都包含了源地址和目的地址。一般情況下,局域網(wǎng)上各臺主機的網(wǎng)卡負責(zé)檢查每一個數(shù)據(jù)包,如果發(fā)現(xiàn)其目的地址是本機,則接收該數(shù)據(jù)包并向上層傳遞,以進行下一步的處理;如果目的地址不是本機,則忽略它。


  在一些特殊的情況下,需要讓一臺主機能夠接收所有的數(shù)據(jù)包,即進行網(wǎng)絡(luò)數(shù)據(jù)包的“偵聽”,這時,通過對網(wǎng)卡進行設(shè)置,可以讓該主機的網(wǎng)卡工作在“混雜模式”下,則不論數(shù)據(jù)包的目的地址是否是本機,都能夠截獲并傳遞給上層進行處理。


對于截獲的數(shù)據(jù)包,進行進一步的分析處理,就能夠得到數(shù)據(jù)包的一些基本屬性,如包類型、包大小、目的地址、源地址等,這樣,就可以在此基礎(chǔ)上進行分析和統(tǒng)計。


2.2 SNMP——簡單網(wǎng)絡(luò)管理協(xié)議


  SNMP是TCP/IP網(wǎng)絡(luò)上的一個重要的網(wǎng)絡(luò)管理協(xié)議,能夠用于監(jiān)控和管理網(wǎng)絡(luò)設(shè)備,SNMP規(guī)范定義了管理站與網(wǎng)絡(luò)設(shè)備之間交換管理信息的協(xié)議、管理信息的結(jié)構(gòu)框架、通用的管理信息庫MIB等。


SNMP是網(wǎng)絡(luò)管理系統(tǒng)的基礎(chǔ),本網(wǎng)管系統(tǒng)主要基于SNMP來從各個網(wǎng)絡(luò)設(shè)備獲得各種網(wǎng)絡(luò)管理信息,并在對它們進行進一步分析處理后,提供各種網(wǎng)絡(luò)管理功能。


  在網(wǎng)絡(luò)探測器的實現(xiàn)中,我們將使用SNMP規(guī)范來實現(xiàn)它和管理站的通信,即在網(wǎng)絡(luò)探測器上實現(xiàn)一個具有完整功能的SNMP Agent,通過SNMP來向管理站提供各種網(wǎng)管信息。網(wǎng)絡(luò)探測器支持RMON MIB,主要提供整個局域網(wǎng)有關(guān)的統(tǒng)計信息。


2.3 RMON——遠程監(jiān)視


  RMON(Remote Network Monitoring)規(guī)范是SNMP的一個重要增強,它定義了一種遠程監(jiān)視MIB來作為MIB-II的補充,為網(wǎng)絡(luò)管理站提供了至關(guān)重要的網(wǎng)絡(luò)信息。RMON可以把子網(wǎng)當(dāng)作一個整體來監(jiān)視,提供關(guān)于整個子網(wǎng)的一些統(tǒng)計信息。


  RMON本質(zhì)上是定義了一套MIB規(guī)范,其作用是定義標(biāo)準(zhǔn)的網(wǎng)絡(luò)監(jiān)視功能和接口,使基于SNMP的管理站和RMON探測器之間能夠通信。一般說來,RMON提供了一種有效且高效的方法來監(jiān)視子網(wǎng)行為。


  RMON規(guī)范主要包括在兩個重要RFC文檔中:RFC 1757定義了RMON1, RFC 2021定義了RMO-
N2。


  RMON1主要工作在MAC層,能夠監(jiān)視和它相連的LAN內(nèi)的所有流量,捕獲所有MAC層的幀,從這些幀中讀取MAC層的源地址和目的地址,并進行有關(guān)的各種分析和統(tǒng)計。


  RMON2是RMON1的擴充,RMON2工作在MAC層之上,能夠從OSI模型的第3層到第7層對數(shù)據(jù)包進行解析,監(jiān)視協(xié)議流量,例如,探測器能夠基于網(wǎng)絡(luò)層協(xié)議和地址(包括IP)來監(jiān)視流量。


  RMON規(guī)范定義的MIB庫結(jié)合在MIB-II中,其子樹標(biāo)識為16。RMON1定義了10個組,RMON2在RMON1的基礎(chǔ)上進行了簡單擴充,添加了9個新的組。


3 系統(tǒng)總體設(shè)計


3.1 基本設(shè)計思想


  從本質(zhì)上講,網(wǎng)絡(luò)探測器是一個支持RMON規(guī)范的SNMP Agent,其主要任務(wù)包括:


  (1)采集、分析和統(tǒng)計局域網(wǎng)的各種有用信息,按照RMON規(guī)范對這些信息進行組織;


  (2)實現(xiàn)SNMP Agent,提供標(biāo)準(zhǔn)的SNMP接口,供管理站從它獲得網(wǎng)絡(luò)管理信息。


  網(wǎng)絡(luò)探測器底層的平臺是嵌入式Linux系統(tǒng),該系統(tǒng)具有網(wǎng)絡(luò)模塊,可以接入以太局域網(wǎng)。具體的平臺要求是:


  硬件系統(tǒng)平臺:性能較高,處理速度相對較快,內(nèi)存容量較大,帶有網(wǎng)絡(luò)模塊;


  操作系統(tǒng)平臺:支持網(wǎng)絡(luò)功能,能夠接入以太網(wǎng),提供C++編譯開發(fā)工具。


  在本網(wǎng)絡(luò)探測器的實現(xiàn)時,考慮到運行效率、硬件成本、使用方便性等各方面的因素,做了以下限定:


 。1)針對目前最常見的以太網(wǎng)環(huán)境;


 。2)有一個接口使其僅能連接到一個子網(wǎng),這樣可使得系統(tǒng)簡單有效、易于安裝配置;


 。3)全部MIB對象存放在內(nèi)存中,提高運行效率;


  (4)有選擇地實現(xiàn)一些重要的MIB組;RMON是一個功能非常強大的MIB庫,能夠為管理站提供詳細的網(wǎng)絡(luò)管理信息,然而,在一般應(yīng)用中都不大可能對所有的SNMP MIB組加以實現(xiàn)。


3.2 系統(tǒng)基本體系結(jié)構(gòu)


  圖2給出了本網(wǎng)絡(luò)探測器的基本體系結(jié)構(gòu)。網(wǎng)絡(luò)探測器包括以下一些基本組成模塊:網(wǎng)絡(luò)偵聽、數(shù)據(jù)包分析、分類統(tǒng)計計數(shù)、RMON MIB庫、SNMP處理以及Trap發(fā)送等。


  探測器系統(tǒng)中,各個功能模塊的主要功能如下:


  網(wǎng)絡(luò)偵聽模塊負責(zé)從網(wǎng)絡(luò)上截獲所有的數(shù)據(jù)包;網(wǎng)絡(luò)探測器連接在特定局域網(wǎng)上,它能夠?qū)υ摼钟蚓W(wǎng)上傳輸?shù)乃袛?shù)據(jù)包進行截獲,然后提交給上層模塊進行分析處理。


  數(shù)據(jù)包分析模塊對截獲的數(shù)據(jù)包根據(jù)數(shù)據(jù)包的類型、源地址、目的地址、包大小等基本信息逐個進行分析。


  數(shù)據(jù)包分析模塊在對數(shù)據(jù)包進行分析后,根據(jù)數(shù)據(jù)包的特性,調(diào)用特定的分類統(tǒng)計計數(shù)模塊對該包進行統(tǒng)計計數(shù),分類統(tǒng)計計數(shù)模塊按照MIB庫的規(guī)范要求,將統(tǒng)計結(jié)果更新到有關(guān)的一些MIB對象中。


  RMON MIB庫用來保存各種RMON MIB對象(實際上還包括MIB-II的System組和Interface組),這些對象按照RMON MIB規(guī)范進行組織,這里的MIB庫是一個概念上的數(shù)據(jù)庫,實際上各種信息都組織在內(nèi)存中,以提高訪問效率。


  SNMP處理模塊負責(zé)實現(xiàn)SNMP訪問接口,接收SNMP請求(包括Get、GetRequest、Set等操作),對它進行分析處理,并按照要求訪問RMON MIB庫,從中取得需要的MIB對象值并返回給請求者(對Get、GetRequest而言),或者設(shè)置有關(guān)的MIB對象值(對Set操作而言)。


  Trap發(fā)送模塊負責(zé)在發(fā)生特定事件時,主動發(fā)送Trap信息給預(yù)定的管理站;在分類統(tǒng)計計數(shù)模塊對MIB對象的值進行計數(shù)時,如果發(fā)現(xiàn)特定值超過了預(yù)定的范圍,則啟動Trap發(fā)送模塊,按照預(yù)定策略發(fā)送Trap信息給管理站。


4 實現(xiàn)技術(shù)


4.1 SNMP Agent的實現(xiàn)


  目前,已經(jīng)有一些可用的SNMP Agent開發(fā)工具包,它們提供一些基本的框架平臺,實現(xiàn)了Agent的通用功能,在其基礎(chǔ)上,開發(fā)者可以集中精力進行具體邏輯功能的實現(xiàn),如MIB對象的數(shù)據(jù)采集等。這樣有利于簡化開發(fā)工作,加快開發(fā)進程。常見的SNMP Agent開發(fā)工具包有:Agent++、net-snmp、WinSnmp API(適用于Windows平臺)等。


  為了方便探測器Agent的實現(xiàn),我們選擇了Agent++平臺,它是免費的且源代碼公開。


  Agent++是一套用于開發(fā)SNMP Agent的C++庫,它建立在SNMP++的基礎(chǔ)之上。Agent++提供了完整的協(xié)議處理框架,提供了標(biāo)量對象和表對象等MIB對象的基類,通過繼承用戶可以方便地定義MIB對象。Agent++具有以下一些特點:


 。1)功能強大,能夠?qū)崿F(xiàn)各種復(fù)雜的MIB對象;


  (2)簡單易用,開發(fā)人員無需深入了解底層的SNMP處理,僅使用一些簡單的類和接口,即可快速實現(xiàn)帶有各種MIB對象的Agent;


  (3)擴展性強,方便定義和實現(xiàn)新的功能;


   (4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平臺上;


 。5)支持SNMPv1和SNMPv2c;


  (6)支持多線程處理,在線程中處理SNMP請求,可以進行并發(fā)的處理;


 。7)支持MIB對象的持久保存,可將MIB對象保存到硬盤上,并可以從硬盤裝載;


  (8)具有詳細的日志功能。


4.2 網(wǎng)絡(luò)數(shù)據(jù)包偵聽的實現(xiàn)


  網(wǎng)絡(luò)數(shù)據(jù)包的偵聽也可以使用一些現(xiàn)成的開發(fā)包來實現(xiàn),winpcap和libpcap是比較著名的開發(fā)包,提供了較強的網(wǎng)絡(luò)數(shù)據(jù)包截獲功能,其中,winpcap運行在Windows平臺上,libpcap運行在UNIX和Linux平臺上。


  本項目使用libpcap作為數(shù)據(jù)包偵聽部分的開發(fā)包。


  libpcap(Packet Capture Library),即數(shù)據(jù)包捕獲函數(shù)庫。在網(wǎng)絡(luò)包抓取中l(wèi)ibpcap是非常常用的一個庫,著名的tcpdump就是用它來實現(xiàn)的。libpcap是一個與實現(xiàn)無關(guān)的訪問操作系統(tǒng)所提供的分組捕獲函數(shù)庫,用于訪問數(shù)據(jù)鏈路層。這個庫為不同的平臺提供了一致的C函數(shù)編程接口,在安裝了 libpcap 的平臺上,以 libpcap 為接口寫的程序、應(yīng)用,能夠自由地跨平臺使用。它支持多種操作系統(tǒng)。


  libpcap 結(jié)構(gòu)簡單,使用方便;它提供了20多個API封裝函數(shù),我們利用這些API函數(shù)即可完成本網(wǎng)絡(luò)探測器所需的網(wǎng)絡(luò)數(shù)據(jù)包監(jiān)聽功能。


5 結(jié)束語


  針對網(wǎng)絡(luò)管理系統(tǒng)的管理信息收集所存在的一些特殊問題,本文設(shè)計并實現(xiàn)一種網(wǎng)絡(luò)探測器。在一個網(wǎng)絡(luò)管理應(yīng)用系統(tǒng)中,要根據(jù)具體情況決定是否為一些局域網(wǎng)設(shè)置網(wǎng)絡(luò)探測器。所以網(wǎng)絡(luò)探測器是對本網(wǎng)絡(luò)管理系統(tǒng)基本實現(xiàn)的補充,它可以使得本網(wǎng)管系統(tǒng)功能更加完善。實踐證明本實現(xiàn)方案簡單實用,達到了預(yù)期的目的。



參 考 文 獻


[1] Stallings W,胡成松, 汪凱譯 . SNMP網(wǎng)絡(luò)管理,北京:中國電力出版社,2001


[2] RFC 1213-1991, Management Information Base for Network Management of TCP/IP-based internets: MIB-II


[3] RFC 1757-1995, Remote Network Monitoring Management Information Base


[4] RFC 2021-1997, Remote Network Monitoring Management Information Base II





----《中國數(shù)據(jù)通信》

   

掃碼關(guān)注5G通信官方公眾號,免費領(lǐng)取以下5G精品資料
  • 1、回復(fù)“YD5GAI”免費領(lǐng)取《中國移動:5G網(wǎng)絡(luò)AI應(yīng)用典型場景技術(shù)解決方案白皮書
  • 2、回復(fù)“5G6G”免費領(lǐng)取《5G_6G毫米波測試技術(shù)白皮書-2022_03-21
  • 3、回復(fù)“YD6G”免費領(lǐng)取《中國移動:6G至簡無線接入網(wǎng)白皮書
  • 4、回復(fù)“LTBPS”免費領(lǐng)取《《中國聯(lián)通5G終端白皮書》
  • 5、回復(fù)“ZGDX”免費領(lǐng)取《中國電信5GNTN技術(shù)白皮書
  • 6、回復(fù)“TXSB”免費領(lǐng)取《通信設(shè)備安裝工程施工工藝圖解
  • 7、回復(fù)“YDSL”免費領(lǐng)取《中國移動算力并網(wǎng)白皮書
  • 8、回復(fù)“5GX3”免費領(lǐng)取《R1623501-g605G的系統(tǒng)架構(gòu)1
  • 本周熱點本月熱點

     

      最熱通信招聘

      最新招聘信息