簡單網絡管理協議(SNMP)是一種應用層協議,用于監控和管理局域網(LAN)或廣域網(WAN)上的網絡設備。SNMP的目的是為路由器、服務器和打印機等網絡設備提供一種通用語言,以便與網絡管理系統(網絡管理站(Network Management System)).
SNMP的客戶端-服務器架構有以下三個組件:
- SNMP管理器;
- SNMP代理;
- 管理信息庫(管理信息庫).
SNMP管理器充當客戶機,SNMP代理充當服務器,MIB充當服務器的數據庫。當SNMP管理器向代理詢問問題時,代理使用MIB提供答案。
SNMP非常流行,大多數網絡設備都預捆綁了SNMP代理。然而,要使用該協議,網絡管理員必須首先更改其網絡設備的默認配置設置,以便SNMP代理可以與網絡管理系統通信。
SNMP是由互聯網工程任務組(IETF)定義的原始互聯網協議(IP)套件的一部分。存在多個版本的SNMP協議。最新版本SNMPv3包括身份驗證的安全機制加密和訪問控制。
SNMP如何工作
網絡設備和服務上的SNMP軟件代理與網絡管理系統通信,以中繼狀態信息和配置更改。NMS提供了單一界面,管理員可以通過該界面發出批處理命令并接收自動警報。
SNMP依賴于MIB的概念來組織如何交換關于設備度量的信息。MIB是網絡設備組件和狀態信息的正式描述。
可以為物聯網(IoT)中的任何網絡設備創建MIB,包括IP攝像機、車輛、工業設備和醫療設備。除了硬件之外,SNMP還可用于監控服務,如動態主機配置協議(動態主機配置協議).
SNMP在網絡設備和網絡管理系統之間混合使用拉和推通信。SNMP代理與MIB一起駐留在網絡設備上,它不斷收集狀態信息,但僅在收到請求時或當網絡的某個方面越過預定義的閾值(稱為陷阱)時,才會將信息推送到NMS。陷阱消息通常在發生重大事件(如嚴重錯誤情況)時發送到管理服務器。
SNMP還包括一種通知消息類型,使網絡監控工具能夠確認來自設備的消息。通知消息使代理能夠重置觸發的警報。網絡管理工具也可以使用set消息通過SNMP代理對網絡設備進行更改。這種能力使網絡管理員能夠改變設備配置以響應新的網絡事件。
在大多數情況下,SNMP以同步模式運行,通信由SNMP管理器發起,代理發送響應。通常,SNMP使用用戶數據報協議(用戶數據報協議(User Datagram Protocol))作為其傳輸協議。眾所周知的用于SNMP流量的UDP端口是161 (SNMP)和162 (SNMPTRAP)。這兩個端口是基本的默認值,在所有版本的SNMP中都是一樣的。
SNMP之所以被稱為“簡單”,是因為該協議的體系結構并不復雜。SNMP可以發出讀取或寫入命令,例如重置密碼或更改配置設置。它還可以報告使用了多少帶寬、CPU和內存。
作為使用最廣泛的協議之一,SNMP在廣泛的硬件上受到支持,從路由器、交換機和無線接入點等傳統網絡設備到打印機、掃描儀和物聯網設備等終端。
SNMP的組件
SNMP管理的網絡中有四個主要組件。
1.snmp代理
代理軟件在被監控的硬件或服務上運行,收集有關磁盤空間、帶寬使用和其他重要網絡性能指標的數據。當SNMP管理器查詢時,代理會將請求的信息發送回管理系統。如果出現錯誤,代理也可以主動通知NMS。大多數設備預裝了SNMP代理,但通常需要打開并配置。
2.SNMP管理的網絡節點
這些是代理運行的網絡設備和服務。
3.SNMP管理器
NMS是一個軟件平臺,充當代理向其提供信息的集中控制臺。NMS會主動要求代理定期發送更新。網絡管理員可以利用這些信息做什么在很大程度上取決于NMS的功能豐富程度。
有幾個免費的SNMP管理器可用,但它們通常在功能或可以支持的節點數量方面受到限制。另一方面,企業級平臺為更復雜的網絡提供高級功能,有些產品支持多達數萬個網絡節點。
4.管理信息庫
這個MIB數據庫是一個文本文件(。mib ),詳細列出并描述特定設備上可以使用SNMP查詢或控制的所有對象。每個MIB項被分配一個對象標識符(OID)。
SNMP命令
SNMP可以執行多種功能,在網絡設備和管理系統之間混合使用推和拉通信。它可以發出讀或寫命令,如重置密碼或更改配置設置。它還可以報告多少帶寬,中央處理器和內存都在使用中,如果超過預定義的閾值,一些SNMP管理器會自動向管理員發送電子郵件或文本消息警報。
大多數情況下,SNMP以同步模式運行,通信由SNMP管理器發起,代理發送響應。這些命令和消息通常通過UDP或傳輸控制協議/IP(傳輸控制協議),稱為協議數據單元(PDU)。
以下是常見的SNMP命令:
獲取請求:由SNMP管理器生成,并發送給代理以獲取MIB中由OID標識的變量值。
GETBULK請求:由SNMP管理器發送到代理,以有效地獲取潛在的大量數據,尤其是大型表。
獲取下一個請求:由SNMP管理器發送給代理,以檢索MIB層次結構中下一個OID的值。
通知請求:類似于陷阱的異步警報,但需要SNMP管理器確認收到。
回應:由代理發送給SNMP管理器,作為對GET請求、GETNEXT請求、GETBULK請求和SET請求的回復。包含請求變量的值。
設置請求:由SNMP管理器發送給代理以發布配置或命令。
陷阱:一個異步的代理發送給SNMP管理器的警報,表示發生了重大事件,如錯誤或故障。