软考知识点——SNMP协议
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警告命令。
相关协议结构如图所示。
SNMP协议结构.png2. 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协议类型.png
这里进一步解释为什么SNMP会选用UDP协议。这是因为TCP协议需要建立连接才能完成通信,如果SNMP使用TCP协议,那么一方面网络中大量的设备将形成海量的数据连接,另一方面也不适合即时发送Trap警示命令下的紧急通信情况。而UDP无需建立连接,可以随时发送数据,非常符合SNMP的应用需求。这也导致SNMP没有进行时间同步,属于异步请求/响应协议。
4. MIB管理信息库
那么SNMP管理端和被管理端之间通过命令进行交互的数据信息到底是什么呢?它们就是MIB管理信息库。网络硬件中使用很多类型的配置参数来完成对设备的管理,如接口和协议的设置信息等,在SNMP中,这类信息通过MIB这个数据库进行管理。MIB采用树形结构,其中的信息来自设备制造厂商的相关文件。示意图如下。
MIB结构图.jpg三、SNMP管理端
有很多SNMP管理端相关的软件,比如华为的esight、UNIX的SNMP的snmpd、思科公司的Ciscoworks等,这些都可以收集、整理、分析各类被管理端的SNMP数据。管理端和被管理端无需在厂商、品牌、版本等方面相同,只需要都支持SNMP协议即可,因此并不是主从关系。