SNMP協議是軟考中的常見知識點,本文并沒有對該協議進行更加深入的剖析,只是希望通過本文能夠幫助大家理解以上三道題。
題1:Windows中標準的SNMP Service和SNMP Trap分別使用的默認UDP端口是 ( ) 。
A.25和26
B.160和161
C.161和162
D.161和160
題2:SNMP是一種異步請求/響應協議,采用( )進行封裝。
A.IP
B.ICMP
C.TCP
D.UDP
題3:在TCP/IP協議分層結構中,SNMP是在UDP協議之上的 ( ) 請求/響應協議
A.異步
B.同步
C.主從
D.面向連接
一、SNMP協議來歷
對于園區網絡來說,穩定性與可靠性最為重要。然而,隨著信息化的發展,網絡規模及系統結構越發復雜,各類故障隨之而來。為了提升網絡自診斷能力,實現故障快速診斷與恢復,IETF于1990年提出了SNMP協議(簡單網絡管理協議),并獲得了眾多網絡設備廠家的大力支持,因此發展為了因特網正式標準。目前,支持SNMP協議已經成為網絡硬件設備的標準配置,市面上大部分網絡監測系統,均以SNMP協議為基礎,采集各類數據信息,進行協調梳理、整理美化,形成了對網絡的管理。
二、SNMP協議概述
1. SNMP協議組成
SNMP協議由管理端(manager)和被管理端(Agent)組成。
- 管理端通過UDP 161端口向被管理端發送SNMP報文,等待被管理端的應答,并對收集的各類報文信息進行處理。
- 被管理端運行在各個網絡硬件設備上,接收并執行收到的SNMP報文,統計相關信息,并與管理端進行交互。同時,被管理端還能夠主動通過UDP 162端口向管理端發送Trap警告命令。
相關協議結構如圖所示。
2. SNMP報文
一條SNMP報文由“Version Identifier”、“Community”和“Protocol Data Unit”構成。
(1)Version Identifier用于校驗SNMP協議的版本。SNMP協議目前有v1、v2、v3三個版本,交互信息必須確保版本相同。
(2)Community又叫團體字,是基本的安全機制,用于身份驗證。在SNMP協議中,為保證協議通暢,大多數時候采用默認的團體字,即“public”。
(3)PDU是SNMP協議消息的數據區,主要是SNMP協議的命令與相關參數。
3. SNMP命令
SNMP協議有兩種基本操作命令,分別是SNMP基本命令和Trap命令。
基本命令包括Get-Request、Get-Response、Get-Next-Request、Set-Request等,其功能如下:
- Get-Request:SNMP管理端為了獲取相關信息向被管理端發送的命令,使用UDP 161作為目的端口。
- Get-Response:管理端接收到Get-Request信息后,向管理端返回Get-Response應答信息,使用UDP 161作為源端口。
- Get-Next-Request:管理端收到Get-Response應答,想要得到下一個項目時,繼續向被管理端發送Get-Next-Request命令,使用UDP 161作為目的端口。被管理端同樣通過Get-Response回復信息。
- Set-Request:當管理端想要更改通信設備的設置時,會向SNMP被管理者發送Set-Request命令,使用UDP 161作為目的端口。被管理端同樣通過Get-Response回復信息。
Trap報文是警示報文,當發生網絡或設備異常時,由被管理端主動向管理端發送的UDP 162作為目的端口的Trap命令。具體如圖所示。
這里進一步解釋為什么SNMP會選用UDP協議。這是因為TCP協議需要建立連接才能完成通信,如果SNMP使用TCP協議,那么一方面網絡中大量的設備將形成海量的數據連接,另一方面也不適合即時發送Trap警示命令下的緊急通信情況。而UDP無需建立連接,可以隨時發送數據,非常符合SNMP的應用需求。這也導致SNMP沒有進行時間同步,屬于異步請求/響應協議。
4. MIB管理信息庫
那么SNMP管理端和被管理端之間通過命令進行交互的數據信息到底是什么呢?它們就是MIB管理信息庫。網絡硬件中使用很多類型的配置參數來完成對設備的管理,如接口和協議的設置信息等,在SNMP中,這類信息通過MIB這個數據庫進行管理。MIB采用樹形結構,其中的信息來自設備制造廠商的相關文件。示意圖如下。
三、SNMP管理端
有很多SNMP管理端相關的軟件,比如華為的esight、UNIX的SNMP的snmpd、思科公司的Ciscoworks等,這些都可以收集、整理、分析各類被管理端的SNMP數據。管理端和被管理端無需在廠商、品牌、版本等方面相同,只需要都支持SNMP協議即可,因此并不是主從關系。