繁體中文

【疑問解答】什麼是SNMP?SNMP是如何工作的?

發佈於 2020年04月04日 by
10.4k

隨着網絡技術的飛速(FS)發展,網絡結構越來越複雜,網絡設備種類也越來越多,不同設備廠商所提供的管理接口(如CLI)各不同,與此同時,網絡設備數量呈幾何級數量增加,這使得網絡管理變得愈發複雜。在這種背景下,SNMP應運而生,它可提供一個統一的接口和協議,解決了不同產品之間的差異性,實現了對不同種類和廠商的網絡設備進行統一化管理,較大程度上簡化了網絡管理,同時,它利用“網絡管理網絡”的方式實現了對網絡設備的高效和批量管理。

什麼是SNMP?

SNMP(簡單網絡管理協議)是一種廣泛應用於TCP/IP網絡的網絡管理標準協議(應用層協議),它提供了一種通過運行網絡管理軟件的中心計算機(即網絡管理工作站)來監控和管理計算機網絡的標準化管理框架(方法)。目前已頒布了SNMPv1、SNMPv2c和SNMPv3三個版本,廣泛應用於網絡交換機、路由器、打印機等網路設備上。

什麼是SNMP.jpg

SNMP是如何工作的?

想要了解SNMP的工作原理,首先要了解SNMP管理模型,也就是SNMP系統是由哪些元素組成。

SNMP系統主要是由網絡管理系統(NMS)、代理進程(Agent)、被管對象(Management object)和管理信息庫(MIB)四個部分組成。其中,網絡管理系統作為整個網絡的網管中心,對設備進行管理。每個被管理設備中都包含駐留在設備上的代理進程、管理信息庫和多個被管對象。

網絡管理系統(NMS)——在網絡中扮演管理者角色,採用SNMP協議對網絡設備進行監視和管理的系統,運行在網絡管理系統服務器上。

代理進程(Agent)——是被管理設備中的一個代理進程,用於維護被管理設備的信息數據並響應來自網絡管理系統的請求,把管理數據彙報發送請求的網絡管理系統。

被管對象——每臺設備都有可能存在多個被管對象,被管對象可以是設備中的某個硬件(如接口板),也可以是在硬件或軟件(如路由器選擇協議)上配置的參數集合。

管理信息庫(MIB)——通過與運行在被管理設備上的代理進程(Agent)交互,對設備端的管理信息庫(MIB)進行查詢及修改等,完成網絡管理系統(NMS)的指令。

下面以SNMPv2c版本為例,詳細講述SNMP的工作原理。

SNMPv2c版本中規定了七種操作用於完成NMS和Agent之間的信息交互,七種操作類型如下:

操作 描述
Get 該操作可使NMS從Agent中獲取一個或多個參數值
GetNext 該操作是NMS從Agent中獲取一個或多個參數的下一個參數值
Set 該操作是NMS用來設置Agent的一個或多個參數值
Response 該操作是由Agent發出,可以返回一個或多個參數值,是GetRequest、GetNextRequest、SetRequest和GetBulkRequest四種操作的響應操作。當Agent接收到來自NMS的Get/Set指令後,通過MIB完成相應的查詢/修改操作,然後利用Response操作將信息回應給NMS
Trap 該操作是由Agent主動向NMS發出的信息,告知管理進程設備端發生的事件或故障
GetBulk 該操作是用於NMS高效的從MIB中獲取大量的數據,實現對被管理設備的信息群查詢
Inform 該操作也是由Agent主動向NMS主動發送告警,與Trap告警不同的是,被管理設備發送Inform告警後,需要NMS回復InformResponse進行確認

註:GetBulk和Inform操作為SNMPv2c版本中新增操作,SNMPv1版本不支持這兩種操作;此外,SNMPv3版本中為了消息安全和VACM引入了USM。

SNMPv2c的基本操作工作過程

首先,當NMS向Agent發送Get/GetNext/GetBulk/Set請求報文時,報文中各字段將進行如下設置:版本號為所使用的SNMP版本;團體名為public;PDU中PDU類型為Get/GetNext/GetBulk/Set類型,綁定變量填入MIB節點名sysContact。

然後,Agent會對報文中所攜帶的SNMP版本號和團隊名進行認證。認證成功後,Agent會根據請求查詢MIB中的sysContact節點或者下一個節點sysName,得到sysContact或sysName的值並將其封裝到Response報文中的PDU,向NMS發送響應;或者Agent根據請求設置管理變量在管理信息庫MIB中對應的節點,設置成功後向NMS發送響應。若是查詢不到,Agent則會向NMS發送出錯響應。


SNMPv2c.jpg


註:GetBulk操作相當於連續執行多次GetNext操作。用戶可以在NMS上設置被管理設備在一次GetBulk報文交互時,執行GetNext操作的次數。

SNMPv2c 的Trap/Inform操作工作過程

Trap和Inform操作都是不屬於NMS對被管理設備的基本操作,它是被管理設備的自發行為。Trap操作是當被管理設備達到告警的觸發條件時,Agent會向NMS發送Trap消息,告知設備側出現的異常情況。Inform操作與Trap操作類似,但不同的是被管理設備發送Inform信息後,需要向NMS進行接收確認。當被管理設備沒有收到確認信息時,將會將暫時保存在Inform緩存中,或重複發送該報文,直到NMS確認收到該告警或者發送次數達到最大重傳次數,同時,被管理設備上會生成相應的告警日誌。

SNMPv2c 的Trap Inform操作工作過程.jpg

關於SNMP的常見疑問解答

1. 如何配置SNMP?

由上可知,SNMP是通過安裝網絡管理軟件的中心計算機來管理和監控網絡交換機的,可為不同廠商和類型的網絡交換機提供統一接口和協議,便於網絡管理。現如今市面上大多數的網絡交換機均能支持SNMP協議,如飛速(FS) S3900系列交換機等。以SNMPv2c為例,配置步驟如下:

①為NMS端和網絡交換機配置IP地址;

②開啟SNMP服務;

③配置訪問權限,便於NMS端管理指定的網絡交換機;

④檢驗配置結果。

欲知更多關於SNMP配置的詳細資料,可訪問《飛速(FS) S3900系列交換機如何配置SNMP?》。

2. 網絡管理系統(NMS)為什麼無法接收告警(Trap)?

在默認配置中,並不是所有的告警(Trap)都是開啟狀態,你可以在系統視圖下使用如下命令行查看並開啟告警(Trap)。

①使用“show snmp-agent trap all”命令,查看當前以及使能告警功能的特性列表;

②使用“snmp-agent trap enable feature-name”命令,開啟相應告警;

③使用“snmp-agent trap enable”,打開所有告警。

3. SNMPv1、SNMPv2c與SNMPv3三者之間有什麼區別?


SNMPv1 SNMPv2c SNMPv3
訪問控制 基於團體名和MIB視圖 基於團體名和MIB視圖 基於用戶、用戶組和MIB視圖
身份驗證和加密 基於團隊名認證 基於團隊名認證 基於USM的認證加密
TARP操作 支持 支持 支持
Inform操作 不支持 支持 支持
GetBulk操作 不支持 支持 支持
應用 適用於對安全性能要求低的小型網絡,如家用網絡 適用於對安全性能要求低的SMB和大型網絡 適用於對安全性能要求高的大型或超大規模企業網

相關文章推薦

技術博文
See profile for Jesse.
Jesse
光分路器光衰多少,如何計算和測量?
2022年01月25日
17.6k
技術博文
技術博文
See profile for Audrey.
Audrey
FTTH網絡應如何設計分層與分光比?
2022年01月25日
4.8k
技術博文
技術博文
技術博文
See profile for Audrey.
Audrey
揭秘光分路器類型及選擇
2022年01月24日
4.4k
技術博文
See profile for Audrey.
Audrey
一文教您認識光分路器
2022年01月24日
7.0k
技術博文
See profile for Jesse.
Jesse
家庭網絡怎麼布線?家用網線布線指南
2021年12月31日
2.7k
技術博文
技術博文
See profile for Howard.
Howard
BPG的定義和工作原理是什麼?
2024年09月19日
28
技術博文
See profile for Audrey.
Audrey
數據中心預端接主幹銅纜解決方案
2021年12月31日
2.3k