1. SNMP治理模型
1.1. 什么是SNMP
SNMP(Simple Network Management Protocol)是被廣泛接受并投入使用的工業(yè)標準 , 它的目標是保證治理信息在任意兩點中傳送 , 便于網(wǎng)絡治理員在網(wǎng)絡上的任何節(jié)點檢索信息 , 進行修改 , 尋找故障;完成故障診斷 , 容量規(guī)劃和報告生成 。它采用輪詢機制 , 提供最基本的功能集 。最適合小型、快速、低價格的環(huán)境使用 。它只要求無證實的傳輸層協(xié)議UDP , 受到許多產(chǎn)品的廣泛支持 。SNMP在TCP/IP協(xié)議族中的地位如下圖:
1.2. SNMP的基本操作:
SNMP以GET-SET方式替代了復雜的命令集 , 利用基本操作演繹出全部操作 。用戶可以采用治理信息庫標準或按標準的方式來定義自己的治理信息庫(MIB) 。這樣做的好處是:通過降低占網(wǎng)管系統(tǒng)中大多數(shù)的代理部件的成本來降低整個網(wǎng)管系統(tǒng)的成本 。
1.3. 網(wǎng)管站和代理
網(wǎng)管站(NMS)對網(wǎng)絡設(shè)備發(fā)送各種查詢報文 , 并接收來自被管設(shè)備的響應及陷阱(trap)報文 , 將結(jié)果顯示出來 。代理(agent)是駐留在被管設(shè)備上的一個進程 , 負責接受、處理來自網(wǎng)管站的請求報文 , 然后從設(shè)備上其他協(xié)議模塊中取得治理變量的數(shù)值 , 形成響應報文 , 反送給NMS 。在一些緊急情況下 , 如接口狀態(tài)發(fā)生改變 , 呼叫成功等時候 , 主動通知NMS(發(fā)送陷阱TRAP報文) 。
他們的關(guān)系如下圖:
SNMP就是用來規(guī)定NMS和Agent之間是如何傳遞治理信息的應用層協(xié)議 。
1.4. ASN.1和SMI
SNMP是應用層協(xié)議 , 它要求兩端的協(xié)議實體交換各種報文 , 而低層要求用戶數(shù)據(jù)都是BYTE序列 , 這就產(chǎn)生了一個問題: SNMP協(xié)議實體如何從接受到的一個BYTE序列中識別出報文又如何把一個用內(nèi)部數(shù)據(jù)結(jié)構(gòu)表示的報文轉(zhuǎn)換成一個可供發(fā)送的BYTE序列 , 也就是編解碼問題 。
解決這個問題 , 就需要一個定義從實際的軟件數(shù)據(jù)結(jié)構(gòu)中抽象出來的數(shù)據(jù)類型的表示方法 , 稱為抽象句法 。
ASN.1就是用來描述抽象記法的語言 , 事實上可應用與任何協(xié)議層 , 在它的基礎(chǔ)上 , 通過規(guī)定編碼規(guī)則 , 就可以確定數(shù)據(jù)在傳送中的八比特組的值 。
SMI(StrUCt of Management Imformation) , 通過定義一個宏OBJECT-TYPE , 規(guī)定了治理對象的表示方法 , 從這個意義上說 , 它是ASN.1的一個子集 。另外它還定義了幾個SNMP常用的基本類型和值 。
MIB (Management Imformation Base), 是所監(jiān)控網(wǎng)絡設(shè)備的標準變量定義的集合 。SNMP用層次結(jié)構(gòu)命名方案來識別治理對象 , 就象一棵樹 , 樹的節(jié)點表示治理對象 , 它可以用從根開始的一條路徑來無二義的識別 。見下圖:
治理對象B可以用一串數(shù)字唯一確定{1.2.1.1} 這串數(shù)字是治理對象的object identifier(客體標識符) 。通過object identifier可確定從根到 B的一條路徑 。
治理對象 A 的object identifier 是{1.2.1.1.5} , 或{B 5},后一種表示方法表明A是B的第5棵孩子 。
在agent中這棵樹是用較復雜的數(shù)據(jù)結(jié)構(gòu)來實現(xiàn)的 , 幸運的是 , 建樹這個工作可由MIB編譯器完成 。在樹的葉節(jié)點中 , 存放有訪問函數(shù)的指針 , Agent就是通過調(diào)用這些函數(shù)來從相關(guān)模塊取得治理變量的值的 。
1.5. SNMP報文
SNMP報文結(jié)構(gòu)如下:(編碼之前)
SNMP共有5中報文 , 所以其PDU也有5中 , 僅以GetRequest-PDU為例
2.治理變量的表示
治理變量表示治理對象類型在某一時刻的值(或稱該類型的實例) , SNMP以治理變量作為操作對象 。
治理變量的表示方法是這樣規(guī)定的:形如x.y , 其中x是治理對象的object identifer 。y是能唯一確定對象類型值的一組數(shù)字 , 在非表型變量中為0 , 在表型變量中是這個表的索引 , 比如接口表中的接口號 , 或路由表中的目的網(wǎng)絡地址等等。如:在MIB文件里定義了ipAdEntNetMask這一治理對象 , 其object identifier為1.3.6.1.1.5.6.1.3它是個路由表中的一項 , 它的一個實例就是路由表中某一行的子網(wǎng)掩碼 , 假如這行的索引、目的網(wǎng)絡地址為129.102.1.0 。則這個變量名是:1.3.6.1.1.5.6.1.3.129.102.1.0 。在以后的說明中 , 為了方便 , 把唯一確定治理變量的一組數(shù)字 , 也就是x.y中的y稱作實例 。
推薦閱讀
- TCP/IP協(xié)議詳解卷1學習筆記-IP校驗和與ICMP協(xié)議
- 2023大學現(xiàn)在什么專業(yè)熱門 哪些專業(yè)輕松前景好
- 續(xù)1 利用協(xié)議分析工具學習TCP/IP(3)
- 三 用協(xié)議分析工具學習TCP/IP
- 二 用協(xié)議分析工具學習TCP/IP
- 一 用協(xié)議分析工具學習TCP/IP
- 輕松定義自己的網(wǎng)絡通訊協(xié)議
- InfoPath輕松制作office2003各種表單
- 勵志學習語錄 學生勵志語錄
- 你有什么相見恨晚的英語學習方法
