開啟主選單

求真百科

探測

來自 呢圖網 的圖片

中文名稱;探測

拼音;tàn cè

外文名稱;sound

注音;ㄊㄢˋ ㄘㄜˋ

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

目錄

詞語解釋

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函數即可完成本網絡探測器所需的網絡數據包監聽功能。

結束語

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

參考來源

中國最深的探測器,能潛入海底約1.1萬米處

參考資料

  1. 探測項鍊有什麼用,7麗女性網 , 2022年8月29日