歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

snmp學習總結(1)--snmp的基本概念

snmp學習總結(1)--snmp的基本概念

一、SNMP簡單概述

1.1、什麼是Snmp

SNMP是英文"Simple Network Management Protocol"的縮寫,中文意思是"簡單網絡管理協議"。SNMP是一種簡單網絡管理協議,它屬於TCP/IP五層協議中的應用層協議,用於網絡管理的協議。SNMP主要用於網絡設備的管理。由於SNMP協議簡單可靠 ,受到了眾多廠商的歡迎,成為了目前最為廣泛的網管協議。

SNMP協議主要由兩大部分構成:SNMP管理站和SNMP代理。SNMP管理站是一個中心節點,負責收集維護各個SNMP元素的信息,並對這些信息進行處理,最後反饋給網絡管理員;而SNMP代理是運行在各個被管理的網絡節點之上,負責統計該節點的各項信息,並且負責與SNMP管理站交互,接收並執行管理站的命令,上傳各種本地的網絡信息。

SNMP管理站和SNMP代理之間是松散耦合。他們之間的通信是通過UDP協議完成的。一般情況下,SNMP管理站通過UDP協議向SNMP代理發送各種命令,當SNMP代理收到命令後,返回SNMP管理站需要的參數。但是當SNMP代理檢測到網絡元素異常的時候,也可以主動向SNMP管理站發送消息,通告當前異常狀況。

SNMP的基本思想:為不同種類的設備、不同廠家生產的設備、不同型號的設備,定義為一個統一的接口和協議,使得管理員可以是使用統一的外觀面對這些需要管理的網絡設備進行管理。通過網絡,管理員可以管理位於不同物理空間的設備,從而大大提高網絡管理的效率,簡化網絡管理員的工作。

SNMP的工作方式:管理員需要向設備獲取數據,所以SNMP提供了【讀】操作;管理員需要向設備執行設置操作,所以SNMP提供了【寫】操作;設備需要在重要狀況改變的時候,向管理員通報事件的發生,所以SNMP提供了【Trap】操作。

1.2、SNMP 和 UDP

SNMP采用UDP協議在管理端和agent之間傳輸信息。 SNMP采用UDP 161端口接收和發送請求,162端口接收trap,執行SNMP的設備缺省都必須采用這些端口。SNMP消息全部通過UDP端口161接收,只有Trap信息采用UDP端口162。

1.3、Snmp版本

SNMP目前共有v1,v2,v3這三個版本:

SNMP v1是SNMP協議的最初版本,不過依然是眾多廠家實現SNMP基本方式。

SNMP v2通常被指是基於community的SNMP V2。Community實質上就是密碼。

SNMP v3 是最新版本的SNMP。它對網絡管理最大的貢獻在於其安全性。增加了對認證和密文傳輸的支持。

二、Snmp的實現結構

在具體實現上,SNMP為管理員提供了一個網管平台(NMS),又稱為【管理站】,負責網管命令的發出、數據存儲、及數據分析。【被】監管的設備上運行一個SNMP代理(Agent)),代理實現設備與管理站的SNMP通信。

管理站與代理端通過MIB進行接口統一,MIB定義了設備中的被管理對象。管理站和代理都實現了相應的MIB對象,使得雙方可以識別對方的數據,實現通信。管理站向代理申請MIB中定義的數據,代理識別後,將管理設備提供的相關狀態或參數等數據轉換為MIB定義的格式,應答給管理站,完成一次管理操作。

三、Snmp有關的基本概念

3.1、代理和管理站的模型

Snmp分2種角色:SNMP管理站(manager,我們的本機127.0.0.1)和SNMP代理(agent, 我們要操作的機器,比如 192.168.1.144)。管理站指的是運行了可以執行網絡管理任務軟件的服務器,通常被稱作為網絡管理工作站(NMS),NMS負責采樣網絡中agent的信息,並接受agent的trap。代理是實際網絡設備中用來實現SNMP功能的部分。代理在UDP的161端口接收NMS的讀寫請求消息,管理站在UDP的162端口接收代理的事件通告消息。所以,一旦獲取設備的訪問權限(community,默認為public),就可以訪問設備信息、改寫和配置設備參數。由於采用UDP協議,不需要在代理和管理站之間保持連接。

3.2、SNMP的操作命令

SNMP協議之所以易於使用,這是因為它對外提供了三種用於控制MIB對象的基本操作命令。它們是:Get、Set 和 Trap。

Get:管理站讀取代理者處對象的值。它是SNMP協議中使用率最高的一個命令,因為該命令是從網絡設備中獲得管理信息的基本方式。

Set:管理站設置代理者處對象的值。它是一個特權命令,因為可以通過它來改動設備的配置或控制設備的運轉狀態。它可以設置設備的名稱,關掉一個端口或清除一個地址解析表中的項等。

Trap: 代理者主動向管理站通報重要事件。它的功能就是在網絡管理系統沒有明確要求的前提下,由管理代理通知網絡管理系統有一些特別的情況或問題 發生了。如果發生意外情況,客戶會向服務器的162端口發送一個消息,告知服務器指定的變量值發生了變化。通常由服務器請求而獲得的數據由服務器的161 端口接收。Trap 消息可以用來通知管理站線路的故障、連接的終端和恢復、認證失敗等消息。管理站可相應的作出處理。

3.3、SNMP的消息構成

SNMP協議定義了數據包的格式,及網絡管理員和管理代理之間的信息交換,它還控制著管理代理的MIB數據對象。因此,可用於處理管理代理定義的各種任務。

一條SNMP消息由"版本號"、"SNMP共同體名"和"協議數據單元(PDU)"構成,數據包的長度不是固定的。

版本識別符(version identifier):用於說明現在使用的是哪個版本的SNMP協議,確保SNMP代理使用相同的協議,每個SNMP代理都直接拋棄與自己協議版本不同的數據報。

團體名(Community Name):團體(community)是基本的安全機制,用於實現SNMP網絡管理員訪問SNMP管理代理時的身份驗證。類似於密碼,默認值為 public。團體名(Community name)是管理代理的口令,管理員被允許訪問數據對象的前提就是網絡管理員知道網絡代理的口令。如果把配置管理代理成可以執行Trap命令,當網絡管理 員用一個錯誤的分區名查詢管理代理時,系統就發送一個autenticationFailure trap報文。

協議數據單元(PDU):PDU (協議數據單元)是SNMP消息中的數據區, 即Snmp通信時報文數據的載體。PDU指明了SNMP的消息類型及其相關參數

3.4、PDU(協議數據單元)

PDU (協議數據單元)是SNMP消息中的數據區, 即Snmp通信時報文數據的載體。

3.5、MIB(管理信息庫)

管理信息(MIB)庫可以理解成為agent維護的管理對象數據庫,MIB中定義的大部分管理對象的狀態和統計信息都可以被NMS訪問。MIB是一個按照層次結構組織的樹狀結構,每個被管對象對應樹形結構的一個葉子節點,稱為一個object,擁有唯一的數字標識符

MIB數據對象以一種樹狀分層結構進行組織,這個樹狀結構中的每個分枝都有一個專用的名字和一個數字形式的標識符。結構樹的分枝實際表示的是數據對象的邏 輯分組。而樹葉,有時候也叫節點(node),代表了各個數據對象。在結構樹中使用子樹表示增加的中間分枝和增加的樹葉。

使用這個樹狀分層結構,MIB浏覽器能夠以一種方便而且簡潔的方式訪問整個MIB數據庫。MIB浏覽器是這樣一種工具,它可以遍歷整棵MIB結構樹,通常 以圖形顯示的形式來表示各個分枝和樹葉對象。可以通過其數字標識符來查找MIB中的數據對象,這個數字標識符號從結構樹的頂部(或根部)開始,直到各個葉 子節點(即數據對象)為止。這種訪問方式和文件系統的組織方式一致。兩者的主要區別在於文件系統中的路徑名可以以絕對也可以以相對方式表示,而MIB數據 對象只能以絕對方式表示,不能使用相對方式。

每一個節點都有一個對象標識符(OID)來唯一的標識,每個節點用數字和字符兩種方式顯示,其中對象標識符OID是由句點隔開的一組整數,也就是從根節點 通向它的路徑。一個帶標號節點可以擁有包含其它帶標號節點為它的子樹,如果沒有子樹它就是葉子節點,它包含一個值並被稱為對象。比如網絡設備名的oid 是.1.3.6.1.2.1.1.5.0,其值為設備名稱的字符串。

網絡資源被抽象為對象進行管理。但SNMP中的對象是表示被管資源某一方面的數據變量。對象被標准化為跨系統的類,對象的集合被組織為管理信息庫 (MIB)。MIB作為設在代理者處的管理站訪問點的集合,管理站通過讀取MIB中對象的值來進行網絡監控。管理站可以在代理者處產生動作,也可以通過修改變量值改變代理者處的配置。

3.6、OID(Object Identifier)

每個管理對象都有自己的OID(Object Identifier),管理對象通過樹狀結構進行組織,OID由樹上的一系列整數組成,整數之間用點( . )分隔開,樹的葉子節點才是真正能夠被管理的對象。

四、Snmp的初步體驗

我們來做一個最簡單的Snmp操作:獲取一台IP為192.168.1.144的電腦的名稱。

首先要給為192.168.1.144的電腦安裝Snmp環境。Window組件的管理監視工具裡包含Snmp,只需要安裝一下就可以了。具體的安裝步驟後面的博文會有詳細的介紹,Snmp默認的通信端口是161/162

接下來需要一個能夠進行Snmp通信的工具,比較簡單的有snmputil,snmputil下載地址:http://download.csdn.net/detail/aliang0708/4180259

將下載下來的【snmputil.zip】壓縮包解壓後就可以得到如下圖所示的兩個工具了,其中snmputil是我們要用來進行Snmp通信的工具。

snmputil工具的命令規則是:snmputil [get|getnext|walk] agent community oid [oid ...]

[get|getnext|walk]:為消息類型,我們此次進行的操作是get

agent:指Snmp代理即你想進行操作的網絡設備的ip或名稱,即192.168.1.144

community:分區域,即密碼,默認是public

oid:想要操作的MIB數據對象號,設備名稱對應的MIB對象號是.1.3.6.1.2.1.1.5.0

打開命令行窗口,進入snmputil所在路徑,鍵入:snmputil get 192.168.1.144 public .1.3.6.1.2.1.1.5.0

如果參數都正確,控制台就會顯示出192.168.1.144的機器名。

Copyright © Linux教程網 All Rights Reserved