中文

【疑问解答】什么是SNMP?SNMP是如何工作的?

发布于 2020年04月04日 by
8.7k

随着网络技术的飞速(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日
13.8k
技术博文
技术博文
See profile for Audrey.
Audrey
FTTH网络应如何设计分层与分光比?
2022年01月25日
3.3k
技术博文
技术博文
技术博文
See profile for Audrey.
Audrey
揭秘光分路器类型及选择
2022年01月24日
3.0k
技术博文
See profile for Audrey.
Audrey
一文教您认识光分路器
2022年01月24日
4.1k
技术博文
See profile for Jesse.
Jesse
家庭网络怎么布线?家用网线布线指南
2021年12月31日
1.7k
技术博文
技术博文
技术博文
See profile for Audrey.
Audrey
数据中心预端接主干铜缆解决方案
2021年12月31日
1.6k