簡單網絡管理協議
(Simple Network Management Protocol)
?除了提供網絡層服務的協議和使用那些服務的應用程序,因特網還需要運行一些讓管理員進行設備管理、調試問題、控制路由、監測機器狀態的軟件。這種行為稱為網絡管理。
?
?隨著網絡技術的飛速發展,網絡數量、網絡設備越來越多,而且許多設備來自各個不同的廠家,如何管理這些設備就變得更加重要了。
?從設備來看,基于TCP/IP得網絡管理包含兩個部分:網絡管理站和被管理的網絡單元(也叫被管設備)。(見下下頁示例圖)
–網絡管理站是運行管理進程的主機。一般都是帶有彩色監視器的工作站,可以顯示所有被管設備的狀態(例如連線是否掉落、各連線上的流量狀況)。
–被管設備主要包括種類繁多的被管主機和被管路由器,但都應該是運行TCP/IP協議的。在被管設備中需要運行與管理相關的軟件,叫做代理程序(Agent)或代理進程。
–管理站作為客戶,運行客戶端的軟件;而各個被管設備運行的代理程序為服務器端程序
?為進行管理,管理進程(客戶端)需要和代理程序(服務器端)進行通信,這種通信可以有兩種方式:
–管理進程向代理進程發出請求,詢問一個具體的參數(如詢問網絡單元中不可達的端口數目)或者要求代理進程改變某些參數值(如把 IP 數據包的生存期改為 64 TTL)
–代理進程主動向管理進程報告有某些重要的事件發生(如某個連接口故障)
?單個被管設備可能接收多個管理站的管理。管理軟件使用授權機制來確保只有獲得授權的管理員才能管理相應的設備。同時也支持多等級授權。例如:允許多個管理員從某個路由器獲得信息,但是只允許其中一部分的管理員能修改和控制路由。
?最初,許多網絡都在鏈路層協議中包含管理協議,這樣,即使高層協議失效,也可以在底層進行控制。
?
?但是,對于廣域網,基于TCP/IP的因特網不可能只用單一的鏈路層協議,而是通常是由多種物理網絡由IP路由連接而成。因此,因特網管理和單一網絡管理是不同的。這種不同表現在:
–單一網絡的管理工作站不能控制異質路由設備
–受控實體不使用相同的鏈路層協議
–管理工作站控制的機器可能在因特網中的任意一個節點,管理工作站有可能需要控制和它不在同一物理網絡中的設備,因此除非使用端到端的高層連接,管理工作站不能與受控設備進行通信。
?因此因特網管理協議工作在應用層,使用運輸層協議進行通信。
?管理協議工作在運輸層之上有如下的好處:
–協議可以設計成與硬件無關,因而相同的協議可以用于所有被管設備
–從管理員的角度來看,單一的管理協議集意味著所有的路由將響應相同的命令集,通過使用TCP/IP通信,管理員可以控制整個IP網絡,而無需直接接觸具體的每個物理網絡或路由器類型。
?
?當然,工作在應用層也提出了更多的要求:
–就需要下層協議都是在正常工作的,否則無法進行網管所需要的高層通信
–需要操作系統也是正常工作的,操作系統不正常,就不可能達到應用層
?
?基于TCP/IP的網絡管理協議分為兩個部分:
–其一是管理中所需要的數據及其格式,分別為:
?管理信息庫(Management Information Base)
?管理信息結構(Structure of Management Information)
–其二是規定運行在管理站上的客戶軟件如何與管理代理進行通信,這部分定義了客戶與服務器端交換信息的格式和意義。即簡單網絡管理協議。
?
?下面分別介紹
>
?簡單網絡管理協議(Simple Network Management Protocol)
?
?SNMP 規定管理進程如何與管理代理進行通信,定義了客戶與服務器端交換信息的格式和意義。此外,提供管理授權機制。
?
?早期的管理方式是提供一些管理命令,如重啟系統用reboot、刪除或增加路由用 delete 或 add 等等。但是這種方式的一個重要缺陷是對于每種數據項的每種操作都必須定義一個單獨的命令,這樣,當出現一種新的數據項時,需要增加相應的協議。
?
?SNMP采取另一種方式,
?SNMP 規定了兩類從管理進程到代理的基本命令:
–從一個數據項取數據,這包括兩個命令:
?get-request:從代理進程處提取一個或多個數據項
?get-next-request:從代理進程處提取一個或多個數據項的下一個數據項(關于“下一個”于數據格式有關,在后面講。)
–把值存儲到一個數據項中。
?set-request:設置代理進程的一個或多個數據項
?而其他的命令都是通過這兩類命令來實現。
?
?從代理進程到管理進程規定了兩個操作:
–get-response:這個操作是代理進程作為對上述三個管理進程操作的響應。
–trap:代理進程主動發出的報文,通知管理進程有某些事件發生。
?
?前四種操作是簡單的請求--應答方式,而 SNMP 傳輸通常使用UDP ,因而需要使用超時重傳機制。
?
?SNMP 報文格式:
SNMP報文使用ASN.1編碼,其各字段長度取決于其取值,因此整個長度(除了IP、UDP首部長度確定)不是固定的。
?Abstract?Syntax?Notation 1 是一種形式語言,有兩種表示方式:
–供人閱讀使用的
–壓縮編碼表示,用于通信協議
?特點:
–無歧義
–標準化
–互操作
?版本字段的值為SNMP版本號減 1
?共同體字段是管理進程與代理進程之間的明文格式的口令,默認值為 public
PDU類型字段
0-3時的報文格式如上述表格
而為4時有所不同
?請求標識由管理進程在命令中設置,由代理進程在響應中返回。該字段用于使客戶進程能夠將服務器進程發出的響應和客戶進程先前發出的查詢進行匹配。
?差錯狀態字段由代理進程標注,指明有差錯發生,差錯發生在哪個參數。
?差錯索引字段是一個整數偏移量,指明當有差錯發生時,差錯發生在哪個參數。它是由代理進程標注的,且只在差錯狀態為2、3、4時才進行標注。
?名稱和值字段是要請求的數據名稱或要設置的變量名稱以及其值。
?信息管理庫(Management?Information?Base)(MIB-II RFC 1213 1991)
?本標準指定主機和路由器等被管設備需要保存的數據項,以及可以對這些數據項進行的操作。例如:MIB 規定 IP 軟件必須保存到達每個網絡接口的8位組的數目,并規定網絡管理軟件只能讀這項數據。
?MIB把管理信息劃分為八組,每組都有若干種數據項:
?管理信息結構(Structure of?Management?Information)(RFC 1155)
?對MIB中允許的變量類型進行約束,定義MIB 中各種數據項的數據結構和表示符號,并指定命名變量的規則。SMI規定所有的MIB變量也必須使用ASN.1。
?SNMP中使用的數據類型如下:
–INTEGER、OCTER STRING、……、SEQUENDE OF等共12種。
?
?MIB變量的命名采用對象標識符(Object Identifier),所用對象標識符組成一個名稱空間,由OSI 與 ITU 共同管理對象標識符命名體系利用對象標識符命名體系可以為任意對象命名(如每個國際協議標準都有一個名稱)
?每個命名都是全球唯一的絕對名稱
?名稱空間為一個層次結構(類似DNS)(如下頁圖)
?說明:
?層次結構中每個節點的對象標識符是由從根節點到其上的數字序列組成,如 mib 的對象標識符為 1.3.6.1.2.1,為方便閱讀也可以用相應的字符序列 iso.org.dod.internet.mgmt.mib
?可以看到在MIB中說明的八個組實際上是對象標識符空間中mib節點的8個子節點。這8個節點進一步可以往下分,即為各個組的變量。例如 ipInReceives 是 ip 下的第三個節點,則其對象標識符為:1.3.6.1.2.1.4.3 ,相應字符序列為:iso.org.dod.internet.mgmt.mib.ip.ipInReceives
?末尾為0表明是一個變量的實例:如1.3.6.1.2.1.4.3 .0,標識一個1.3.6.1.2.1.4.3 (ipInReceives的)變量的實例。
?
?以上介紹的是SNMPv1,1993年,發表SNMPv2(RFC 1441),版本二的改進:
?
–為從代理進程讀取大塊數據而定義了一個新的分組
–為使在管理進程之間通信而增加了另一個分組
–定義了兩個新的 MIB ,用于管理進程之間的數據
–提高了安全性, 可以對報文進行加密和鑒別
?小結
?SNMP是一種簡單的管理進程和代理進程之間的請求應答協議。
?MIB中定義了所有代理進程所包含的、能夠被管理進程查詢和設置的變量。
?所有這些變量都以對象標識符進行標識,這些對象標識符構成了一個層次命名結構。
上海艾磊科技有限公司專門為企業提供IT咨詢,IT外包,系統集成,以及各類IT增值服務。其中增值服務包括OFFICE 365云服務,鼎捷企業ERP管理軟件,云備份,企業郵箱,無線覆蓋,上網行為管理,VPN架設,網絡安全服務,INTERNET接入,設備租賃, IP電話服務。