SNMP協議概述


SNMP協議

一、定義

  SNMP是廣泛應用於TCP/IP網絡的網絡管理標准協議,該協議能夠支持網絡管理系統,用以檢測連接到網絡上的設備是否有任何引起夫案例上關注的情況。SNMP采用輪詢機制,提供最基本的功能集,適合小型、快速、低價格的環境使用,而且SNMP以用戶數據報協議(UDP)報文為承載,因而受到絕大多數設備的支持,同時保證管理信息在任意兩點傳送,便於管理員在網絡上的任何節點檢索信息,進行故障排查。

二、SNMP的由來

  隨着網絡技術的飛速發展,在網絡不斷普及的同時也給網絡管理帶來了一些問題:
  • 網絡設備數量成幾何級數增加,使得網絡管理員對設備的管理變得越來越困難;同時,網絡作為一個復雜的分布式系統,其覆蓋地域不斷擴大,也使得對這些設備進行實時監控和故障排查變得極為困難。
  • 網絡設備種類多種多樣,不同設備廠商提供的管理接口(如命令行接口)各不相同,這使得網絡管理變得愈發復雜。

  在這種背景下,SNMP應運而生,SNMP是廣泛應用於TCP/IP網絡的網絡管理標准協議,該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關注的情況。通過“利用網絡管理網絡”的方式:

  • 網絡管理員可以利用SNMP平台在網絡上的任意節點完成信息查詢、信息修改和故障排查等工作,工作效率得以提高。
  • 屏蔽了設備間的物理差異,SNMP僅提供最基本的功能集,使得管理任務與被管理設備的物理特性、網絡類型相互獨立,因而可以實現對不同設備的統一管理,管理成本低。
  • 設計簡單、運行代價低,SNMP采用“盡可能簡單”的設計思想,其在設備上添加的軟件/硬件、報文的種類和報文的格式都力求簡單,因而運行SNMP給設備造成的影響和代價都被最小化。

三、SNMP的基本組成

  SNMP的基本組件包括網絡管理系統NMS(Network Management System)、代理進程(Agent)、被管對象(Managed Object)和管理信息庫MIB(Management Information Base)。

 

   NMS:NMS在網絡中扮演管理者角色,是一個采用SNMP協議對網絡設備進行管理/監視的系統,運行在NMS服務器上。

  • NMS可以向設備上的Agent發出請求,查詢或修改一個或多個具體的參數值。
  • NMS可以接收設備上的Agent主動發送的Trap信息,以獲知被管理設備當前的狀態。

  Agent:Agent是被管理設備中的一個代理進程,用於維護被管理設備的信息數據並響應來自NMS的請求,把管理數據匯報給發送請求的NMS。

  • Agent接收到NMS的請求信息后,通過MIB表完成響應的指令后,並把操作結果響應給NMS。
  • 當設備發生故障或者其他事件時,設備會通過Agent主動發送信息給NMS,向NMS報告設備當前的狀態變化。

  Managed Object:Managed Object是被管理對象,每一個設備可能包含多個被管理對象,被管理對象可以是設備中的某個硬件,也可以是在硬件、軟件上配置的參數集合。

  MIB:MIB是一個數據庫,指明了被管理設備所維護的變量,是能夠被Agent查詢和設置的信息。MIB在數據庫中定義了被管理設備的一系列屬性:對象名稱對象狀態對象訪問權限對象數據類型等。通過MIB,可以完成以下功能:

  • Agent通過查詢MIB,可以獲知設備當前的狀態信息。
  • Agent通過修改MIB,可以設置設備的狀態參數。

  SNMP的MIB采用樹形結構,它的根在最上面,根沒有名字。如下圖所示的是MIB的一部分,它又稱為對象命名樹。每個對象標識符OID(object identifier)對應於樹中的一個管理對象,該樹的每個分支都有一個數字和一個名稱,並且每個點都以從該樹的頂部到該點的完整路徑命名,如system的OID為1.3.6.1.2.1.1,interfaces的OID為1.3.6.1.2.1.2。

 

 四、SNMP版本

  SNMP的三種版本:SNMPv1SNMPv2cSNMPv3

  • SNMPv1:SNMP的第一個版本,它提供了一種監控和管理計算機網絡的系統方法,它基於團體名認證,安全性較差,且返回報文的錯誤碼也較少。它在RFC 1155和RFC 1157中定義。
  • SNMPv2c:第二個版本SNMPv2c引入了GetBulk和Inform操作,支持更多的標准錯誤碼信息,支持更多的數據類型。它在RFC 1901,RFC 1905和RFC 1906中定義。
  • SNMPv3:鑒於SNMPv2c在安全性方面沒有得到改善,IETF頒布了SNMPv3版本,提供了基於USM(User Security Module)的認證加密和基於VACM(View-based Access Control Model)的訪問控制,是迄今為止最安全的版本。SNMPv3在RFC 1905,RFC 1906,RFC 2571,RFC 2572,RFC 2574和RFC 2575中定義。

五、SNMP端口

  SNMP端口是SNMP通信端點,SNMP消息傳輸通過UDP進行,通常使用UDP端口號161/162。有時也使用傳輸層安全性(TLS)或數據報傳輸層安全性(DTLS)協議,端口使用情況如下:

過程 協議 端口號
代理進程接收請求信息 UDP協議 161
NMS與代理進程之間的通信 UDP協議 161
NMS接收通知信息 UDP協議 162
代理進程生成通知信息 - 任何可用端口
接收請求信息 TLS/DTLS 10161
接收通知信息 TLS/DTLS 10162

 

 六、SNMP工作原理

  一旦網絡中啟動SNMP協議,NMS作為整個網絡的網管中心,會對設備進行管理。每個被管理設備都包含駐留在設備上的Agent、多個被管對象和MIB,NMS通過與運行在被管理設備上的Agent交互,由Agent通過對設備端的MIB的操作,完成NMS的指令。SNMP的工作原理是將協議數據單元(也稱為SNMP GET請求)發送到響應SNMP的網絡設備。用戶通過網絡監控工具可以跟蹤所有通信過程,並從SNMP獲取數據。

七、SNMP Traps

  SNMP Traps是指SNMP Agent主動將設備產生的告警或事件上報給NMS,以便網絡管理員及時了解設備當前運行的狀態。

  SNMP Agent上報SNMP Traps有兩種方式:Trap和Inform。Trap和Inform的區別在於,SNMP Agent通過Inform向NMS發送告警或事件后,NMS需要回復InformResponse進行確認。

   Trap操作工作原理:

  Trap不屬於NMS對被管理設備的基本操作,它是被管理設備的自發行為。當被管理設備達到告警的觸發條件時,會通過SNMP Agent向NMS發送Trap消息,告知設備側出現的異常情況,便於網絡管理人員及時處理。例如被管理設備熱啟動后,SNMP Agent會向NMS發送warmStart的Trap。

  這種Trap信息是受限制的。只有在設備端的模塊達到模塊預定義的告警觸發條件時,SNMP Agent才會向管理進程報告。這種方法的好處是僅在嚴重事件發生時才發送Trap信息,減少報文交互產生的流量。

  Inform操作工作原理:

  Inform操作也是被管理設備向NMS主動發送告警。與Trap告警不同的是,被管理設備發送Inform告警后,需要NMS進行接收確認。如果被管理設備沒有收到確認信息則:

  1. 將告警或事件暫時保存在Inform緩存中。
  2. 重復發送該告警或事件,直到NMS確認收到該告警或者發送次數達到最大重傳次數。
  3. 被管設備上會生成相應的告警或事件日志。

八、SNMP的應用

  網管可以通過SNMP協議管理設備,如下圖所示,管理員要對整個網絡的設備進行配置和管理,這些設備分布較為分散,管理員到現場進行設備配置是不現實的。當這些網絡設備來自不同的廠商,而每個廠商都提供一套獨立的管理接口(比如使用不同的命令行),將使得批量配置網絡設備的工作量巨大。因此,在這種情況下,如果采用傳統的人工方式,將會帶來成本高、效率低的弊端,此時網絡管理員可以利用SNMP遠程管理和配置其下屬設備,並對這些設備進行實時監控。

 

 

  在組網中配置SNMP協議,首先需要在管理端配置SNMP管理程序NMS,同時在被管理設備端配置SNMP的Agent。

  通過SNMP協議:

  • NMS可以通過Agent在任何時候及時地獲得設備的狀態信息,實現遠端控制被管理設備。
  • Agent可以及時地向NMS報告設備的當前狀態信息。

九、參考資源

[1] SNMP配置(NetEngine AR)

[2] https://info.support.huawei.com/              IP知識百科>SNMP


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM