snmp(****** network management protocal),簡單網路管理協議,其前身是sgmp協議(簡單閘道器監控協議),該協議的作用是對網路上的裝置進行監視管理,是一種應用層協議。
基於tcp/ip的網路管理包括兩個部分:網路管理器(也叫管理程序,manager)和被管裝置(**),被管裝置對應的程序稱為**程序。管理器控制盒監視著一組**,通常情況下,管理器是主機,**是路由器或伺服器。**把相關效能資訊儲存在資料庫中,管理器可以獲取或修改該資料庫的值。管理器和被管裝置之間的通訊主要包括以下是三個方面:
1.管理器向**請求獲取某資訊。
2.管理器向**請求設定**資料庫中的某些值,以便強迫**完成某個任務。
3.**向管理器傳送異常情況的警告。
網路管理的三個重要組成部分:smi,mib,snmp。
smi:管理資訊結構,主要作用是:(1)定義了物件命名的規則;(2)定義了型別規則;(3)定義了編碼方法。
mib:管理資訊庫,主要作用是:定義了型別物件的實體。
snmp:定義了管理器與**互動的分組格式。
為了更好地理解這三個網路管理構件,我們將其與程式語言模擬:smi相當於語法,mib相當於物件的申明與定義,snmp相當於程式編碼。
下面簡單介紹下著幾個構件.
smi 管理資訊結構
smi使用了抽象語法標記1(由iso指定的asn.1)來定義資料型別。
物件命名規則:通過物件命名樹來約定命名規則,smi使用了物件識別符號,所有被snmp管理的物件都要賦予乙個物件識別符號,這個物件對於命名樹中的iso.org.dod.internet.mgmt.mib-2,數字表示為1.3.6.1.2.1,物件識別符號以1.3.6.1.2.1開始。
型別:包括簡單資料型別(相當於c內建型別)和結構化資料型別,而結構化資料型別包括sequence型別(相當於c語言中struct定義的型別)和sequence of型別(相當於c語言中的陣列)。
編碼方法:smi採用了ber(basic encoding rules,基本編碼規則),ber指明資料可用乙個三元組(標記、長度、值)表示,每一種資料型別對應乙個唯一的標記和長度,如整形integer對應的標記為0000 0010,其長度為4b,可用表示為0000 0100。
mib 管理資訊庫
管理資訊庫定義了網際網路上被管物件的集合,下面簡單介紹下mib2(版本2)。每個**都有它自己的mib2,包含了管理器能夠管理的所有物件的集合。mib2包括:sys(system,系統)、if(ite***ce,介面)、at(address translation,位址轉換)、ip、icmp、tcp、udp和snmp。
如何訪問mib變數呢?以udp為例,來分析下簡單變數和表的訪問方式。首先我們必須知道變數和例項的區別,我們可以把變數看成一種命名規則,而例項就是乙個物件,若當前的結點為葉子結點,則可以表示成乙個變數,若為非葉子結點,則對應乙個表。對於簡單變數的訪問(如udpindatagrams)其id為1.3.6.1.2.1.7.1,則該變數的例項為id.0,即1.3.6.1.2.1.7.1.0,對於表的訪問,如在我們的命名樹中有這樣的分支udptable-->udpentry--->(udplocaladdress,udplocalport),先說下對應的數字,udp對應7,udptable對應5,udpentry對應1,udplocaladdress對應1,udplocalport對應2,在任何時候,要訪問表中的某個特定例項(行),我們應該訪問id+索引,這裡的索引是本地ip/本地埠號,例如對於套接字181.23.45.14.23,
獲取其ip位址的方法是1.3.6.1.2.1.7.5.1.
1.181.23.45.14.23,
獲取其埠號的方法為1.3.6.1.2.1.7.5.1.
2.181.23.45.14.23。
重要的是,例項識別符號(id+索引)是按照字典序排列的,對於表的排序,採用的「先列後行」的規則排列,也就是說在訪問的時候,先按照列的順序走。
snmp
snmp應用程式的主要作用是使得管理器和**之間相互通訊,以達到網路管理的功能。snmpv3在之前的版本上新增了兩個特性:不同級別的安全和遠端管理。
pdu:snmpv3定義了8種型別的pdu,分別是getrequest、getnextrequest、getbulkrequest、setrequest、response、trap、informrequest和report。
getrequest:管理器發給**,用於讀取乙個變數或一組變數的值。
getnextrequest:管理器發給**讀取下乙個變數值。
getbulkrequest:管理器發給**,讀取塊請求。
setrequest:管理器發給**,用於設定變數的值。
response:**發給管理器,響應其請求。
trap:**發給管理器,用來報告事件。
informrequest:管理器發給另乙個遠端管理器,獲取某些變數的值。
report:管理器發給另乙個遠端管理器,報告其差錯。
snmp使用的udp埠
**(相當於伺服器)使用的是161,管理器(相當於**)使用的是162。
注意:這兩個埠號只在用於向對方主動傳送報文時,在報文中設定目的埠號。而對於被動響應報文,則埠號使用主動請求方使用的臨時埠號。
[1]《tcp/ip協議族 第四版 王海等譯》
[2]《計算機網路 第5版》
[3]《tcp/ip詳解 卷1:協議》
snmp網路協議總結一二
snmp簡單網路協議,它是一系列的協議組和規範,是從網路上的裝置收集管理資訊的公用通訊協議。裝置的管理者收集這些資訊並記錄在管理資訊庫 mib 中。通過將snmp嵌入資料通訊裝置,如 路由器 交換機或 集線器中,就可以從乙個中心站管理這些裝置。乙個被管理的裝置有乙個管理 它負責向管理站請求資訊和動作...
snmp協議介紹
snmp協議概述 snmp work management protocol 即簡單網路管理協議,它為網路管理系統提供了底層網路管理的框架。snmp協議的應用範圍非常廣泛,諸多種類的網路裝置 軟體和系統中都有所採用,主要是因為snmp協議有如下幾個特點 首先,相對於其它種類的網路管理體系或管理協議而...
SNMP協議簡介
最近的工作中要用到snmp,本文簡單介紹一下snmp的基本概念 技術優點及網路架構。snmp,簡單網路管理協議,全稱是 network management protocol,是由ietf internet engineeriing task force,網際網路工程任務組 定義的一套基於sgmp ...