工控網首頁
>

應用設計

>

SNMP基礎全解析:網絡管理新手必讀

SNMP基礎全解析:網絡管理新手必讀

1 SNMP簡介

隨著計算機網絡的迅猛發(fā)展,網絡設備的數量持續(xù)攀升,網絡架構的復雜性也顯著增強。為了高效地管理和監(jiān)控這些網絡設備,確保網絡的穩(wěn)定運行,業(yè)界迫切需要一種標準化的網絡管理協議。正是在這樣的背景下,簡單網絡管理協議(SNMP,Simple Network Management Protocol)應運而生,憑借其簡潔高效的特點,迅速成為網絡管理領域中最為廣泛使用的協議之一。

SNMP采用了輪詢機制,提供了一套基礎且實用的功能集,特別適合于小型、快速且成本敏感的網絡環(huán)境。它以用戶數據報協議(UDP)作為傳輸載體,這種設計不僅確保了協議的輕量級和高效性,還使得SNMP能夠被絕大多數網絡設備所支持。此外,SNMP還具備強大的信息傳輸能力,能夠保證管理信息在任意兩個節(jié)點之間可靠傳輸。這使得網絡管理員可以方便地通過網絡遠程查詢設備狀態(tài)、修改設備配置、接收設備告警信息等,從而輕松實現對網絡的集中管理和故障排查,極大地提升了網絡管理的效率和便捷性。

2 SNMP的核心組件

SNMP的核心組件包括SNMP管理器(SNMP Manager)、SNMP代理(SNMP Agent)和管理信息庫MIB(Management Information Base)。它們共同構成SNMP的管理模型,在SNMP的架構中都起著至關重要的作用。

image.png

SNMP管理器(SNMP Manager)

SNMP管理器是一個集中化的監(jiān)控系統,通常被稱為網絡管理系統(NMS)。它通過與網絡設備上的代理(Agent)進行通信,獲取設備的狀態(tài)信息并實施管理。例如,運行SNMP服務器程序的路由器被稱為代理,而運行SNMP客戶端程序的主機則被稱為管理器。

SNMP代理(SNMP Agent)

SNMP代理是一個部署在被管理設備上的軟件模塊,其核心職責是維護設備的管理信息庫(MIB),并根據SNMP管理器的指令,提供或更新設備的運行狀態(tài)信息。例如,管理器可以通過查詢代理所維護的MIB中的關鍵變量(如接收和發(fā)送的數據包數量),來判斷路由器是否出現擁塞情況。此外,當設備發(fā)生故障或其他重要事件時,代理能夠主動向管理器發(fā)送通知,及時報告設備狀態(tài)的變化,從而確保管理器能夠實時掌握網絡設備的運行情況。

管理信息庫(Management Information Base)

管理信息庫(MIB)是一個層次化的數據庫,用于存儲被管理設備的各種資源信息。這些信息以對象實例(即變量)的形式組織,每個代理都維護著一個獨特的MIB。MIB通常被劃分為多個類別,例如系統、接口、地址轉換、IP、UDP、EGP、ICMP和TCP等。這些類別共同構成了MIB對象的集合,為管理器提供了全面的設備信息,從而支持其對設備的高效監(jiān)控和管理。

SNMP的管理信息庫(MIB)采用樹形結構,其根節(jié)點位于最頂端,且根節(jié)點本身沒有名稱。如下圖所示,這是MIB的一個部分,也被稱為對象命名樹。樹中的每個節(jié)點都對應一個唯一的對象標識符(OID,Object Identifier),用于標識一個具體的管理對象。MIB樹的每個分支都有一個數字和名稱,而每個節(jié)點的OID則是從樹的根節(jié)點到該節(jié)點的完整路徑,以點分十進制的形式表示。例如,“system”對象的OID為1.3.6.1.2.1.1,而“interfaces”對象的OID為1.3.6.1.2.1.2。這種結構使得網絡管理器能夠通過OID快速定位和訪問特定的管理信息。

image.png

3 SNMP如何工作?

一旦網絡中啟用了SNMP協議,網絡管理系統(NMS)便作為整個網絡的管理核心,開始對網絡設備進行管理和監(jiān)控。每個被管理的設備都包含以下關鍵組件:駐留在設備上的代理(Agent)、多個被管理對象以及管理信息庫(MIB)。NMS通過與運行在設備上的代理進行交互,由代理對設備端的MIB進行操作,從而完成NMS下達的指令。

SNMP工作原理

NMS將協議數據單元(通常稱為SNMP Get請求)發(fā)送到響應SNMP的網絡設備。這些請求用于查詢設備的狀態(tài)信息或執(zhí)行管理操作。用戶可以通過網絡監(jiān)控工具跟蹤整個通信過程,并從SNMP獲取數據,以便實時了解網絡設備的運行狀態(tài)和性能指標。

SNMP消息類型

SNMP規(guī)定了幾個消息類型來完成各組件之間的信息交換:

Get:用于從SNMP代理中檢索數據。代理會通過響應消息返回請求的值,作為對Get請求的答復。

GetNext:管理器通過此消息請求獲取變量的值。它常用于檢索表中條目的值。當管理器不知道條目的具體索引時,GetNext請求能夠幫助其逐步遍歷表中的對象,從而獲取所需信息。

Set:由SNMP管理器發(fā)起,用于在SNMP代理上設置對象實例的值,從而實現對設備配置的更改。

Response:由SNMP代理發(fā)出的Response消息,能夠返回一個或多個參數值。它是對Get、GetNext、Set以及GetBulk四種請求的響應。當代理接收到NMS發(fā)送的Get或Set指令后,會通過操作MIB完成相應的查詢或修改任務,隨后利用Response消息將結果反饋給NMS。

Trap:由SNMP代理主動發(fā)送的消息,無需管理器請求。當設備檢測到故障或其他重要事件時,代理會發(fā)送Trap消息,向管理器報告情況。

GetBulk:這是SNMPv2c版本新增的一種消息類型,專門用于實現NMS對被管理設備的批量信息查詢功能。

Inform:這是SNMPv2c版本新增的一種消息類型,Inform本質上是被管理設備向NMS發(fā)送的告警信息。與Trap消息不同,Inform在發(fā)送后需要NMS的確認響應。如果在規(guī)定時間內未收到確認響應,設備會重新發(fā)送告警消息,直到收到確認或達到最大重傳次數。這種方式為告警信息提供了更可靠的傳輸保障,避免了Trap消息可能因網絡問題而丟失的情況。

4 SNMP端口

SNMP端口是SNMP通信的端點,用于傳輸SNMP消息。SNMP消息通常通過UDP協議進行傳輸,主要使用UDP端口號161(用于管理器與代理之間的通信)和162(用于代理向管理器發(fā)送Trap消息)。此外,為了增強通信的安全性,SNMP也可以通過傳輸層安全性(TLS)或數據報傳輸層安全性(DTLS)協議進行傳輸。這些協議的使用,使得SNMP在保證高效通信的同時,也能滿足對安全性的要求。具體的端口使用情況如下:

代理進程接收請求信息

協議:UDP

端口號:161

描述:代理進程運行在被管理設備上,監(jiān)聽UDP端口161,接收來自網絡管理系統(NMS)的SNMP請求,用于查詢或修改設備的配置信息。

NMS與代理進程之間的通信

協議:UDP

端口號:161

描述:NMS通過UDP端口161與代理進程進行通信,發(fā)送SNMP請求以查詢設備狀態(tài)或修改設備參數。代理進程接收請求后,通過相同的端口返回響應信息。

NMS接收通知信息

協議:UDP

端口號:162

描述:當被管理設備發(fā)生特定事件(如故障或性能閾值超出)時,代理進程會通過UDP端口162向NMS發(fā)送SNMP Trap通知,告知NMS設備的狀態(tài)變化或異常情況。

代理進程生成通知信息

協議:任何可用的端口

描述:代理進程在生成SNMP通知信息時,可以使用設備上的任何可用端口進行發(fā)送,但通常會指定一個固定的端口以簡化管理。

接收請求信息(TLS/DTLS)

協議:TLS/DTLS

端口號:10161

描述:當SNMP通信需要更高的安全性時,代理進程會監(jiān)聽TLS或DTLS協議的端口10161,接收來自NMS的安全請求。這種方式確保了數據傳輸的保密性和完整性。

接收通知信息(TLS/DTLS)

協議:TLS/DTLS

端口號:10162

描述:在使用TLS或DTLS協議進行SNMP通信時,NMS會監(jiān)聽端口10162,接收代理進程發(fā)送的安全Trap通知。這種方式增強了通知消息的可靠性和安全性,防止數據在傳輸過程中被篡改或竊取。

5 SNMP版本

SNMP有SNMPv1,SNMPv2c和SNMPv3三種版本。

image.png

SNMPv1

SNMPv1是該協議的首個版本,采用基于團體名字符串(Community String)的認證機制,并且僅支持UDP協議。由于其設計簡單、易于部署,SNMPv1在RFC 1155和RFC 1157中被詳細定義,非常適合用于基礎的網絡管理場景。然而,其安全性較弱,因為認證過程僅依賴于簡單且以明文形式傳輸的團體名字符串,這使得它容易受到安全威脅。此外,SNMPv1的返回報文錯誤碼較為有限,這在一定程度上限制了其對復雜網絡問題的診斷能力。同時,SNMPv1僅支持32位計數器,對于現代高吞吐量網絡,可能會導致計數器溢出的問題,從而影響網絡監(jiān)控的準確性。

SNMPv2c

SNMPv2c是SNMPv1的升級版本,它在保留團體名認證方式的同時,引入了多項重要的改進。這些改進包括優(yōu)化的MIB結構元素、新增的GetBulk和Inform消息類型、更豐富的標準錯誤碼信息、更靈活的傳輸映射以及更廣泛的協議數據單元類型。此外,SNMPv2c不僅支持UDP,還可以配置為使用TCP,從而顯著提升了通信的可靠性和穩(wěn)定性。盡管如此,它仍然沿用了SNMPv1的“基于團體”的管理架構,這也是其名稱“SNMPv2c”(community-based SNMPv2)的由來。這些特性使得SNMPv2c在兼容性與功能提升之間取得了良好的平衡。該版本在RFC 1901、RFC 1905和RFC 1906中得到了詳細定義和說明。

SNMPv3

為解決SNMPv2c在安全性上的短板,IETF推出了SNMPv3版本,以應對不斷升級的網絡安全挑戰(zhàn)。作為目前最安全的SNMP版本,SNMPv3引入了先進的安全機制,包括基于用戶安全模塊(USM)的認證與加密,以及基于視圖的訪問控制模型(VACM)。借助VACM,網絡管理員能夠針對每個設備上的每個MIB對象精確設定訪問權限,相較于SNMPv1和SNMPv2c,實現了更細致的訪問控制。此外,SNMPv3不僅支持UDP,還支持TCP協議,進一步提升了數據傳輸的可靠性。它還提供了對SNMP實體的遠程配置功能,使網絡管理更加靈活高效。SNMPv3的相關規(guī)范在RFC 1905、RFC 1906、RFC 2571、RFC 2572、RFC 2574和RFC 2575中得到了詳細定義。總體而言,SNMPv3憑借其集成的認證和加密機制(可單獨或組合使用),顯著增強了網絡管理的安全性,已成為商業(yè)和政府機構網絡管理的首選標準。

image.png

6 SNMP安全等級

SNMPv3通過USM提供了三種安全級別:

無認證無加密:與SNMPv1和SNMPv2c類似,報文以明文傳輸,無認證和加密。

有認證無加密:提供報文的完整性檢查和源身份驗證,但數據仍然以明文傳輸。

有認證有加密:提供完整的身份驗證、數據完整性檢查和加密,確保數據傳輸的安全性。它支持基于哈希的消息認證碼(如MD5或SHA)用于認證,以及DES-56等加密算法用于隱私保護。

7 SNMP工具: MIB Browser - Ireasoning

您可以通過官網下載地址輕松獲取該SNMP工具。由于其采用直觀的圖形化界面,操作極為簡便,即使是初次使用的用戶也能快速上手。

image.png

您還可以在“Tools”菜單中找到“Trap Receiver”和“Trap Sender”功能,它們分別對應于SNMP的snmptrapd和snmptrap工具。

以N-Tron系列交換機為例,您可以通過訪問官網下載對應型號的MIB文件,并將其導入到MIB Browser中。這樣,您就可以輕松實現對交換機各個參數的監(jiān)控與管理,操作簡單且高效。

image.png

8 總結

SNMP作為一種廣泛應用于網絡管理的協議,具備強大的網絡監(jiān)控、故障檢測、遠程配置以及標準化信息收集功能,為網絡管理員提供了高效管理網絡設備的有效工具。它簡單易實現,對設備資源占用低,且具有良好的穩(wěn)健性和可擴展性,尤其適合局域網環(huán)境中的設備管理。然而,SNMP在處理大規(guī)模網絡時存在擴展性不足的問題,其輪詢機制可能導致通信開銷增大,缺乏面向對象的數據視圖和統一的控制定義,增加了管理復雜網絡的難度。此外,SNMPv1和SNMPv2c的安全性較弱,容易受到攻擊,而早期版本的廣泛使用限制了整體安全性提升。盡管SNMPv3引入了加密和認證機制,但在檢索大量數據時仍表現不佳,且集中式的管理結構在大型復雜網絡中可能導致管理效率下降。

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

如何解決使用TwinCAT時EtherCAT網絡出現報錯

Anybus CompactCom 40系列EtherCAT模塊 - 透明以太網

Anybus CompactCom 40系列DeviceNet模塊

Anybus CompactCom 40 M12 模塊— PROFINET

Anybus CompactCom 40系列EtherCAT模塊