SNMP協議

SNMP協議

簡單網絡管理協議(SNMP,Simple Network Management Protocol)構成了互聯網工程工作小組定義的Internet協議簇的一部分。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關注的情況。它由一組網絡管理的標準組成,包含一個應用層協議、數據庫模式和一組數據對象。

【概論和基礎觀念】

在典型的SNMP用法中,有許多系統被管理,而且是有一或多個系統在管理它們。每一個被管理的系統上有運行一個叫做代理者(agent)的軟件組件,且透過SNMP對管理系統報告信息。

基本上,SNMP代理者以變量呈現管理數據。管理系統透過GETGETNEXTGETBULK協議指令取回信息,或是代理者在沒有被詢問的情況下,使用TRAPINFORM發送數據。管理系統也可以發送配置更新或控制的請求,透過SET協議指令達到主動管理系統的目的。配置和控制指令只有當網絡基本結構需要改變的時候使用,而監控指令則通常是常態性的工作。

可透過SNMP訪問的變量以層次結構的方式結合。這些分層和其他元數據(例如變量的類型和描述)以管理信息庫(MIBs)的方式描述。

 

【SNMP基本組件】

一個SNMP管理的網絡由下列三個關鍵組件組成:

  1. 網絡管理系統(NMSs,Network-management systems)
  2. 被管理的設備(managed device)
  3. 代理者(agent)

一個網絡管理系統運行應用程序,以該應用程序監視並控制被管理的設備。也稱爲管理實體(managing entity),網絡管理員在這兒與網絡設備進行交互。網絡管理系統提供網絡管理需要的大量運算和記憶資源。一個被管理的網絡可能存在一個以上的網絡管理系統。

一個被管理的設備是一個網絡節點,它包含一個存在於被管理的網絡中的SNMP代理者。被管理的設備透過管理信息庫(MIB)收集並存儲管理信息,並且讓網絡管理系統能夠透過SNMP代理者獲取這項信息。

代理者是一種存在於被管理的設備中的網絡管理軟件模塊。代理者控制本地機器的管理信息,以和SNMP兼容的格式發送這項信息。

 

【SNMP架構】

從體系結構上來講,SNMP框架由主代理、子代理和管理站組成。

主代理

主代理是一個在可執行SNMP的網絡組件上運作的軟件,可迴應從管理站發出的SNMP要求。它的角色類似客戶端/服務器結構(Client/Server)術語中的服務器。主代理依賴子代理提供有關特定功能的管理信息。

如果系統當前擁有多個可管理的子系統,主代理就會傳遞它從一個或多個子代理處收到的請求。這些子代理在一個子系統以及對那個子系統進行監測和管理操作的接口內爲關心的對象建模。主代理和子代理的角色可以合併,在這種情況下我們可以簡單的稱之爲代理(agent)。

子代理

子代理是一個在可執行SNMP的網絡組件上運作的軟件,運行在特定子系統的特定管理信息庫(MIB,Management Information Base)中定義的信息和管理功能。子代理的一些能力有:

  • 蒐集主代理的信息
  • 配置主代理的參數
  • 迴應管理者的要求
  • 產生警告或陷阱

對協議和管理信息結構的良好分離使得使用SNMP來監測和管理同一網絡內上百的不同子系統非常簡單。MIB模型運行管理OSI參考模型的所有層,並可以擴展至諸如數據庫,電子郵件以及J2EE參考模型之類的應用。

管理站

管理者或者管理站提供第三個組件。它和一個客戶端/服務器結構下的客戶端一樣工作。它根據一個管理員或應用程序的行爲發出管理操作的請求,也接收從代理處獲得的TRAP。

 

【開發和使用】

SNMP協議工作在OSI模型的應用層(第七層)。它(在第一版中)指定了四種核心協議數據單元(PDU):

  1. GET,用來得到一條管理信息
  2. GETNEXT,用來反覆得到管理信息的序列
  3. SET,用來給一個被管理的子系統製造一個變化
  4. TRAP,用來報告一個關於被管理子系統的警告或其他異步事件

典型的,SNMP爲代理使用UDP端口161,爲管理站使用UDP端口162。

第一版因爲其脆弱的安全性而備受爭議。客戶端的認證使用明碼發送。在80年代,SNMP第一版被設計出來的時期,互聯網標準的認證/安全並不被主要的協議設計團體所重視。

之後,又相繼推出了第二版和第三版。其中,第二版引入了GETBULK以取代反覆的GETNEXT,從而在單個請求中獲取大量的管理數據。然而,SNMP第二版的新安全系統被認爲過於複雜,而不被廣泛接受。SNMP第三版提供三項重要的服務:認證、隱私和訪問控制。

 


下面是來自百度知道的SNMP相關的一個問題,感覺比較經典,記錄下來:

請問snmp到底是幹啥的。

首先,複製粘貼的請不要來了,百度能搜到的網頁我都看了,一頭霧水,都說些概念性的東西。
其實我就想知道,這個功能到底有什麼用,怎麼用,是在電腦上裝一個軟件就可以遠程跨網段控制其它的路由器嗎?如果是這個,有的路由器本身就有開放遠程WEB管理功能。有什麼區別。謝謝

這個事情分兩方面來說:
首先是路由器這部分。路由器開啓SNMP功能之後,它能夠對自己的每個接口上的流量有一個統計,當然統計的不單單隻有流量。然後路由器把統計到的內容按一定的格式保存起來。這個格式是大家都商量好的。比如上學的時候出分數。大家約定,第一個成績是數學、第二個是語文、第三個是英語。老師錄入成績就按照這個約定來。

另外一方面就是剛纔你說到的電腦上的軟件。這個軟件幹什麼用的呢? 用來向路由器發送一個請求,獲取數據的。首先你得讓路由器知道你想要什麼數據吧? 這個就用到了前面說的那個規則,約定。接着上面的例子,老師就相當於路由器,你就是電腦上的軟件。你想問老師數學成績,按照約定,你就要跟老師說:老師,我需要第一個成績。 因爲第一個成績是什麼,大家都是清楚的,這樣老師就把數學成績給你了。

總體來說,SNMP就是爲了讓別人能夠獲得路由器上的統計數據而約定好的數據交流的規則。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章