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

下載本文檔

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

文檔簡介

1、SNMP簡介及應(yīng)用設(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ù)加入到容器的過程11子代理調(diào)用container_load11數(shù)據(jù)加載過程12container_load流程136Trap146.1Trap作用146.2Trap的工作流程146.3Trap調(diào)用過程146.4Trap數(shù)據(jù)流166.5Trap

2、Index17參考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ò)管理的標(biāo)準(zhǔn)組成,包含一個應(yīng)用層協(xié)議(application layer protocol)、數(shù)據(jù)庫模型(database schema),和一組數(shù)據(jù)對象。(1) SNMP是為網(wǎng)絡(luò)管理服務(wù)而定義的應(yīng)用協(xié)議,在1

3、988年8月首次定義,由Internet IETF的研究小組為了解決Internet上的路由器管理問題而提出的,很快就在RFC1157中達到了正式標(biāo)準(zhǔn)。 (2) SNMP是NMS(Network Management System)和代理之間的異步請求和相應(yīng)協(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)方法,另一種是基于中斷(int

4、errupt-based)的方法。 (6) SNMP消息全部通過UDP端口161接收,只有Trap信息采用UDP端口162。 1.2 名詞解釋SNMP,Simple Network Management Protocol:簡單網(wǎng)絡(luò)管理協(xié)議 它是一個標(biāo)準(zhǔn)的用于管理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 of Management I

5、nformation:管理信息結(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:對象標(biāo)識符區(qū)分MIB的成員ASN.1: 高級數(shù)據(jù)描述語言,描述數(shù)據(jù)類型、結(jié)構(gòu)、組織及編碼方法。包含語法符號和編碼規(guī)則兩大部分。SNMP使用ASN.1描述協(xié)議數(shù)據(jù)單元(PDU)和管理對象信息庫(MIB)1.3 主要版本及特

6、點(1) 目前snmp有三個版本,v1,v2,v3。(2) v2, v1 的安全機制比較脆弱,通信不加密,所有通信字符串和數(shù)據(jù)都以明文形式發(fā)送。(3) v3提供了驗證機制、加密機制、時間同步機制等,安全性大大提高。(4) SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。對網(wǎng)絡(luò)的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負責(zé)回答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,set,trap(

7、1) get消息:Get-Request ,Get-Next-Request,Get-ResponseSNMP管理站用Get-Request消息從擁有SNMP代理的網(wǎng)絡(luò)設(shè)備中檢索信息,而SNMP代理則用Get-Response消息響應(yīng)。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管理站發(fā)送非請求消

8、息,一般用于描述某一事件的發(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),根在最上面,根沒有名字,也沒有標(biāo)號。圖2-1畫出了MIB的一部分,它又被稱為對象命名(object naming tree)。圖2- 1 MIB對象命名樹的頂級對象三個,在iso的下面有四個節(jié)點,每個節(jié)點有標(biāo)號。標(biāo)號一般是從0,1,2,3.分配的,對于

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

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

11、armNotif的介紹。表2-1certusnet子節(jié)點域名數(shù)據(jù)庫iptv-watcherOID描述audiostreambwTableaudiostreambw帶寬信息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.1.4MOS值channelinfoTablechanneli

12、nfo.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.8videostreampkttranssumTablestreampkttranssum.1.3.6.1.4.1.33620.1.9aud

13、iostreamstatusTablestreamstatus.1.3.6.1.4.1.33620.1.10音頻流狀態(tài)信息videostreamstatusTablestreamstatus.11視頻流狀態(tài)信息audiostreamtr101290p1Tablestreamtr101290p12videostreamtr101290p1Tablestreamtr101290p13audiostreamtr101290p2Tablestreamtr101290p24videostreamtr101290p2Tablestreamtr101290p25audiostreamtransprotoco

14、lTablestreamtransprotocol6videostreamtransprotocolTablestreamtransprotocol7videostreamdescTablevideostreamdesc8videostreamframeTablevideostreamframe9videostreamframebwTablevideostreamframebw.1.3.6.1.4.1.33620.1.20videostreamframejitterTablevideostreamframejitter.1.3.6.1.4.1.33620.1.21videostreaminte

15、rvalTablevideostreaminterval.1.3.6.1.4.1.33620.1.22videostreamintervalextTablevideostreamintervalext.1.3.6.1.4.1.33620.1.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

16、.1.26baseip2indexTablechannelinfo.1.3.6.1.4.1.33620.1.27索引表lastqualifiedhistTablelastqualifiedhist.1.3.6.1.4.1.33620.1.28streammdiqualTablestreammdiqual.1.3.6.1.4.1.33620.1.29表2-2 channelAlarmNotif域名Channelalarm表OID描述channelAddresschannel_address頻道地址mosValuemosvalue.1.3.6.1.4.1.33620.2.2MOS值vstqvstq

17、.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.33620.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_df0DFmdiMlrmdi_mlr1

18、MLR3 索引對MIB變量進行操作,必須對MIB的每個變量進行標(biāo)識。只有葉子節(jié)點是可操作的, SNMP沒法處理表格的一整行或一整列. l 簡單變量 。對于簡單變量,".0"就是表示索引。例如:UDP-MIB:udpInDatagrams.0 = Counter32: 179l 表格 每個MIB中的索引都包含一個以上的索引。對于audiostreambw表來說,MIB定義了包含channeladdr和channelport對應(yīng)的索引。在表格中,一個給定變量的所有實例都在下個變量的所有實例之前顯示。這意味表格的操作順序是先行后列的。表格中對行的排序和表格中索引的值有關(guān)。關(guān)于索引

19、查詢的主要是在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主要作用是來生成表索引。如3-1 84就是一個索引,是表audiostreambwTable的一條索引。圖3-1索引的獲取過程Manager端

20、在進行snmpget,snmpgetnext操作獲取數(shù)據(jù),必須知道要獲取數(shù)據(jù)的完整OID,否則無法獲得數(shù)據(jù)。如圖3-1顯示Index獲取過程。Manager端通過查詢baseip2indexTable獲取IP 和Port對應(yīng)的唯一索引,索引加上表名,列名合成完整OID。如下圖所示。圖3-2 OID解釋# 運行獲取數(shù)據(jù):CERTUSNET-IPTV-WATCHER-MIB:adsmbwpeakaudiobandwidth.84 = Counter64: 1880184 Manager與AgentSnmpd是一個守護進程,它是作為后臺進程啟動簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)代理程序。接受客戶端的請求并

21、回應(yīng)。當(dāng)某些事件發(fā)生,代理進程主動發(fā)出的報文(trap操作),通知管理進程特定事件發(fā)生。在進行第三方擴展代理,用mib2c生成MIB表節(jié)點對應(yīng)的代碼。調(diào)用第三方接口。4.1 Manager如圖4-1描述Manager端的請求與接收回應(yīng)過程圖4- 1 Manager端與Agent交互4.2 AgentAgent代理端要進行PDU數(shù)據(jù)包解析,查詢MIB,將操作結(jié)果封裝成PDU發(fā)送回請求端。如圖4-2圖4- 2 Agent處理過程Main Loop of Agent: 1. 代理在默認161端口等待數(shù)據(jù)到來2. 讀取UDP數(shù)據(jù)報,標(biāo)記傳輸?shù)刂凡l(fā)送實體. 3. 跟蹤被代理處理邏輯請求ID 4. 序列

22、化數(shù)據(jù)報成為ASN.1格式 5. 轉(zhuǎn)換成snmp消息6. 檢測版本號 7. 檢測團體名(相當(dāng)于密碼),如果是未知的,則代理通過162端口發(fā)送AUTHENTICATION trap 到管理端并丟棄數(shù)據(jù)包。8. 代理遍歷請求的變量列表,代理調(diào)用訪問程序執(zhí)行所需的操作。5 GET 5.1 代理流程以adudiostreambwTable為例,運行代理:./audiostreambwTable f L D audiostreambwTable MSnmpwalk測試:rootice chulk# snmpwalk -v2c -c public 127.0.0.1 audiostreambwTable一

23、個子代理的大概運行流程如圖5-1 圖5- 1子代理運行過程5.2 接口介紹公共接口:initialize_interface、shutdown_interface、registration_get、registration_set container_get、container_size、allocate_rowreq_ctx、release_rowreq_ctx、index_to_oid index_from_oid、_row_find_by_mib_index、_container_init、_container_shutdown、_container_load、_container_fr

24、ee。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:容器大小allocate_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_f

25、rom_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)及最終調(diào)用是在xxxTable_data_access.c文件中,而我們要更改的具體實現(xiàn)數(shù)據(jù)加載在xxxTable_container_load接口。5.3 數(shù)據(jù)加入到容器的過程5.3.1 子代理調(diào)用container_load以audio

26、streambwTable表為例,介紹子代理程序?qū)?shù)據(jù)加入容器的過程,在audiostreambwTable_subagent的main函數(shù)中調(diào)用init_audiostreambwTable初始化mib代碼,一直到調(diào)用audiostreambwTable_container_load加載數(shù)據(jù)。init_audiostreambwTable->initialize_table_audiostreambwTable->_audiostreambwTable_initialize_interface->_audiostreambwTable_container_init >

27、netsnmp_cache_create(_cache_load)->audiostreambwTable_container_load5.3.2 數(shù)據(jù)加載過程圖5- 2數(shù)據(jù)封裝到容器從數(shù)據(jù)庫獲取數(shù)據(jù),對應(yīng)一張表的數(shù)據(jù),相對于MIB中的表節(jié)點的值,將從數(shù)據(jù)庫獲取的數(shù)據(jù)進行操作放入容器中,如圖5-2。. 圖5- 3加載過程如上圖,從數(shù)據(jù)庫iptv-watcher中將audiostreambw這張表的數(shù)據(jù)取出來,通過類型轉(zhuǎn)換加入rowreq_ctx的data結(jié)構(gòu)中,每次載入一行記錄,表以channel_address和channel_port建立索引,圖中audiostreambwIndex

28、為audiostreambwTable的索引,最后調(diào)用CONTAINER_INSERT載入容器,再進行查詢獲取對應(yīng)的數(shù)據(jù),反饋給發(fā)起get的Manager端。5.3.3 container_load流程6 Trap6.1 Trap作用在SNMP 管理站中,運行著一個后臺進程snmpd,負責(zé)接收和確認SNMP 請求及Trap信號、處理請求并返回結(jié)果、向配置文件中的所有主機發(fā)送Trap 信號。TRAP是提供從代理進程到管理站的異步報告機制。為了使管理站能夠及時而又有效地對被管理設(shè)備進行監(jiān)控,同時又不過分增加網(wǎng)絡(luò)的通信負載,必須使用陷入(TRAP)制導(dǎo)的輪訊過程。代理進程負責(zé)在必要時向管理站報告異常

29、事件,得到異常事件的報告后,管理站可以查詢有關(guān)的代理,以便得到更具體的信息,對事件的原因做進一步的分析。6.2 Trap的工作流程如圖6-1 Agent發(fā)送trap消息給Manager端agent端:編寫mib文件,確定好trap名稱等信息。命令方式:發(fā)送各種trap命令(manager地址后面一定要加端口號162),在manager端看反應(yīng)結(jié)果,在agent端無反應(yīng)以下都未實現(xiàn)。自動觸發(fā):配置snmpd.conf設(shè)置觸發(fā)trap,系統(tǒng)發(fā)生某類錯誤時會自動觸發(fā)相應(yīng)類型的trap,發(fā)送給manager。程序方式:一部份trap需要寫c語言程序,用相應(yīng)的api(send_v2trap)發(fā)送。manager端:配置snmptrapd.conf文件,設(shè)置訪問權(quán)限。將mib導(dǎo)入到mibs文件夾中。編寫處理trap的程序。配置snmptrapd.conf文件,添加traphandler項,將不同的trap對應(yīng)到不同的處理程序上。圖6- 1 Trap模型6.3 Trap調(diào)用過程圖6- 2 Trap過程 如上圖代理啟動,進行必要的參數(shù)處理,然后初始化庫,再初始化ChannelAlarm mib 代碼,調(diào)用trapIndexInit初始化索引trapIndex 為表channelAlarm ID最小的值,

溫馨提示

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

評論

0/150

提交評論