SNMP學習的一點心得

2021-04-12 14:34:48 字數 2933 閱讀 2321

snmp的體系結構及工作原理

什麼是 snmp?

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

snmp主要部分

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

被監控裝置

**

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

網路管理工作站

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

網路管理協議

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

從被管理裝置中收集資料所遵循的原則及採用的方式

設計和構造網路管理的基礎結構時,需要遵守下列兩條網路管理的原則:

面向自陷的輪詢方法(trap-directed polling)是網路管理採用較有效的方式。網路管理工作站輪詢在被管理裝置中的**來收集所需的資料,並且在控制平台上使用數字或圖形的方式來顯示所 收集的資料,同時被管理裝置中的**可以在任何時候向網路管理工作站報告錯誤情況,如預制定閾值越界程度等,即所謂的snmp自陷(trap)。

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

管理**(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、編譯執行。

學習的一點心得

關於 理論上為每乙個實現的功能設計乙個函式,有利於 的分解 關於注釋 注釋有三個功能,1.說明用途 2解釋複雜 3.傳遞元資訊 作者,完成日期,修改的bug,待完成的功能,程式的功能,版權資訊等 因為 有時候並不是你來維護的。盡量使用英文注釋,乙個專案組要有統一的規範。關於命名 成員通常m開頭,布林...

學習的一點心得?

好的,又是一樣的夜晚,我對著電腦,右半腦其實還有點疼,越來越不知所措,不會的東西太多,自己學習很慢,似乎怎麼都不會有會的那一天。本來想找學姐問問這drl該怎麼學從哪開始,然後她說 是這樣的 然後還說了一些 鼓勵 我的話,其實hh老師是太聰明了,所以以為所有人都像他一樣聰明,而我們的作用就是告訴他,他...

學習C 的一點心得

跟大家嘮嘮我的工作經歷和學習c 的看法,也算是無病呻吟了。培訓班的第二個好處是,他能幫你快速的搭建乙個知識網路,教你一些簡單的例項,看似基礎不穩,其實這是非常好的,因為想要在日常工作中了解這些知識網路,可能要走好多歪路,比如你c 剛學完c 基礎,了解了一點winform和wpf的皮毛就去找工作了,其...