SNMP Walk 與 MIB OID 列表

SNMP Walk 與 MIB OID 列表

(故事最後有一個問題,跟我一起來吧!)

經過大量研究後,我相信我已經開始了解 SNMP 的基礎知識。我一直都知道 SNMP 管理系統會消耗來自設備的資料(也可能會向設備發送資料),但我很難理解如何配置該設定。

我現在正在使用 SNMP 管理系統,所以是時候弄清楚它了。因此我深入了解 MIB 和 OID。據我所知,供應商將為他們的產品提供一個 MIB,其中應包含產品特定的 OID。 MIB就像是可以從裝置查詢的事物的目錄,而OID是可以查詢的特定項目。 (如果我理解有誤,請糾正我。)

例如,SonicWall 可能為其 Firwewall 之一的特定韌體提供 MIB。因此,如果我想監控該防火牆可用的最大連線數,我會從 mysonicwall.com 下載 MIB,將 MIB 匯入 MIB 瀏覽器並找到與最大連線數相對應的適當 OID。然後我可以將該 OID 輸入到我的 SNMP 管理系統中以監控該指標。

所有這些對我來說都很有意義,希望我理解正確。我發現這個過程相當笨重,特別是當現在存在自描述 API 時,但是嘿 SNMP 是在 80 年代創建的,所以我想我們可以使用我們擁有的東西。

但當我在 SonicWall 上執行 SNMP 並行走時,這種理解就會被打破。執行步行會產生 500 多個返回的 OID。但當我檢查 SonicWall 提供的 MIB 時,它只列出了列出的 OID 的一小部分。這是因為透過步行發現的大多數 OID 都不是 SonicWall 特定的,而是通用行業標準 OID?

另外,是否有一種不錯的方法來獲取我的 SonicWall 可以透過 SNMP 提供的所有數據的報告(無論是 sonicwall 特定數據還是行業標準)?就像某些工具一樣,我可以從 SNMP 中輸入數據,然後它可以返回它們的全部含義?

另外,如果我對 SNMP、MIB 和 OID 的理解有任何漏洞,我歡迎您提供回饋。謝謝!

答案1

好的,這就是我的 SNMP 研究成果。我無法驗證這是否 100% 準確,但我覺得我總體上對 SNMP 有了更好的掌握,希望這些資訊對剛入門的人有所幫助。

首先,SNMP 在我看來是一個混亂的系統。它是在 80 年代末開發的,當時沒有一個好的替代方案,所以我想我們只能利用現有的東西。

SNMP 由 3 部分組成:SNMP 管理系統、至少 1 個網路設備以及這些網路設備上的軟體代理程式。例如,您可以使用 Naigos 或 MaxFocus 作為 SNMP 管理系統來查詢網路上的設備,例如印表機、交換器、路由器等。這些軟體元件基本上會根據設備的運作方式產生一堆 SNMP 資料。例如,印表機可能會產生有關其碳粉層級的數據,或者路由器可能會產生有關其目前支援的並發連線數的數據。然後,SNMP 管理系統可以向這些設備查詢此資訊。

但實際上是如何做到的呢?一些標準組織早在 80 年代就將 MIB 放在一起來幫助解決這個問題。 MIB 基本上是一個可查詢的 SNMP 屬性的大型資料樹。這些標準 MIB 涵蓋了大量可查詢的屬性 - 從碳粉到網路設定 - 但正如您可以想像的那樣,隨著新設備和技術的出現,它們並不能涵蓋所有內容。因此,製造商生產了特定於產品的 MIB 來幫助填補這些空白。

MIB 聽起來不錯,但現實是它們似乎常常難以理解,而且寫得不好。有時它們沒有按照正確的規範編寫,因此很難使用它們。也就是說,使用 MIB 來尋找您可以在您選擇的裝置(路由器、印表機等)上查詢哪些項目的一般流程如下:

  1. 為自己取得一個免費的 MIB 瀏覽器軟體。它們都很蹩腳,但我發現 Axence 的 NetTools Pro 或 ManageEngine 的 MIB 瀏覽器是最不蹩腳的。
  2. 大多數 MIB 瀏覽器都預先載入了「預設」MIB 檔案。但是,如果您想知道可以在裝置上查詢哪些供應商特定項目,則必須從供應商下載自訂 MIB 檔案。 (Sonicwall、HP 等)如果您的供應商不提供 MIB 文件,則有一些線上資源可以託管一堆 MIB 文件。我認為有一個叫做 MIB Depot 之類的...
  3. 下載自訂供應商特定 MIB 檔案後,將其匯入 MIB 瀏覽器。
  4. 現在我們對您的 SNMP 設備執行所謂的「行走」。為此,您需要輸入裝置的 IP 位址及其社群字串。 (社區字串實際上只是用於身份驗證的密碼或共享秘密。為什麼SNMP 的創建者決定他們需要有所不同並將其稱為社區字符串超出了我的範圍......)我還應該要提到您正在查詢的裝置需要設定為允許 SNMP 查詢。這通常是透過裝置 Web 介面完成的,通常也是您設定社群字串的地方。
  5. 將 MIB 瀏覽器連接到裝置後,即可執行「步行」功能。每個 MIB 瀏覽器的工作方式都略有不同,因此您需要稍微嘗試一下才能了解其步行功能的工作原理。但一般來說,它應該從您的裝置返回 OID 清單。這些 ID 對應於 MIB 檔案中的條目。通常,您可以雙擊或突出顯示這些 OID 之一,它會找到相應的 MIB 項目,該項目會告訴您該 OID 的用途,例如碳粉等級、作業系統版本、網路連線等。進入您的SNMP 管理系統並開始監控該屬性!

因此,經過我的研究,我發現 SNMP 至少在我看來是一個非常有缺陷且麻煩的系統。但從我所讀到的來看,至少,一旦你配置好它,它往往是可靠和快速的。我希望這些資訊可以幫助那些剛剛深入研究 SNMP 世界的人!這是我發現有幫助的進一步參考:

http://www.allthingsmax.com/2014/02/take-snmp-walk-creating-new-snmp-checks.html

更新:我將在這裡添加另一個提示。當遍歷設備 OID 值時,您可以檢索兩種不同類型的值:標量和表格。

表格用於需要為多個組件提供相同類型值的設備。例如,路由器上可能有 9 個連接埠。每個連接埠都有不同的實體位址或MAC位址。這由 MIB 中的表表示。

標量用於不需要表格佈局的值。

重要部分:標量值始終附加 .0,表格值附加代表特定設備值的數字。例如,在路由器上,連接埠 1 可能會附加 .1,連接埠 2 可能會附加 .2,依此類推。然後,當您將 OID 輸入 SNMP 管理系統時,您需要確保包含最後一個數字字元。例如,ifPhysAddress = .1.3.6.1.2.1.2.2.1.6,但如果不附加表格值,它對您沒有任何好處。這與標量值類似,始終需要附加 .0。一個不錯的 MIB 瀏覽器應該在瀏覽裝置時向您顯示這些附加價值。 ManageEngine 的 MIB 瀏覽器在這方面做得很好。它的格式是這樣的:

--標量值:

系統運作時間.0

系統聯絡人.0

系統名.0

--表格值:

ifPhysAddress.1

ifPhysAddress.2

ifPhysAddress.3

相關內容