SNMP的體系結構及工作原理

2021-04-23 12:48:27 字數 4512 閱讀 4125

網管系統軟體是由以下部分組成的

管理員使用的工作站,通過網管軟體檢視和分析網管資料。

網管**。網管**一般分為兩個功能模組和乙個公用模組mib庫

查詢/設定模組

此模組接受來自manager的查詢和設定指令,並根據指令處理相關資料,如將被查詢的資料返回給manager,或使設定的資料對相關device生效。

對於snmp agent,此模組至少需要實現以下協議介面:

get-request

set-request

get-next-request

get-reponse

告警模組

告警模組將裝置產生的告警傳送給manager。對於snmp agent.此模組至少需要實現trap協議介面。

mib庫

mib(管理資訊庫)儲存被管理裝置的相關管理資訊。在snmp agent裡, mib通常用文字檔案格式儲存。

乙個mib描述了包含在資料庫中的物件或表項。每乙個物件或表項都有以下四個屬性:

物件型別(object type)

語法(syntax)

訪問(access)

狀態(status)

在snmp規範之一的管理資訊結構與標識(smi;rfc 1155/1065)規範中定義了這些屬性。smi對於mib來說就相當於模式對於資料庫。

被管理裝置,可以是一台乙個程序,計算機,或者分布式的系統。這些裝置負責產生和收集諸如配置,效能和業務資料以及告警,是網管資料的**,同時負責原始資料的整理和統計。device和agent之間的互動協議可以不受snmp協議限制,可以採用任何一種協議交換資料。

可見agent在網管系統結構的位置相當於管理器和被管裝置之間的閘道器和協議轉換器。對agent的功能需求的範圍應該為:

協議轉換。將snmp協議和被管裝置之間的協議互相轉換

**請求。包括向被管裝置**查詢,設定請求。向manager**裝置產生的告警

通過mib庫維護被管裝置的資訊結構

對manager提供乙個統一的網管介面,無論被管裝置有多複雜,對manager來說只需要和agent互動就可以獲得所有被管裝置的網管資訊

不需要牽涉諸如輪巡,告警策略等網管業務邏輯。也不參與被管裝置本身對網管資料的處理流程。這些由被管裝置的網管業務邏輯層自行處理。

不需要對資料進行統計分析

不需要儲存歷史或實時網管資料

可見對於網管系統來說,agent功能明確,結構相對簡單,雖然必不可少但並非核心部件,並且snmp agent已經是事實上的工業標準,有大量的開發包幫助開發人員快速的實現agent,可以讓開發人員將精力投入到網管業務邏輯上。

什麼是 snmp?

snmp是一系列協議組和規範,其提供了一種從網路中的裝置中收集網路管理資訊的方 

法。snmp也為裝置向網路管理工作站報告問題和錯誤提供了一種方法。其網路管理主 

要分為四部分被管理節點(裝置)、**、網路管理工作站、網路管理協議。

snmp主要部分

被管理節點(裝置)網路管理協議

被監控裝置

**

用來跟蹤被管理裝置狀態的特殊軟體或韌體

網路管理工作站

與在不同的被管理節點中的**通訊,並且顯示這些**狀態的中心裝置

網路管理協議

被網路管理工作站和**用來交換資訊的協議

**的概念及所提供的服務

管理**(agent)是一種特殊的軟體(或韌體),它包含了關於乙個特殊裝置及該裝置所處環境的資訊。

其提供的服務:

mib概念

mib被稱為管理資訊庫,乙個mib描述了包含在資料庫中的物件或表項。

簡單網路管理協議

snmp請求/響應報文

簡單網路管理協議允許網路管理工作站軟體與被管理裝置中的**進行通訊。這種通訊可以包括來自管理工作站的詢問訊息、來自**的應答訊息或者來自**給管理工作站的自陷訊息。

snmpv1實現起來很簡單,其包含5個請求/響應原語:

報文格式

ip首部

udp首部

版本共同體

pdu型別(0-3)

請求標識

差錯狀態(0-5)

差錯索引名稱值

名稱值...

pdu型別4

企業**位址

trap型別(0-6)

特定**

時間戳名稱

值...

pdu型別名稱0

get-request

1get-next-request

2get-response

3set-request

4trap

snmp開發工具

開發工具的使用

adventnet所提供的的開發工具包,支援多種平台。

microsoft virtual studio 6.0,windows下c++語言的開發包。ms自身提供一組稱為winsnmp的api(在msdn中提供詳細文件),而且ms提供基於agent service的snmp extension agent開發。

ucd-snm(net-snmp)p是linux平台下著名的c語言snmp開發包,公開原始碼,是最常用的開發agent的軟體包。

輔助工具的使用

adventnet所提供的對mib開發一系列開發工具包,包括:

熟悉snmp的開發過程

snmp開發流程

mib的建立和原始碼生成

首先第一步是mib設計,開始mib設計的時候要確定將被管理的物件納入管理資訊庫,最終實現asn.1的文件,在此可以使用adventnet所提供的mib editor來實現。通過mib編譯器將asn.1的文件編譯成c檔案和標頭檔案,可以使用mib compiler編譯。

agent的開發

agent++支援多種平台,主要有solaris, hp unix, windows等。使用方法稍有不同,但原理一致,即生成庫檔案,進行開發應用時使用標頭檔案及庫檔案即可。

 unix下直接進行make,如果有問題對makefile中的一些巨集/變數進行調整。在solaris下基本沒有問題。

 windows下vc6編譯請參考附錄

snmp++支援多種平台,主要有solaris, hp unix, windows等。使用方法稍有不同,但原理一致,即生成庫檔案,進行開發應用時使用標頭檔案及庫檔案即可。

附錄:windows下vc6編譯

建立專案,加入所有的原始檔和標頭檔案後。

要在project的setting中設定如下項:

1 在c++頁,/i 項加入agent++的include和snmp++的include 目錄

2、設定成mtd 多執行緒debug模式。

3、 編譯執行。

以上用來編譯agent++庫。

對於agent++的例子,要在project的setting中設定如下項:

1、建立win32的控制台程式;

2、加入程式**;

3、加入snmp++.lib和agent++.lib;

4、 在c++頁,/i 項加入agent++的include和snmp++的include 目錄

5、設定成mtd 多執行緒debug模式。

6、在link頁,加入ws2_32.lib

7、加入/nodefaultlib:"libcmtd.lib"

8、編譯執行。

相關參考

SNMP的體系結構及工作原理

snmp的體系結構及工作原理 什麼是 snmp?snmp是一系列協議組和規範,其提供了一種從網路中的裝置中收集網路管理資訊的方 法。snmp也為裝置向網路管理工作站報告問題和錯誤提供了一種方法。其網路管理主 要分為四部分被管理節點 裝置 網路管理工作站 網路管理協議。snmp主要部分 被管理節點 裝...

搜尋引擎工作原理 體系結構

今天福建seo要和大家分享的是搜尋引擎的體系結構,搜尋引擎是乙個很龐大的系統,由許多的部分組成,按模組來分的話,可以分成蜘蛛 排程器 網頁資料庫 網頁分析模組 索引器等等,按過程來分的話可以分為網頁蒐集 預處理 查詢服務。那麼這個系統的結構是什麼樣的呢?本節福建seo可以給大家一點介紹 圖中的每個節...

SNMP的工作原理

snmp network management protocol,簡單網路管理協議 首先是由ietf的研究小組為了解決internet上的路由器管理問題而提出的。snmp的設計原則是簡單 性和擴充套件性。簡單性是通過資訊型別限制 請求響應或協議而取得。擴充套件性是通過將管理資訊模型與協議 被管理物件...