SNMP 教程

本教程是為了簡要解說

什麼是 SNMP?

簡易網路管理通訊協定 (SNMP) ,是由網際網路架構委員會 (IAB) 在 RFC1157 中定義的應用程式層通訊協定,用於交換網路裝置之間的管理資訊。它是傳輸控制通訊協定/網際網路通訊協定 (TCP⁄IP) 通訊協定組合的一部分。

SNMP 是用於管理和監視網路元素的廣泛接受的通訊協定之一。大多數專業級網路元素都具有配套的 SNMP 代理程式。必須啟用并設定這些代理程式,以與網路管理系統 (NMS) 進行通訊。

SNMP 基本元件及其功能

SNMP 包括

SNMP 管理器:

管理器或管理系統是一個獨立的實體,負責與 有實施SNMP 代理程式的網路裝置進行通訊。這通常是用於執行一個或多個網路管理系統的電腦。

SNMP 管理器的主要功能
  • 查詢代理程式
  • 從代理程式獲得回應
  • 在代理程式中設定變數
  • 確認來自代理程式的異步事件

受控裝置:

受控裝置或網路元素,是需要某種形式的監視和管理的網路的一部分,如 路由器、交換器、伺服器、工作站、印表機、UPS 等等。

SNMP 代理程式:

代理程序是封包在網路元素中的程式。啟用代理程式,可讓其從本地收集裝置的管理資訊資料庫,並使其在 SNMP 管理器查詢時可用。這些代理程式可以是標準的(如 Net-SNMP),也可特定於供應商(如 HP Insight Agent)

SNMP 代理程式的主要功能
  • 收集有關其本地環境的管理資訊
  • 存儲和擷取 MIB 中定義的管理資訊。
  • 向管理器傳送事件。
  • 充當一些非 SNMP 可管理網路節點的 proxy。
基本 SNMP 通訊圖表
SNMP 的基本元件及其功能 - ManageEngine OpManager SNMP

管理資訊資料庫或管理資訊庫 (MIB)

每個 SNMP 代理程式都有一個描述受控裝置參數資訊資料庫。SNMP 管理器使用此資料庫,向代理程式請求特定資訊,並根據網路管理系統 (NMS) 的需求,進一步翻譯資訊。代理程式和管理器之間共用的資料庫稱為管理資訊庫 (MIB)。

通常,這些 MIB 包含為網路上的硬體節點定義的標準統計和控制值集合。SNMP 還允許透過使用私人 MIB ,將特定於特定代理程式的值,擴展到這些標準值。

簡而言之,MIB 檔案是 SNMP 管理器可以詢問代理程式的問題集合。如 MIB 中所定義,代理程式在本地收集這些資料並將其存儲。因此,SNMP 管理器應該了解每種類型代理程式的這些標準和私人問題。

 

SNMP MIB Browser and SNMP Walk Tool

ManageEngine's Suite of Free Tools includes a SNMP MIB Browser which helps to Load/unload MIBs and fetch MIB data of SNMP(v1, v2c, v3) agents. SNMP MIB Browser is a complete tool for monitoring SNMP enabled devices and servers. You can load, view multiple MIB modules and perform GET, GETNEXT and SET SNMP operations. This tool is easy to use and allows you to view, configure and parse SNMP traps. You can also perform SNMP operations from Windows and Linux devices.

 

MIB 結構和物件識別碼(物件 ID 或 OID)

管理資訊庫 (MIB) 是用於管理網路元素的資訊的集合。MIB 包含由名稱物件識別碼(物件 ID 或 OID)標識的受控物件。

每個識別碼都是唯一的,並表示受控裝置的特定特性。當查詢時,每個識別碼的返回值可能不同,如文字、數字、計數等...

有兩種類型的受控物件或物件 ID:純量和表格式。透過一個例子來更好的理解它們

純量:裝置的廠商名稱,結果只能有一個。(如定義所述:「純量物件定義單個物件執行個體」)

表格式:四元組處理器的 CPU 使用率,這將分別為每個 CPU 給出結果,這意味著該特定物件 ID 將有 4 個結果。(如定義所述:「表格式物件定義了在 MIB 表格中分組在一起的多個相關物件執行個體」)

每個物件 ID 都是在 MIB 中按階層組織的。MIB 階層可以用具有單個變數識別碼的樹狀結構表示。

一個典型物件 ID 將是一個整數的點線清單。例如,RFC1213 中「sysDescr」的 OID 為 .1.3.6.1.2.1.1.1

 

MIB 樹表
SNMP MIB 樹表 - ManageEngine OpManager SNMP
 

SNMP 的基本命令

資訊交換的簡單性使得 SNMP 成為廣泛接受的通訊協定。主要原因是簡潔的命令集,以下為命令集清單:

  • GET:GET 操作是管理器向受控裝置傳送的請求。執行該操作可從受控裝置擷取一個或多個值。
  • GET NEXT:此操作與 GET 相似。重要的區別是 GET NEXT 操作擷取 MIB 樹中下一個 OID 的值。
  • GET BULK:GETBULK 操作用於從大型 MIB 表格中擷取大量資料。
  • SET:管理員使用此操作修改或分配受控裝置的值。
  • TRAPS:與從 SNMP 管理器啟動的上述命令不同,TRAPS 由代理程式啟動。這是代理程式在發生事件時向 SNMP 管理器發出的訊號。
  • INFORM:該命令與代理程式啟動的 TRAP 類似,但 INFORM 包含 SNMP 管理器在接收訊息時的確認。
  • RESPONSE:此命令用於傳回由 SNMP 管理器執行的動作的值或訊號。
 

典型 SNMP 通訊

作為 TCP⁄ IP 通訊協定組合的一部分,SNMP 訊息被包裝為使用者資料包通訊協定 (UDP),並在網際網路通訊協定中包裝並傳輸。下圖將說明防禦部門 (DoD) 開發的四層模型。

典型 SNMP 通訊 - ManageEngine OpManager SNMP

GET⁄ GET NEXT⁄ GET BULK⁄ SET

How SNMP Monitoring works in Networking? - ManageEngine OpManager SNMP

 

TRAP

SNMP Traps Tutorial - ManageEngine OpManager SNMP

 

INFORM

SNMP Tutorial for beginners - ManageEngine OpManager SNMP

 

預設情況下,SNMP 使用連接埠 161、TRAP / INFORM 使用連接埠 162 進行通訊。
 

SNMP 版本

SNMP 自啟動以來,已經經歷了重大的升級。但是,SNMP v1 和 v2c 是 SNMP 實施最多的版本。對 SNMP v3 的支援最近開始迎頭趕上,因為與舊版本相比,它更安全,但仍未達到可觀的市場佔有率。

SNMPv1:

這是通訊協定的第一個版本,在 RFC 1155 和 1157 中定義

SNMPv2c:

這是已修訂的協議,它包括 SNMPv1 在通訊協定封包類型、傳輸對應、MIB 結構元素方面的增強功能,但仍使用現有 SNMPv1 的管理結構(「基於社群」,因此稱為 SNMPv2c)。它在 RFC 1901、RFC 1905、RFC 1906 和 RFC 2578 中定義。

SNMPv3:

SNMPv3 定義了 SNMP的安全版本。SNMPv3 還有助於 SNMP 實體的遠端設定。它由 RFC 1905、RFC 1906、RFC 3411、RFC 3412、RFC 3414 和 RFC 3415 定義。

儘管每個版本都經過完善具有更豐富的功能,但是每次升級時都會強調安全性。這是每個版本安全性方面的一個小剪輯。

SNMP v1 基於社群的安全性
SNMP v2c 基於社群的安全性
SNMP v2u 基於使用者的安全性
SNMP v2 基於當事方的安全性
SNMP v3 基於使用者的安全性

其他有用連結

  • 如何為 SNMP 安裝和設定 Windows 裝置?
  • 如何為 SNMP 安裝和設定 Linux 裝置?
  • 如何為 SNMP 安裝和設定 Solaris 裝置?
關注點:OpManager 支援 SNMP 的所有版本。您可以監視任何已啟用 SNMP 的裝置,以管理/監視其效能並處理 SNMP TRAP。
– OpManager: 來自 ManageEngine網路監視軟體