Snmp学习笔记
SNMP是英文“Simple Network Management Protocol”的縮寫,中文意思是“簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議”。SNMP是目前最常用的環(huán)境管理協(xié)議。SNMP被設(shè)計(jì)成與協(xié)議無(wú)關(guān),所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的傳輸協(xié)議上被使用。SNMP是一系列協(xié)議組和規(guī)范,它們提供了一種從網(wǎng)絡(luò)上的設(shè)備中收集網(wǎng)絡(luò)管理信息的方法。SNMP也為設(shè)備向網(wǎng)絡(luò)管理工作站報(bào)告問(wèn)題和錯(cuò)誤提供了一種方法。
??? 目前,幾乎所有的網(wǎng)絡(luò)設(shè)備生產(chǎn)廠家都實(shí)現(xiàn)了對(duì)SNMP的支持。領(lǐng)導(dǎo)潮流的SNMP是一個(gè)從網(wǎng)絡(luò)上的設(shè)備收集管理信息的公用通信協(xié)議。設(shè)備的管理者收集這些信息并記錄在管理信息庫(kù)(MIB)中。這些信息報(bào)告設(shè)備的特性、數(shù)據(jù)吞吐量、通信超載和錯(cuò)誤等。MIB有公共的格式,所以來(lái)自多個(gè)廠商的SNMP管理工具可以收集MIB信息,在管理控制臺(tái)上呈現(xiàn)給系統(tǒng)管理員。
??? SNMP提供了一種統(tǒng)一的、跨平臺(tái)的設(shè)備管理辦法。
概念太抽象,先來(lái)看一個(gè)例子。
我們來(lái)做一個(gè)最簡(jiǎn)單的Snmp操作:獲取一臺(tái)機(jī)器的機(jī)器名,假設(shè)其IP是192.168.1.1。
??? 首先要給192.168.1.1安裝Snmp環(huán)境。Window組件的管理監(jiān)視工具里包含Snmp,只需要安裝一下就可以了。Snmp默認(rèn)的通信端口是161/162,有的系統(tǒng)需要手動(dòng)設(shè)置,這個(gè)可以通過(guò)創(chuàng)建篩選器列表來(lái)實(shí)現(xiàn),具體怎么設(shè)置網(wǎng)上很多,大家可以去搜索一下。另外需要關(guān)閉192.168.1.1的防火墻。
接下來(lái)需要一個(gè)能夠進(jìn)行Snmp通信的工具,比較簡(jiǎn)單的有snmputil,大家可以去網(wǎng)上下載。
snmputil的命令規(guī)則是:
snmputil [get|getnext|walk] agent community oid [oid ...]
[get|getnext|walk]為消息類型,我們此次進(jìn)行的操作是get
agent指Snmp代理即你想進(jìn)行操作的網(wǎng)絡(luò)設(shè)備的ip或名稱,即192.168.1.1
community:分區(qū)域,即密碼,默認(rèn)是public
oid:想要操作的MIB數(shù)據(jù)對(duì)象號(hào),設(shè)備名稱對(duì)應(yīng)的MIB對(duì)象號(hào)是.1.3.6.1.2.1.1.5.0
打開(kāi)命令行窗口,進(jìn)入snmputil所在路徑,鍵入
snmputil get 192.168.1.1 public .1.3.6.1.2.1.1.5.0
如果參數(shù)都正確,控制臺(tái)就會(huì)顯示出192.168.1.1的機(jī)器名。
不知道現(xiàn)在大家對(duì)snmp有沒(méi)有一個(gè)感性的認(rèn)識(shí),通過(guò)get、set這樣的操作,我們就可以讀取、控制網(wǎng)絡(luò)設(shè)備了。
接下來(lái)學(xué)習(xí)一下和Snmp有關(guān)的基本概念吧
代理和管理站的模型
Snmp分2種角色:SNMP管理站(manager,我們的本機(jī)127.0.0.1)和SNMP代理(agent,我們操作的機(jī)器,比如192.168.1.1)。代理是實(shí)際網(wǎng)絡(luò)設(shè)備中用來(lái)實(shí)現(xiàn)SNMP功能的部分。代理在UDP的161端口接收NMS的讀寫請(qǐng)求消息,管理站在UDP的162端口接收代理的事件通告消息。所以,一旦獲取設(shè)備的訪問(wèn)權(quán)限(community,默認(rèn)為public),就可以訪問(wèn)設(shè)備信息、改寫和配置設(shè)備參數(shù)。由于采用UDP協(xié)議,不需要在代理和管理站之間保持連接。
SNMP的操作命令
SNMP協(xié)議之所以易于使用,這是因?yàn)樗鼘?duì)外提供了三種用于控制MIB對(duì)象的基本操作命令。它們是:Get、Set 和 Trap。
Get:管理站讀取代理者處對(duì)象的值。它是SNMP協(xié)議中使用率最高的一個(gè)命令,因?yàn)樵撁钍菑木W(wǎng)絡(luò)設(shè)備中獲得管理信息的基本方式。
Set:管理站設(shè)置代理者處對(duì)象的值。它是一個(gè)特權(quán)命令,因?yàn)榭梢酝ㄟ^(guò)它來(lái)改動(dòng)設(shè)備的配置或控制設(shè)備的運(yùn)轉(zhuǎn)狀態(tài)。它可以設(shè)置設(shè)備的名稱,關(guān)掉一個(gè)端口或清除一個(gè)地址解析表中的項(xiàng)等。
Trap:代理者主動(dòng)向管理站通報(bào)重要事件。它的功能就是在網(wǎng)絡(luò)管理系統(tǒng)沒(méi)有明確要求的前提下,由管理代理通知網(wǎng)絡(luò)管理系統(tǒng)有一些特別的情況或問(wèn)題發(fā)生了。如果發(fā)生意外情況,客戶會(huì)向服務(wù)器的162端口發(fā)送一個(gè)消息,告知服務(wù)器指定的變量值發(fā)生了變化。通常由服務(wù)器請(qǐng)求而獲得的數(shù)據(jù)由服務(wù)器的161端口接收。Trap 消息可以用來(lái)通知管理站線路的故障、連接的終端和恢復(fù)、認(rèn)證失敗等消息。管理站可相應(yīng)的作出處理。
SNMP的命令和報(bào)文
SNMP協(xié)議定義了數(shù)據(jù)包的格式,及網(wǎng)絡(luò)管理員和管理代理之間的信息交換,它還控制著管理代理的MIB數(shù)據(jù)對(duì)象。因此,可用于處理管理代理定義的各種任務(wù)。
??? 一條SNMP報(bào)文由三個(gè)部分組成:版本域(version field),分區(qū)域(community field)和SNMP協(xié)議數(shù)據(jù)單元域(SNMP protocol data unit field),數(shù)據(jù)包的長(zhǎng)度不是固定的。?
??? 版本域:這個(gè)域用于說(shuō)明現(xiàn)在使用的是哪個(gè)版本的SNMP協(xié)議。目前,version 1是使用最廣泛的SNMP協(xié)議。?
??? 分區(qū)域:分區(qū)(community)是基本的安全機(jī)制,用于實(shí)現(xiàn)SNMP網(wǎng)絡(luò)管理員訪問(wèn)SNMP管理代理時(shí)的身份驗(yàn)證。類似于密碼,默認(rèn)值為public。分區(qū)名(Community name)是管理代理的口令,管理員被允許訪問(wèn)數(shù)據(jù)對(duì)象的前提就是網(wǎng)絡(luò)管理員知道網(wǎng)絡(luò)代理的口令。如果把配置管理代理成可以執(zhí)行Trap命令,當(dāng)網(wǎng)絡(luò)管理員用一個(gè)錯(cuò)誤的分區(qū)名查詢管理代理時(shí),系統(tǒng)就發(fā)送一個(gè)autenticationFailure trap報(bào)文。
PDU? : 協(xié)議數(shù)據(jù)單元。是SNMP消息中的數(shù)據(jù)區(qū), 即Snmp通信時(shí)報(bào)文數(shù)據(jù)的載體。
MIB? : 管理信息庫(kù)
管理信息數(shù)據(jù)庫(kù)(MIB)是一個(gè)信息存儲(chǔ)庫(kù),它包含了管理代理中的有關(guān)配置和性能的數(shù)據(jù),有一個(gè)組織體系和公共結(jié)構(gòu),其中包含分屬不同組的許多個(gè)數(shù)據(jù)對(duì)象。?
??? MIB數(shù)據(jù)對(duì)象以一種樹(shù)狀分層結(jié)構(gòu)進(jìn)行組織,這個(gè)樹(shù)狀結(jié)構(gòu)中的每個(gè)分枝都有一個(gè)專用的名字和一個(gè)數(shù)字形式的標(biāo)識(shí)符。結(jié)構(gòu)樹(shù)的分枝實(shí)際表示的是數(shù)據(jù)對(duì)象的邏輯分組。而樹(shù)葉,有時(shí)候也叫節(jié)點(diǎn)(node),代表了各個(gè)數(shù)據(jù)對(duì)象。在結(jié)構(gòu)樹(shù)中使用子樹(shù)表示增加的中間分枝和增加的樹(shù)葉。?
??? 使用這個(gè)樹(shù)狀分層結(jié)構(gòu),MIB瀏覽器能夠以一種方便而且簡(jiǎn)潔的方式訪問(wèn)整個(gè)MIB數(shù)據(jù)庫(kù)。MIB瀏覽器是這樣一種工具,它可以遍歷整棵MIB結(jié)構(gòu)樹(shù),通常以圖形顯示的形式來(lái)表示各個(gè)分枝和樹(shù)葉對(duì)象。可以通過(guò)其數(shù)字標(biāo)識(shí)符來(lái)查找MIB中的數(shù)據(jù)對(duì)象,這個(gè)數(shù)字標(biāo)識(shí)符號(hào)從結(jié)構(gòu)樹(shù)的頂部(或根部)開(kāi)始,直到各個(gè)葉子節(jié)點(diǎn)(即數(shù)據(jù)對(duì)象)為止。這種訪問(wèn)方式和文件系統(tǒng)的組織方式一致。兩者的主要區(qū)別在于文件系統(tǒng)中的路徑名可以以絕對(duì)也可以以相對(duì)方式表示,而MIB數(shù)據(jù)對(duì)象只能以絕對(duì)方式表示,不能使用相對(duì)方式。
??? 每一個(gè)節(jié)點(diǎn)都有一個(gè)對(duì)象標(biāo)識(shí)符(OID)來(lái)唯一的標(biāo)識(shí),每個(gè)節(jié)點(diǎn)用數(shù)字和字符兩種方式顯示,其中對(duì)象標(biāo)識(shí)符OID是由句點(diǎn)隔開(kāi)的一組整數(shù),也就是從根節(jié)點(diǎn)通向它的路徑。一個(gè)帶標(biāo)號(hào)節(jié)點(diǎn)可以擁有包含其它帶標(biāo)號(hào)節(jié)點(diǎn)為它的子樹(shù),如果沒(méi)有子樹(shù)它就是葉子節(jié)點(diǎn),它包含一個(gè)值并被稱為對(duì)象。比如網(wǎng)絡(luò)設(shè)備名的oid是.1.3.6.1.2.1.1.5.0,其值為設(shè)備名稱的字符串。
??? 網(wǎng)絡(luò)資源被抽象為對(duì)象進(jìn)行管理。但SNMP中的對(duì)象是表示被管資源某一方面的數(shù)據(jù)變量。對(duì)象被標(biāo)準(zhǔn)化為跨系統(tǒng)的類,對(duì)象的集合被組織為管理信息庫(kù)(MIB)。MIB作為設(shè)在代理者處的管理站訪問(wèn)點(diǎn)的集合,管理站通過(guò)讀取MIB中對(duì)象的值來(lái)進(jìn)行網(wǎng)絡(luò)監(jiān)控。管理站可以在代理者處產(chǎn)生動(dòng)作,也可以通過(guò)修改變量值改變代理者處的配置。
以上就是一些Snmp最基本概念了,更深入的應(yīng)用下次講!
總結(jié)
- 上一篇: SNMP模型中,网管者、网管代理、网管协
- 下一篇: 数据预处理-采样