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頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

.z.---.可修編.SNMP簡介及應(yīng)用設(shè)計-.z.目錄1SNMP簡介11.1snmp概況11.2名詞解釋11.3主要版本及特點21.4SNMP參考模型22CERTUSNET節(jié)點介紹32.1CertusnetOID32.2CERTUSNETMIB庫43索引64Manager與Agent74.1Manager84.2Agent85GET95.1代理流程95.2接口介紹115.3數(shù)據(jù)加入到容器的過程11子代理調(diào)用container_load11數(shù)據(jù)加載過程12流程136Trap146.1Trap作用146.2Trap的工作流程146.3Trap調(diào)用過程146.4Trap數(shù)據(jù)流166.5TrapInde*17參考19-.z.-.可修編.SNMP簡介snmp概況簡單網(wǎng)絡(luò)管理協(xié)議(SNMP,SimpleNetworkManagementProtocol)構(gòu)成了互聯(lián)網(wǎng)工程工作小組(IETF,InternetEngineeringTaskForce)定義的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é)議(applicationlayerprotocol)、數(shù)據(jù)庫模型(databaseschema),和一組數(shù)據(jù)對象。SNMP是為網(wǎng)絡(luò)管理服務(wù)而定義的應(yīng)用協(xié)議,在1988年8月首次定義,由InternetIETF的研究小組為了解決Internet上的路由器管理問題而提出的,很快就在RFC1157中達(dá)到了正式標(biāo)準(zhǔn)。SNMP是NMS(NetworkManagementSystem)和代理之間的異步請求和相應(yīng)協(xié)議。SNMP是由一系列協(xié)議組和規(guī)組成的,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。SNMP被設(shè)計成與協(xié)議無關(guān),所以它可以在IP,IP*,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。從被管理設(shè)備中收集數(shù)據(jù)有兩種方法:一種是輪詢(polling-only)方法,另一種是基于中斷(interrupt-based)的方法。SNMP消息全部通過UDP端口161接收,只有Trap信息采用UDP端口162。名詞解釋SNMP,SimpleNetworkManagementProtocol:簡單網(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,ManagementInformationBase:管理信息庫由網(wǎng)絡(luò)管理協(xié)議訪問的管理對象數(shù)據(jù)庫,它包括SNMP可以通過網(wǎng)絡(luò)設(shè)備的SNMP管理代理進行設(shè)置的變量。SMI,StructureofManagementInformation:管理信息結(jié)構(gòu)用于定義通過網(wǎng)絡(luò)管理協(xié)議可訪問的對象的規(guī)則。SMI定義在MIB中使用的數(shù)據(jù)類型及網(wǎng)絡(luò)資源在MIB中的名稱或表示。PDU,ProtocolDataUnit:協(xié)議數(shù)據(jù)單元在網(wǎng)絡(luò)中傳送的數(shù)據(jù)包。SNMP規(guī)定了5種協(xié)議數(shù)據(jù)單元PDU(也就是SNMP報文),用來在管理進程和代理之間的交換。OID ,ObjectIdentifier:對象標(biāo)識符區(qū)分MIB的成員ASN.1:

高級數(shù)據(jù)描述語言,描述數(shù)據(jù)類型、結(jié)構(gòu)、組織及編碼方法。包含語法符號和編碼規(guī)則兩大部分。SNMP使用ASN.1描述協(xié)議數(shù)據(jù)單元(PDU)和管理對象信息庫(MIB)主要版本及特點目前snmp有三個版本,v1,v2,v3。v2,v1的安全機制比較脆弱,通信不加密,所有通信字符串和數(shù)據(jù)都以明文形式發(fā)送。v3提供了驗證機制、加密機制、時間同步機制等,安全性大大提高。SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。對網(wǎng)絡(luò)的管理與維護是通過管理工作站與SNMP代理間的交互工作完成的。每個SNMP從代理負(fù)責(zé)回答SNMP管理工作站關(guān)于MIB定義信息的各種查詢。SNMP參考模型由以下4個主要部分構(gòu)成:互聯(lián)網(wǎng)絡(luò),網(wǎng)絡(luò)協(xié)議,網(wǎng)絡(luò)管理進程和被管網(wǎng)絡(luò)資源圖1-1snmp參考模型包含三種消息類型:get,set,trapget消息:Get-Request,Get-Ne*t-Request,Get-ResponseSNMP管理站用Get-Request消息從擁有SNMP代理的網(wǎng)絡(luò)設(shè)備中檢索信息,而SNMP代理則用Get-Response消息響應(yīng)。Get-Ne*t-Request用于和Get-Request組合起來查詢特定的表對象中的列元素Set消息:Set-Request,SetResponseSNMP管理站用Set-Request可以對網(wǎng)絡(luò)設(shè)備進行遠(yuǎn)程配置(包括設(shè)備名、設(shè)備屬性、刪除設(shè)備或使*一個設(shè)備屬性有效/無效等)Trap消息:SNMP代理使用Trap向SNMP管理站發(fā)送非請求消息,一般用于描述*一事件的發(fā)生。MIBCERTUSNET節(jié)點介紹CertusnetOID管理信息庫(ManagementInformationBase)MIB指明了網(wǎng)絡(luò)元素所維持的變量(即能夠被管理進程查詢和設(shè)置的信息)。MIB給出了一個網(wǎng)絡(luò)中所有可能的被管理對象的集合的數(shù)據(jù)結(jié)構(gòu)。SNMP的管理信息庫和域名DNS相似的樹型結(jié)構(gòu),根在最上面,根沒有名字,也沒有標(biāo)號。圖2-1畫出了MIB的一部分,它又被稱為對象命名(objectnamingtree)。圖2-SEQ圖2-\*ARABIC1MIB對象命名樹的頂級對象三個,在iso的下面有四個節(jié)點,每個節(jié)點有標(biāo)號。標(biāo)號一般是從0,1,2,3….分配的,對于*一個節(jié)點就可以用一串標(biāo)號來標(biāo)識,例如internet節(jié)點可以標(biāo)識為:{.},system可以標(biāo)識為{..2.1.1}。enterprises節(jié)點標(biāo)識為{..4.1}。Enterprises節(jié)點比較特殊,其所屬節(jié)點數(shù)量比較大。Certusnet從IANA組織獲取的標(biāo)號為33620,certusnet完整OID為{...4.1.33620},圖中紅色字體顯示部分。CERTUSNETMIB庫Certusnet主要有兩個mib庫文件:分別為CERTUSNET-IPTV-WATCHER-MIB.t*tIPTV-WATCH-NOTIF-MIB.t*tCERTUSNET-IPTV-WATCHER-MIB.t*t中定義iptvWatcher模塊(如圖2-2),這個模塊主要負(fù)責(zé)處理來自Manager端的get消息,set消息。IPTV-WATCH-NOTIF-MIB.t*t中定義channelAlarmNotif模塊(如圖2-3),這個模塊與iptvWatcher不同,主要負(fù)責(zé)發(fā)送trap消息到Manager端。圖2-SEQ圖2-\*ARABIC2iptvWatcher模塊圖2-SEQ圖2-\*ARABIC3channelAlarmNotif模塊關(guān)于這些MIB節(jié)點的OID以及所獲取數(shù)據(jù)的對應(yīng)數(shù)據(jù)庫的表大概介紹,如表2-1是iptv-watcher模塊的節(jié)點介紹,表2-2是channelAlarmNotif的介紹。表2-1certusnet子節(jié)點域名數(shù)據(jù)庫iptv-watcherOID描述audiostreambwTableaudiostreambw帶寬信息audiostreamdescTableaudiostreamdesc..4.1.33620.1.2audiostreamintervalTableaudiostreaminterval..4.1.33620.1.3傳輸?shù)臄?shù)據(jù)包信息audiostreamqualTableaudiostreamqual..4.1.33620.1.4MOS值channelinfoTablechannelinfo..4.1.33620.1.5頻道信息audiostreampkttransTablestreampkttrans..4.1.33620.1.6音頻流數(shù)據(jù)包信息videostreampkttransTablestreampkttrans..4.1.33620.1.7視頻流數(shù)據(jù)包信息audiostreampkttranssumTablestreampkttranssum..4.1.33620.1.8videostreampkttranssumTablestreampkttranssum..4.1.33620.1.9audiostreamstatusTablestreamstatus..4.1.33620.1.10音頻流狀態(tài)信息videostreamstatusTablestreamstatus1視頻流狀態(tài)信息audiostreamtr101290p1Tablestreamtr101290p12videostreamtr101290p1Tablestreamtr101290p13audiostreamtr101290p2Tablestreamtr101290p24videostreamtr101290p2Tablestreamtr101290p25audiostreamtransprotocolTablestreamtransprotocol6videostreamtransprotocolTablestreamtransprotocol7videostreamdescTablevideostreamdesc8videostreamframeTablevideostreamframe9videostreamframebwTablevideostreamframebw..4.1.33620.1.20videostreamframejitterTablevideostreamframejitter..4.1.33620.1.21videostreamintervalTablevideostreaminterval..4.1.33620.1.22videostreamintervale*tTablevideostreamintervale*t..4.1.33620.1.23videostreamqualTablevideostreamqual..4.1.33620.1.24videostreamsceneTablevideostreamscene..4.1.33620.1.25lastupdateintervalTablelastupdateinterval..4.1.33620.1.26baseip2inde*Table channelinfo..4.1.33620.1.27索引表lastqualifiedhistTablelastqualifiedhist..4.1.33620.1.28streammdiqualTablestreammdiqual..4.1.33620.1.29表2-2channelAlarmNotif域名Channelalarm表OID描述channelAddresschannel_address頻道地址mosValuemosvalue..4.1.33620.2.2MOS值vstqvstq..4.1.33620.2.3codecQuant.codecquant..4.1.33620.2.4alarmTimealarmtime..4.1.33620.2.5告警時間causeTypetype..4.1.33620.2.6mediaRatemedia_rate..4.1.33620.2.7lossRatelossrate..4.1.33620.2.8channelPortchannel_port..4.1.33620.2.9頻道端口mdiDfmdi_df0DFmdiMlrmdi_mlr1MLR索引對MIB變量進行操作,必須對MIB的每個變量進行標(biāo)識。只有葉子節(jié)點是可操作的,SNMP沒法處理表格的一整行或一整列.簡單變量對于簡單變量的處理是通過在其對象標(biāo)識后面添加".0"處理。例如對象標(biāo)識是.,則實例標(biāo)識是..0。對于簡單變量,".0"就是表示索引。例如:UDP-MIB::udpInDatagrams.0=Counter32:179表格每個MIB中的索引都包含一個以上的索引。對于audiostreambw表來說,MIB定義了包含channeladdr和channelport對應(yīng)的索引。在表格中,一個給定變量的所有實例都在下個變量的所有實例之前顯示。這意味表格的操作順序是先行后列的。表格中對行的排序和表格中索引的值有關(guān)。關(guān)于索引查詢的主要是在baseip2inde*Table節(jié)點。由表2-1可以看出節(jié)點數(shù)據(jù)來自數(shù)據(jù)庫iptv-watcher的channelinfo表,baseip2inde*Table加載ip和port兩項數(shù)據(jù)。container_load接口里用的sql語句:SELECTchanneladdr,channelportFROMchannelinfoWHEREmonitored='t'。channeladdr和channelport主要作用是來生成表索引。如3-184就是一個索引,是表audiostreambwTable的一條索引。圖3-1索引的獲取過程 Manager端在進行snmpget,snmpgetne*t操作獲取數(shù)據(jù),必須知道要獲取數(shù)據(jù)的完整OID,否則無法獲得數(shù)據(jù)。如圖3-1顯示Inde*獲取過程。Manager端通過查詢baseip2inde*Table獲取IP和Port對應(yīng)的唯一索引,索引加上表名,列名合成完整OID。如下圖所示。圖3-2OID解釋*運行獲取數(shù)據(jù):CERTUSNET-IPTV-WATCHER-MIB::adsmbwpeakaudiobandwidth.84=Counter64:188018Manager與AgentSnmpd是一個守護進程,它是作為后臺進程啟動簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)代理程序。接受客戶端的請求并回應(yīng)。當(dāng)*些事件發(fā)生,代理進程主動發(fā)出的報文(trap操作),通知管理進程特定事件發(fā)生。在進行第三方擴展代理,用mib2c生成MIB表節(jié)點對應(yīng)的代碼。調(diào)用第三方接口。Manager如圖4-1描述Manager端的請求與接收回應(yīng)過程圖4-SEQ圖4-\*ARABIC1Manager端與Agent交互AgentAgent代理端要進行PDU數(shù)據(jù)包解析,查詢MIB,將操作結(jié)果封裝成PDU發(fā)送回請求端。如圖4-2圖4-SEQ圖4-\*ARABIC2Agent處理過程MainLoopofAgent:代理在默認(rèn)161端口等待數(shù)據(jù)到來讀取UDP數(shù)據(jù)報,標(biāo)記傳輸?shù)刂凡l(fā)送實體.跟蹤被代理處理邏輯請求ID序列化數(shù)據(jù)報成為ASN.1格式轉(zhuǎn)換成snmp消息檢測版本號檢測團體名(相當(dāng)于密碼),如果是未知的,則代理通過162端口發(fā)送AUTHENTICATIONtrap到管理端并丟棄數(shù)據(jù)包。代理遍歷請求的變量列表,代理調(diào)用訪問程序執(zhí)行所需的操作。GET代理流程以adudiostreambwTable為例,運行代理:./audiostreambwTable–f–L–DaudiostreambwTable–MSnmpwalk測試:[rooticechulk]*snmpwalk-v2c-cpublicaudiostreambwTable一個子代理的大概運行流程如圖5-1圖5-SEQ圖5-\*ARABIC1子代理運行過程接口介紹公共接口:initialize_interface、shutdown_interface、registration_get、registration_setcontainer_get、container_size、allocate_rowreq_ct*、release_rowreq_ct*、inde*_to_oidinde*_from_oid、_row_find_by_mib_inde*、_container_init、_container_shutdown、_container_load、_container_free。initialize_interface:初始化表定義,定義一表的容和它的結(jié)構(gòu)化shutdown_interface:關(guān)閉表并關(guān)閉容器registration_get:表的get方法注冊,處理get消息registration_set:表的set方法注冊,處理set消息container_get:返回一個容器container_size:容器大小allocate_rowreq_ct*:為一表數(shù)據(jù)的分配存,***Table_rowreq_ct*結(jié)構(gòu)存放表的索引以及表數(shù)據(jù)。release_rowreq_ct*:為表結(jié)構(gòu)釋放存inde*_to_oid:轉(zhuǎn)換索引為OIDinde*_from_oid:從OID獲取索引_row_find_by_mib_inde*:這個接口用來查詢get指定的索引數(shù)據(jù)_container_init:容器的初始化_container_shutdown:容器的關(guān)閉_container_load:loadinitialdata_container_free:containercleanup這些接口的具體實現(xiàn)及最終調(diào)用是在***Table_data_access.c文件中,而我們要更改的具體實現(xiàn)數(shù)據(jù)加載在***Table_container_load接口。數(shù)據(jù)加入到容器的過程子代理調(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_table_audiostreambwTable->_audiostreambwTable_initialize_interface->_audiostreambwTable_container_init–>netsnmp_cache_create(_cache_load)->audiostreambwTable_container_load數(shù)據(jù)加載過程圖5-SEQ圖5-\*ARABIC2數(shù)據(jù)封裝到容器從數(shù)據(jù)庫獲取數(shù)據(jù),對應(yīng)一表的數(shù)據(jù),相對于MIB中的表節(jié)點的值,將從數(shù)據(jù)庫獲取的數(shù)據(jù)進行操作放入容器中,如圖5-2。.圖5-SEQ圖5-\*ARABIC3加載過程如上圖,從數(shù)據(jù)庫iptv-watcher中將audiostreambw這表的數(shù)據(jù)取出來,通過類型轉(zhuǎn)換加入rowreq_ct*的data結(jié)構(gòu)中,每次載入一行記錄,表以channel_address和channel_port建立索引,圖中audiostreambwInde*為audiostreambwTable的索引,最后調(diào)用CONTAINER_INSERT載入容器,再進行查詢獲取對應(yīng)的數(shù)據(jù),反饋給發(fā)起get的Manager端。container_load流程TrapTrap作用在SNMP管理站中,運行著一個后臺進程snmpd,負(fù)責(zé)接收和確認(rèn)SNMP請求及Trap信號、處理請求并返回結(jié)果、向配置文件中的所有主機發(fā)送Trap信號。TRAP是提供從代理進程到管理站的異步報告機制。為了使管理站能夠及時而又有效地對被管理設(shè)備進行監(jiān)控,同時又不過分增加網(wǎng)絡(luò)的通信負(fù)載,必須使用陷入(TRAP)制導(dǎo)的輪訊過程。代理進程負(fù)責(zé)在必要時向管理站報告異常事件,得到異常事件的報告后,管理站可以查詢有關(guān)的代理,以便得到更具體的信息,對事件的原因做進一步的分析。Trap的工作流程如圖6-1Agent發(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-SEQ圖6-\*ARABIC1Trap模型Trap調(diào)用過程圖6-SEQ圖6-\*ARABIC2Trap過程如上圖代理啟動,進行必要的參數(shù)處理,然后初始化庫,再初始化ChannelAlarmmib代碼,調(diào)用trapInde*Init初始化索引trapInde*為表channelAlar

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論