snmp簡介及應用設(shè)計_第1頁
snmp簡介及應用設(shè)計_第2頁
snmp簡介及應用設(shè)計_第3頁
snmp簡介及應用設(shè)計_第4頁
snmp簡介及應用設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、SNMP簡介及應用設(shè)計目 錄1SNMP簡介11.1snmp概況11.2名詞解釋11.3主要版本及特點21.4SNMP參考模型22CERTUSNET節(jié)點介紹32.1Certusnet OID32.2CERTUSNET MIB庫43索引64Manager與Agent74.1Manager84.2Agent85GET95.1代理流程95.2接口介紹115.3數(shù)據(jù)加入到容器的過程115.3.1子代理調(diào)用container_load115.3.2數(shù)據(jù)加載過程125.3.3container_load流程136Trap146.1Trap作用146.2Trap的工作流程146.3Trap調(diào)用過程146.4T

2、rap數(shù)據(jù)流166.5TrapIndex17參考191 SNMP簡介1.1 snmp概況簡單網(wǎng)絡(luò)管理協(xié)議(SNMP,Simple Network Management Protocol)構(gòu)成了互聯(lián)網(wǎng)工程工作小組(IETF,Internet Engineering Task Force)定義的internet協(xié)議簇的一部分。該協(xié)議能夠支持網(wǎng)絡(luò)管理系統(tǒng),用以監(jiān)測連接到網(wǎng)絡(luò)上的設(shè)備是否有任何引起管理上關(guān)注的情況。它由一組網(wǎng)絡(luò)管理的標準組成,包含一個應用層協(xié)議(application layer protocol)、數(shù)據(jù)庫模型(database schema),和一組數(shù)據(jù)對象。(1) SNMP是為網(wǎng)絡(luò)

3、管理服務而定義的應用協(xié)議,在1988年8月首次定義,由Internet IETF的研究小組為了解決Internet上的路由器管理問題而提出的,很快就在RFC1157中達到了正式標準。 (2) SNMP是NMS(Network Management System)和代理之間的異步請求和相應協(xié)議。 (3) SNMP是由一系列協(xié)議組和規(guī)范組成的,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。 (4) SNMP被設(shè)計成與協(xié)議無關(guān),所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。 (5) 從被管理設(shè)備中收集數(shù)據(jù)有兩種方法:一種是輪詢(polling-only)

4、方法,另一種是基于中斷(interrupt-based)的方法。 (6) SNMP消息全部通過UDP端口161接收,只有Trap信息采用UDP端口162。 1.2 名詞解釋SNMP,Simple Network Management Protocol:簡單網(wǎng)絡(luò)管理協(xié)議 它是一個標準的用于管理IP網(wǎng)絡(luò)上結(jié)點的協(xié)議。此協(xié)議包括了監(jiān)視和控制變量集以及用于監(jiān)視設(shè)備的兩個數(shù)據(jù)格式:SMI和MIB。 MIB, Management Information Base:管理信息庫 由網(wǎng)絡(luò)管理協(xié)議訪問的管理對象數(shù)據(jù)庫,它包括SNMP可以通過網(wǎng)絡(luò)設(shè)備的SNMP管理代理進行設(shè)置的變量。 SMI,Structure

5、of Management Information:管理信息結(jié)構(gòu) 用于定義通過網(wǎng)絡(luò)管理協(xié)議可訪問的對象的規(guī)則。SMI定義在MIB中使用的數(shù)據(jù)類型及網(wǎng)絡(luò)資源在MIB中的名稱或表示。 PDU,Protocol Data Unit:協(xié)議數(shù)據(jù)單元 在網(wǎng)絡(luò)中傳送的數(shù)據(jù)包。 SNMP規(guī)定了5種協(xié)議數(shù)據(jù)單元PDU(也就是SNMP報文),用來在管理進程和代理之間的交換。OID,Object Identifier:對象標識符區(qū)分MIB的成員ASN.1:高級數(shù)據(jù)描述語言,描述數(shù)據(jù)類型、結(jié)構(gòu)、組織及編碼方法。包含語法符號和編碼規(guī)則兩大部分。SNMP使用ASN.1描述協(xié)議數(shù)據(jù)單元(PDU)和管理對象信息庫(MIB)1

6、.3 主要版本及特點(1) 目前snmp有三個版本,v1,v2,v3。(2) v2, v1 的安全機制比較脆弱,通信不加密,所有通信字符串和數(shù)據(jù)都以明文形式發(fā)送。(3) v3提供了驗證機制、加密機制、時間同步機制等,安全性大大提高。(4) SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。對網(wǎng)絡(luò)的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負責回答SNMP管理工作站關(guān)于MIB定義信息的各種查詢。1.4 SNMP參考模型由以下4個主要部分構(gòu)成:互聯(lián)網(wǎng)絡(luò),網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)管理進程和被管網(wǎng)絡(luò)資源圖1-1snmp參考模型包含三種消息類型:get,

7、set,trap(1) get消息:Get-Request ,Get-Next-Request,Get-ResponseSNMP管理站用Get-Request消息從擁有SNMP代理的網(wǎng)絡(luò)設(shè)備中檢索信息,而SNMP代理則用Get-Response消息響應。Get-Next-Request用于和Get-Request組合起來查詢特定的表對象中的列元素(2) Set消息:Set-Request,SetResponseSNMP管理站用Set-Request 可以對網(wǎng)絡(luò)設(shè)備進行遠程配置(包括設(shè)備名、設(shè)備屬性、刪除設(shè)備或使某一個設(shè)備屬性有效/無效等)(3) Trap消息:SNMP代理使用Trap向SNMP

8、管理站發(fā)送非請求消息,一般用于描述某一事件的發(fā)生。MIB2 CERTUSNET節(jié)點介紹2.1 Certusnet OID管理信息庫(Management Information Base)MIB指明了網(wǎng)絡(luò)元素所維持的變量(即能夠被管理進程查詢和設(shè)置的信息)。MIB給出了一個網(wǎng)絡(luò)中所有可能的被管理對象的集合的數(shù)據(jù)結(jié)構(gòu)。SNMP的管理信息庫和域名DNS相似的樹型結(jié)構(gòu),根在最上面,根沒有名字,也沒有標號。圖2-1畫出了MIB的一部分,它又被稱為對象命名(object naming tree)。圖2- 1 MIB對象命名樹的頂級對象三個,在iso的下面有四個節(jié)點,每個節(jié)點有標號。標號一般是從0,1,2

9、,3.分配的,對于某一個節(jié)點就可以用一串標號來標識,例如internet節(jié)點可以標識為:.1.3.6.1,system可以標識為.1.3.6.1.2.1.1。enterprises節(jié)點標識為.1.3.6.1.4.1 。Enterprises節(jié)點比較特殊,其所屬節(jié)點數(shù)量比較大。Certusnet從IANA組織獲取的標號為33620,certusnet完整OID為.1.3.6.1.4.1.33620,圖中紅色字體顯示部分。2.2 CERTUSNET MIB庫Certusnet主要有兩個mib庫文件:分別為l CERTUSNET-IPTV-WATCHER-MIB.txtl IPTV-WATCH-NO

10、TIF-MIB.txtCERTUSNET-IPTV-WATCHER-MIB.txt中定義iptvWatcher模塊(如圖2-2),這個模塊主要負責處理來自Manager端的get消息,set消息。IPTV-WATCH-NOTIF-MIB.txt中定義channelAlarmNotif模塊(如圖2-3),這個模塊與iptvWatcher不同,主要負責發(fā)送trap消息到Manager端。圖2- 2 iptvWatcher模塊圖2- 3channelAlarmNotif模塊關(guān)于這些MIB節(jié)點的OID以及所獲取數(shù)據(jù)的對應數(shù)據(jù)庫的表大概介紹,如表2-1是iptv-watcher模塊的節(jié)點介紹,表2-2是

11、channelAlarmNotif的介紹。表2-1certusnet子節(jié)點域名數(shù)據(jù)庫iptv-watcherOID描述audiostreambwTableaudiostreambw.1.3.6.1.4.1.33620.1.1帶寬信息audiostreamdescTableaudiostreamdesc.1.3.6.1.4.1.33620.1.2audiostreamintervalTableaudiostreaminterval.1.3.6.1.4.1.33620.1.3傳輸?shù)臄?shù)據(jù)包信息audiostreamqualTableaudiostreamqual.1.3.6.1.4.1.33620.

12、1.4MOS值channelinfoTablechannelinfo.1.3.6.1.4.1.33620.1.5頻道信息audiostreampkttransTablestreampkttrans.1.3.6.1.4.1.33620.1.6音頻流數(shù)據(jù)包信息videostreampkttransTablestreampkttrans.1.3.6.1.4.1.33620.1.7視頻流數(shù)據(jù)包信息audiostreampkttranssumTablestreampkttranssum.1.3.6.1.4.1.33620.1.8videostreampkttranssumTablestreampkttr

13、anssum.1.3.6.1.4.1.33620.1.9audiostreamstatusTablestreamstatus.1.3.6.1.4.1.33620.1.10音頻流狀態(tài)信息videostreamstatusTablestreamstatus.1.3.6.1.4.1.33620.1.11視頻流狀態(tài)信息audiostreamtrp1Tablestreamtrp1.1.3.6.1.4.1.33620.1.12videostreamtrp1Tablestreamtrp1.1.3.6.1.4.1.33620.1.13audiostreamtrp2Tablestreamtrp2.1.3.6.1

14、.4.1.33620.1.14videostreamtrp2Tablestreamtrp2.1.3.6.1.4.1.33620.1.15audiostreamtransprotocolTablestreamtransprotocol.1.3.6.1.4.1.33620.1.16videostreamtransprotocolTablestreamtransprotocol.1.3.6.1.4.1.33620.1.17videostreamdescTablevideostreamdesc.1.3.6.1.4.1.33620.1.18videostreamframeTablevideostream

15、frame.1.3.6.1.4.1.33620.1.19videostreamframebwTablevideostreamframebw.1.3.6.1.4.1.33620.1.20videostreamframejitterTablevideostreamframejitter.1.3.6.1.4.1.33620.1.21videostreamintervalTablevideostreaminterval.1.3.6.1.4.1.33620.1.22videostreamintervalextTablevideostreamintervalext.1.3.6.1.4.1.33620.1.

16、23videostreamqualTablevideostreamqual.1.3.6.1.4.1.33620.1.24videostreamsceneTablevideostreamscene.1.3.6.1.4.1.33620.1.25lastupdateintervalTablelastupdateinterval.1.3.6.1.4.1.33620.1.26baseip2indexTablechannelinfo.1.3.6.1.4.1.33620.1.27索引表lastqualifiedhistTablelastqualifiedhist.1.3.6.1.4.1.33620.1.28

17、streammdiqualTablestreammdiqual.1.3.6.1.4.1.33620.1.29表2-2 channelAlarmNotif域名Channelalarm表OID描述channelAddresschannel_address.1.3.6.1.4.1.33620.2.1頻道地址mosValuemosvalue.1.3.6.1.4.1.33620.2.2MOS值vstqvstq.1.3.6.1.4.1.33620.2.3codecQuant.codecquant.1.3.6.1.4.1.33620.2.4alarmTimealarmtime.1.3.6.1.4.1.336

18、20.2.5告警時間causeTypetype.1.3.6.1.4.1.33620.2.6mediaRatemedia_rate.1.3.6.1.4.1.33620.2.7lossRatelossrate.1.3.6.1.4.1.33620.2.8channelPortchannel_port.1.3.6.1.4.1.33620.2.9頻道端口mdiDfmdi_df.1.3.6.1.4.1.33620.2.10DFmdiMlrmdi_mlr.1.3.6.1.4.1.33620.2.11MLR3 索引對MIB變量進行操作,必須對MIB的每個變量進行標識。只有葉子節(jié)點是可操作的, SNMP沒法處理

19、表格的一整行或一整列. l 簡單變量 對于簡單變量的處理是通過在其對象標識后面添加.0處理。例如對象標識是1.3.6.1.2.1.7.1,則實例標識是1.3.6.1.2.1.7.1.0。對于簡單變量,.0就是表示索引。例如:rootice chulk# snmpget -v2c -c certus 127.0.0.1 .1.3.6.1.2.1.7.1.0UDP-MIB:udpInDatagrams.0 = Counter32: 179l 表格 每個MIB中的索引都包含一個以上的索引。對于audiostreambw表來說,MIB定義了包含channeladdr和channelport對應的索引。

20、在表格中,一個給定變量的所有實例都在下個變量的所有實例之前顯示。這意味表格的操作順序是先行后列的。表格中對行的排序和表格中索引的值有關(guān)。關(guān)于索引查詢的主要是在baseip2indexTable節(jié)點。由表2-1可以看出節(jié)點數(shù)據(jù)來自數(shù)據(jù)庫iptv-watcher的channelinfo表,baseip2indexTable加載ip和port兩項數(shù)據(jù)。container_load接口里用的sql語句:SELECT channeladdr ,channelport FROM channelinfo WHERE monitored = t。channeladdr和channelport主要作用是來生成表

21、索引。如3-1 84就是一個索引,是表audiostreambwTable的一條索引。圖3-1索引的獲取過程Manager端在進行snmpget,snmpgetnext操作獲取數(shù)據(jù),必須知道要獲取數(shù)據(jù)的完整OID,否則無法獲得數(shù)據(jù)。如圖3-1顯示Index獲取過程。Manager端通過查詢baseip2indexTable獲取IP 和Port對應的唯一索引,索引加上表名,列名合成完整OID。如下圖所示。圖3-2 OID解釋#snmpget -v2c -c certus 127.0.0.1 .1.3.6.1.4.1.33620.1.1.1.4.84 運行獲取數(shù)據(jù):CERTUSNET-IPTV-W

22、ATCHER-MIB:adsmbwpeakaudiobandwidth.84 = Counter64: 4 Manager與AgentSnmpd是一個守護進程,它是作為后臺進程啟動簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)代理程序。接受客戶端的請求并回應。當某些事件發(fā)生,代理進程主動發(fā)出的報文(trap操作),通知管理進程特定事件發(fā)生。在進行第三方擴展代理,用mib2c生成MIB表節(jié)點對應的代碼。調(diào)用第三方接口。4.1 Manager如圖4-1描述Manager端的請求與接收回應過程圖4- 1 Manager端與Agent交互4.2 AgentAgent代理端要進行PDU數(shù)據(jù)包解析,查詢MIB,將操作結(jié)果封

23、裝成PDU發(fā)送回請求端。如圖4-2圖4- 2 Agent處理過程Main Loop of Agent: 1. 代理在默認161端口等待數(shù)據(jù)到來2. 讀取UDP數(shù)據(jù)報,標記傳輸?shù)刂凡l(fā)送實體. 3. 跟蹤被代理處理邏輯請求ID 4. 序列化數(shù)據(jù)報成為ASN.1格式 5. 轉(zhuǎn)換成snmp消息6. 檢測版本號 7. 檢測團體名(相當于密碼),如果是未知的,則代理通過162端口發(fā)送AUTHENTICATION trap 到管理端并丟棄數(shù)據(jù)包。8. 代理遍歷請求的變量列表,代理調(diào)用訪問程序執(zhí)行所需的操作。5 GET 5.1 代理流程以adudiostreambwTable為例,運行代理:./audios

24、treambwTable f L D audiostreambwTable MSnmpwalk測試:rootice chulk# snmpwalk -v2c -c public 127.0.0.1 audiostreambwTable一個子代理的大概運行流程如圖5-1 圖5- 1子代理運行過程5.2 接口介紹公共接口:initialize_interface、shutdown_interface、registration_get、registration_set container_get、container_size、allocate_rowreq_ctx、release_rowreq_ct

25、x、index_to_oid index_from_oid、_row_find_by_mib_index、_container_init、_container_shutdown、_container_load、_container_free。initialize_interface:初始化表定義,定義一張表的內(nèi)容和它的結(jié)構(gòu)化shutdown_interface:關(guān)閉表并關(guān)閉容器registration_get:表的get方法注冊,處理get消息registration_set:表的set方法注冊,處理set消息container_get:返回一個容器container_size:容器大小all

26、ocate_rowreq_ctx:為一張表數(shù)據(jù)的分配內(nèi)存,xxxTable_rowreq_ctx結(jié)構(gòu)存放表的索引以及表數(shù)據(jù)。release_rowreq_ctx:為表結(jié)構(gòu)釋放內(nèi)存index_to_oid:轉(zhuǎn)換 索引為OIDindex_from_oid:從OID獲取索引_row_find_by_mib_index:這個接口用來查詢get指定的索引數(shù)據(jù)_container_init:容器的初始化_container_shutdown:容器的關(guān)閉_container_load:load initial data_container_free:container clean up這些接口的具體實現(xiàn)及最

27、終調(diào)用是在xxxTable_data_access.c文件中,而我們要更改的具體實現(xiàn)數(shù)據(jù)加載在xxxTable_container_load接口。5.3 數(shù)據(jù)加入到容器的過程5.3.1 子代理調(diào)用container_load以audiostreambwTable表為例,介紹子代理程序?qū)?shù)據(jù)加入容器的過程,在audiostreambwTable_subagent的main函數(shù)中調(diào)用init_audiostreambwTable初始化mib代碼,一直到調(diào)用audiostreambwTable_container_load加載數(shù)據(jù)。init_audiostreambwTable-initialize

28、_table_audiostreambwTable-_audiostreambwTable_initialize_interface-_audiostreambwTable_container_init netsnmp_cache_create(_cache_load)-audiostreambwTable_container_load5.3.2 數(shù)據(jù)加載過程圖5- 2數(shù)據(jù)封裝到容器從數(shù)據(jù)庫獲取數(shù)據(jù),對應一張表的數(shù)據(jù),相對于MIB中的表節(jié)點的值,將從數(shù)據(jù)庫獲取的數(shù)據(jù)進行操作放入容器中,如圖5-2。. 圖5- 3加載過程如上圖,從數(shù)據(jù)庫iptv-watcher中將audiostreambw這張表

29、的數(shù)據(jù)取出來,通過類型轉(zhuǎn)換加入rowreq_ctx的data結(jié)構(gòu)中,每次載入一行記錄,表以channel_address和channel_port建立索引,圖中audiostreambwIndex為audiostreambwTable的索引,最后調(diào)用CONTAINER_INSERT載入容器,再進行查詢獲取對應的數(shù)據(jù),反饋給發(fā)起get的Manager端。5.3.3 container_load流程6 Trap6.1 Trap作用在SNMP 管理站中,運行著一個后臺進程snmpd,負責接收和確認SNMP 請求及Trap信號、處理請求并返回結(jié)果、向配置文件中的所有主機發(fā)送Trap 信號。TRAP是提

30、供從代理進程到管理站的異步報告機制。為了使管理站能夠及時而又有效地對被管理設(shè)備進行監(jiān)控,同時又不過分增加網(wǎng)絡(luò)的通信負載,必須使用陷入(TRAP)制導的輪訊過程。代理進程負責在必要時向管理站報告異常事件,得到異常事件的報告后,管理站可以查詢有關(guān)的代理,以便得到更具體的信息,對事件的原因做進一步的分析。6.2 Trap的工作流程如圖6-1 Agent發(fā)送trap消息給Manager端agent端:編寫mib文件,確定好trap名稱等信息。命令方式:發(fā)送各種trap命令(manager地址后面一定要加端口號162),在manager端看反應結(jié)果,在agent端無反應以下都未實現(xiàn)。自動觸發(fā):配置snm

31、pd.conf設(shè)置觸發(fā)trap,系統(tǒng)發(fā)生某類錯誤時會自動觸發(fā)相應類型的trap,發(fā)送給manager。程序方式:一部份trap需要寫c語言程序,用相應的api(send_v2trap)發(fā)送。manager端:配置snmptrapd.conf文件,設(shè)置訪問權(quán)限。將mib導入到mibs文件夾中。編寫處理trap的程序。配置snmptrapd.conf文件,添加traphandler項,將不同的trap對應到不同的處理程序上。圖6- 1 Trap模型6.3 Trap調(diào)用過程圖6- 2 Trap過程 如上圖代理啟動,進行必要的參數(shù)處理,然后初始化庫,再初始化ChannelAlarm mib 代碼,調(diào)用trapIndexInit初始化索引trapIndex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論