探測

探測

探測,指探查某物;確定物體、輻射、化學化合物、信號等是否存在。

基本介紹

  • 中文名探測
  • 外文名:sound
  • 拼音:tàn cè
  • 注音:ㄊㄢˋ ㄘㄜˋ
詞語解釋,網路探測器,引言,原理,系統總體設計,實現技術,結束語,

詞語解釋

1. 探求測度。
《北齊書·元文遙傳》:“ 文遙 力事三主,明達世務……然探測上旨,時有委巷之言,故不為知音所重。” 夏丏尊葉聖陶 《文心》二三:“父親用善意的探測的眼光望著 慧修 。”
2. 測量。
高啟《劍池》詩:“中間得深泉,探測費修綆。” 鄭觀應 《盛世危言·墾荒》:“謂宜通飭邊疆督撫,將沿邊荒地派員探測。” 李季 《旗》詩:“在每一片被探測過的土地上,插上他們這面驕傲的紅旗。”

網路探測器

針對目前IP網路管理系統中管理信息的收集所存在的不足之處,文中設計了一種基於RMON的網路探測器並給出了具體的實現方案;該探測器充分利用一些現有的免費開發工具包,並可以有效地解決這些問題。
關鍵字 網路探測器 網路管理 遠程監視

引言

在一個網路管理系統中,網管信息的收集是一項最基本的任務,它是實現各種複雜的網路管理功能的基礎。在本網管系統的基本實現中,是依賴於管理站來採集網路中的各種信息,並對採集到的信息進行分析和處理,這種方式基本上能夠滿足多數網路的管理需求,然而,它也存在一些不足之處。
(1)所有網管信息的採集全部依賴於中心的管理站,對管理站的處理能力有較高的要求,同時,由於各種原始的網管信息都需要匯集到管理站,就會帶來管理站四周較大的網路流量,容易造成網路的阻塞;
(2)對於一些帶有防火牆虛擬網,位於其外部的管理站無法訪問到其內部的網路,因而也就無法對其進行監視與管理;
(3)管理站在信息採集的時候,主要是利用SNMP(簡單網路管理協定)和各個網路設備進行通信,獲得各設備的網管信息。然而,這些信息主要是關於設備自身的,而關於整個網路的總體信息則比較缺乏。
“網路探測器”正是為了有效解決上述問題而提出的。
在本網管系統中,網路探測器是放置在一個區域網路內部的硬體裝置,它可以按照預定的配置信息,對該區域網路內部的網路信息進行收集和統計,並對區域網路的工作狀況進行監視;同時,提供一定的接口,供管理站與之進行通信,獲得它的網管信息,並對它進行配置與管理。

原理

2.1 網路數據包的偵聽
乙太網上,任何一個主機發出的數據包都是在共享的乙太網傳輸介質上進行傳輸的,每個數據包的包頭部分都包含了源地址和目的地址。一般情況下,區域網路上各台主機的網卡負責檢查每一個數據包,如果發現其目的地址是本機,則接收該數據包並向上層傳遞,以進行下一步的處理;如果目的地址不是本機,則忽略它。
在一些特殊的情況下,需要讓一台主機能夠接收所有的數據包,即進行網路數據包的“偵聽”,這時,通過對網卡進行設定,可以讓該主機的網卡工作在“混雜模式”下,則不論數據包的目的地址是否是本機,都能夠截獲並傳遞給上層進行處理。
對於截獲的數據包,進行進一步的分析處理,就能夠得到數據包的一些基本屬性,如包類型、包大小、目的地址、源地址等,這樣,就可以在此基礎上進行分析和統計。
2.2 SNMP——簡單網路管理協定
SNMP是TCP/IP網路上的一個重要的網路管理協定,能夠用於監控和管理網路設備,SNMP規範定義了管理站與網路設備之間交換管理信息的協定、管理信息的結構框架、通用的管理信息庫MIB等。
SNMP是網路管理系統的基礎,本網管系統主要基於SNMP來從各個網路設備獲得各種網路管理信息,並在對它們進行進一步分析處理後,提供各種網路管理功能
在網路探測器的實現中,我們將使用SNMP規範來實現它和管理站的通信,即在網路探測器上實現一個具有完整功能的SNMP Agent,通過SNMP來向管理站提供各種網管信息。網路探測器支持RMON MIB,主要提供整個區域網路有關的統計信息。
2.3 RMON——遠程監視
RMON(Remote Network Monitoring)規範是SNMP的一個重要增強,它定義了一種遠程監視MIB來作為MIB-II的補充,為網路管理站提供了至關重要的網路信息。RMON可以把子網當作一個整體來監視,提供關於整個子網的一些統計信息。
RMON本質上是定義了一套MIB規範,其作用是定義標準的網路監視功能和接口,使基於SNMP的管理站和RMON探測器之間能夠通信。一般說來,RMON提供了一種有效且高效的方法來監視子網行為。
RMON規範主要包括在兩個重要RFC文檔中:RFC 1757定義了RMON1, RFC 2021定義了RMO- N2。
RMON1主要工作在MAC層,能夠監視和它相連的LAN內的所有流量,捕獲所有MAC層的幀,從這些幀中讀取MAC層的源地址和目的地址,並進行有關的各種分析和統計。
RMON2是RMON1的擴充,RMON2工作在MAC層之上,能夠從OSI模型的第3層到第7層對數據包進行解析,監視協定流量,例如,探測器能夠基於網路層協定和地址(包括IP)來監視流量。
RMON規範定義的MIB庫結合在MIB-II中,其子樹標識為16。RMON1定義了10個組,RMON2在RMON1的基礎上進行了簡單擴充,添加了9個新的組。

系統總體設計

3.1 基本設計思想
從本質上講,網路探測器是一個支持RMON規範的SNMP Agent,其主要任務包括:
(1)採集、分析和統計區域網路的各種有用信息,按照RMON規範對這些信息進行組織;
(2)實現SNMP Agent,提供標準的SNMP接口,供管理站從它獲得網路管理信息。
網路探測器底層的平台是嵌入式Linux系統,該系統具有網路模組,可以接入以太區域網路。具體的平台要求是:
硬體系統平台:性能較高,處理速度相對較快,記憶體容量較大,帶有網路模組;
作業系統平台:支持網路功能,能夠接入乙太網,提供C++編譯開發工具。
在本網路探測器的實現時,考慮到運行效率、硬體成本、使用方便性等各方面的因素,做了以下限定:
(1)針對目前最常見的乙太網環境;
(2)有一個接口使其僅能連線到一個子網,這樣可使得系統簡單有效、易於安裝配置;
(3)全部MIB對象存放在記憶體中,提高運行效率;
(4)有選擇地實現一些重要的MIB組;RMON是一個功能非常強大的MIB庫,能夠為管理站提供詳細的網路管理信息,然而,在一般套用中都不大可能對所有的SNMP MIB組加以實現。
3.2 系統基本體系結構
圖2給出了本網路探測器的基本體系結構。網路探測器包括以下一些基本組成模組:網路偵聽、數據包分析、分類統計計數、RMON MIB庫、SNMP處理以及Trap傳送等。
探測器系統中,各個功能模組的主要功能如下:
網路偵聽模組負責從網路上截獲所有的數據包;網路探測器連線在特定區域網路上,它能夠對該區域網路上傳輸的所有數據包進行截獲,然後提交給上層模組進行分析處理。
數據包分析模組對截獲的數據包根據數據包的類型、源地址、目的地址、包大小等基本信息逐個進行分析。
數據包分析模組在對數據包進行分析後,根據數據包的特性,調用特定的分類統計計數模組對該包進行統計計數,分類統計計數模組按照MIB庫的規範要求,將統計結果更新到有關的一些MIB對象中。
RMON MIB庫用來保存各種RMON MIB對象(實際上還包括MIB-II的System組和Interface組),這些對象按照RMON MIB規範進行組織,這裡的MIB庫是一個概念上的資料庫,實際上各種信息都組織在記憶體中,以提高訪問效率。
SNMP處理模組負責實現SNMP訪問接口,接收SNMP請求(包括Get、GetRequest、Set等操作),對它進行分析處理,並按照要求訪問RMON MIB庫,從中取得需要的MIB對象值並返回給請求者(對Get、GetRequest而言),或者設定有關的MIB對象值(對Set操作而言)。
Trap傳送模組負責在發生特定事件時,主動傳送Trap信息給預定的管理站;在分類統計計數模組對MIB對象的值進行計數時,如果發現特定值超過了預定的範圍,則啟動Trap傳送模組,按照預定策略傳送Trap信息給管理站。

實現技術

4.1 SNMP Agent的實現
目前,已經有一些可用的SNMP Agent開發工具包,它們提供一些基本的框架平台,實現了Agent的通用功能,在其基礎上,開發者可以集中精力進行具體邏輯功能的實現,如MIB對象的數據採集等。這樣有利於簡化開發工作,加快開發進程。常見的SNMP Agent開發工具包有:Agent++、net-snmp、WinSnmp API(適用於Windows平台)等。
為了方便探測器Agent的實現,我們選擇了Agent++平台,它是免費的且原始碼公開。
Agent++是一套用於開發SNMP Agent的C++庫,它建立在SNMP++的基礎之上。Agent++提供了完整的協定處理框架,提供了標量對象和表對象等MIB對象的基類,通過繼承用戶可以方便地定義MIB對象。Agent++具有以下一些特點:
(1)功能強大,能夠實現各種複雜的MIB對象;
(2)簡單易用,開發人員無需深入了解底層的SNMP處理,僅使用一些簡單的類和接口,即可快速實現帶有各種MIB對象的Agent;
(3)擴展性強,方便定義和實現新的功能;
(4)可移植性好,代碼可以方便地移植到Windows、UNIX、Linux等平台上;
(5)支持SNMPv1和SNMPv2c;
(6)支持多執行緒處理,線上程中處理SNMP請求,可以進行並發的處理;
(7)支持MIB對象的持久保存,可將MIB對象保存到硬碟上,並可以從硬碟裝載;
(8)具有詳細的日誌功能。
4.2 網路數據包偵聽的實現
網路數據包的偵聽也可以使用一些現成的開發包來實現,winpcap和libpcap是比較著名的開發包,提供了較強的網路數據包截獲功能,其中,winpcap運行在Windows平台上,libpcap運行在UNIX和Linux平台上。
本項目使用libpcap作為數據包偵聽部分的開發包。
libpcap(Packet Capture Library),即數據包捕獲函式庫。在網路包抓取中libpcap是非常常用的一個庫,著名的tcpdump就是用它來實現的。libpcap是一個與實現無關的訪問作業系統所提供的分組捕獲函式庫,用於訪問數據鏈路層。這個庫為不同的平台提供了一致的C函式編程接口,在安裝了 libpcap 的平台上,以 libpcap 為接口寫的程式、套用,能夠自由地跨平台使用。它支持多種作業系統
libpcap 結構簡單,使用方便;它提供了20多個API封裝函式,我們利用這些API函式即可完成本網路探測器所需的網路數據包監聽功能。

結束語

針對網路管理系統的管理信息收集所存在的一些特殊問題,本文設計並實現一種網路探測器。在一個網路管理套用系統中,要根據具體情況決定是否為一些區域網路設定網路探測器。所以網路探測器是對本網路管理系統基本實現的補充,它可以使得本網管系統功能更加完善。實踐證明本實現方案簡單實用,達到了預期的目的。

相關詞條

熱門詞條

聯絡我們