簡易網路管理通訊協定 (Simple Network Management Protocol, SNMP) 是一組標準通訊規則,也就是通訊協定。這項通訊協定規範查詢及監控電腦網路硬體及軟體的主要方式。
SNMP 不論硬體製造商是 Juniper 或 Cisco,也不分軟體是 UNIX 版本或 Windows 版本,一律採用標準方法查詢資訊及尋找必要資訊所在路徑。若不採用 SNMP 監控,就無法查看網路內容、無法得知裝置效能,也無法偵測問題所在。
SNMP 源於 1989 年,分為多種不同的形式,儘管後有替代標準出現,SNMP 仍然是監控及管理網路連線裝置時最常用的解決方案。它是讓網路管理程式或網路管理員能夠瞭解網路基礎架構狀態的重要監控工具。
SNMP 監控基礎概念
SNMP 的概念相當單純。每個網路裝置均裝有一種程式,稱為 SNMP 代理程式,這個程式會收集裝置相關資訊,並將資訊整理成符合統一格式的項目,而且能夠回應 SNMP 查詢。除了伺服器和工作站以外,這些裝置可能還包括電話、印表機、交換器以及其他硬體。發出這些 SNMP 查詢會是 SNMP 管理程式;SNMP 管理程式會針對所有採用 SNMP 技術的網路裝置進行資訊輪詢、收集和處理。網路監控需要的就只有這些。
SNMP 代理程式
這個代理程式是主要的運作核心。它所負責的是收集裝置相關資訊、整理資訊,以及按照管理程式的查詢回應適切的資料。此外,這個代理程式也會設定有權存取其資訊的管理程式,還能發揮媒介作用,針對代理程式可以連線但本身並未設定 SNMP 流量的裝置報告相關資訊。
網路硬體和軟體通常會內建 SNMP 代理程式,只需要完成啟用和設定即可。
SNMP 管理程式
SNMP 管理站的範圍從簡易型到複合型不等。通常,SNMP 管理程式負責監控 SNMP 活動、記錄所有裝置資料,而且能夠建立具有實用價值的報告。
SNMP 訊息結構
這樣的管理程式/代理程式結構相當簡單明瞭,但 SNMP 的資料階層就未必如此。可以想見,SNMP 是從 1989 年堅持到現在,如今仍然廣為使用的通訊協定,其設計勢必十分具有彈性和韌性。因此,SNMP 不需拘泥於固定的格式。只要使用一種稱為「管理資訊庫」(Management Information Base, MIB) 的階層樹狀結構即可。這個術語聽起來複雜,其實概念很簡單。
每一個分支均標示一個識別碼和一個文字字串。這些標示可以互換,就像 IP 位址是數字而主機名稱是字串,但兩者可以代表同一台裝置一樣。若要參照某個特定節點,您必須追蹤從根節點到該特定節點的路徑,而且要全程新增每個分支。每個交集處分別以一點代表。包含所有分支的完整位址就稱為物件識別碼 (OID)。以此方式所識別的物件是可供識別的網路裝置相關資訊,例如 CPU 使用量或介面狀態。其中大多數物件均為標準物件,但有特殊需求的製造商也可能會自行開發出專屬物件。
假設不使用門牌號碼而改用地圖查詢某個地點,您查到的結果會是一份清單,上面列有通往目的地為止的每個轉彎處,而其中每一個點就代表一個交叉口。若使用 MIB 檔案,大多數網路管理軟體皆能顯示 OID 樹狀結構,而且通常會是資料夾清單形式,例如電腦檔案系統。這種方法有幾項好處,不過難以描述。安裝代理程式時會包括所有 OID,也就是包含其裝置中所有相關要素的一切狀態,只要管理程式發出簡易的要求,就能提供這些資料予以回應。
這種方式也能讓整理網路裝置變得更簡單、更有彈性。
SNMP 訊息類型
SNMP 使用度廣而且歷久不衰,主要原因其實在於其訊息相當簡單。資料類型共分為七種。管理程式可以:
- 要求代理程式提供最新的 OID 值 (Get)
- 要求 MIB 中的下一個物件。也就是不需要指定 OID 就能周遊樹狀結構。(GetNext)
- 發出多項 GetNext 要求 (GetBulk)。
- 要求代理程式更改遠端主機的值,這是整個 SNMP 通訊協定唯一的一項寫入作業 (Set)
代理程式能夠傳回:
- 回應,內容加註管理程式所要求的資訊 (Response)
- 「陷阱」訊息,不是由管理程式發出的要求,用於提供裝置事件相關資訊。較新的 SNMP 版本已將 SNMP 陷阱更名為「通知」(Trap)
最後,管理程式可以確認收到陷阱訊息 (Inform)。這一段簡短的訊息可以讓您掌握網路相關資訊,包括:
- 頻寬使用量
- 磁碟空間使用量
- CPU 和記憶體使用量
- 裝置故障情形
若有較複雜的實作,您可以產生報告、傳送簡訊或文字警示,也可以製作庫存清單。
SNMP 版本:用途與限制
初版的 SNMPv1 最簡單、最基本,目前仍然有人使用。這個版本為人所知、無處不在,而且很容易就能取得。缺點是不夠安全。例如,這個版本採用純文字驗證方式。未獲授權的裝置可以偽裝成管理程式。倘若一般 SNMP 用途有任何可疑之處,可能就來自於這個版本的已知問題。
目前使用度最廣的版本是第二版,也就是 SNMPv2c,因為這個版本包含了數項增強功能。SNMPv3 發佈於 1998 年,至今仍是最新版本,這個版本會要求驗證,而且能夠善用傳輸通訊協定在安全性方面所能發揮的優勢,包括 SSH 和 TLS 在內。不過,由於安全功能的緣故,其設定方式較為複雜,若只需基本用途,採用舊版本較適合。
簡易性與彈性之間的取捨
SNMP 有一項優點,就是採用基本設定,其設定程序簡單容易,而且通常可以免費使用。這類實作的功能有限,但有時候基本功能也就夠了。較複雜的實作則可提供報告、庫存控管以及警示等功能。您的硬體和軟體一定已經內建了 SNMP 代理程式,這點幾乎不會出錯。只要取得管理站,並且啟用這些代理程式,就能開始使用 SNMP 監控網路了。