【疑问解答】什么是SNMP?SNMP是如何工作的?
随着网络技术的飞速发展,网络结构越来越复杂,网络设备种类也越来越多,不同设备厂商所提供的管理接口(如CLI)各不同,与此同时,网络设备数量呈几何级数量增加,这使得网络管理变得愈发复杂。在这种背景下,SNMP应运而生,它可提供一个统一的接口和协议,解决了不同产品之间的差异性,实现了对不同种类和厂商的网络设备进行统一化管理,较大程度上简化了网络管理,同时,它利用“网络管理网络”的方式实现了对网络设备的高效和批量管理。
什么是SNMP?
SNMP(简单网络管理协议)是一种广泛应用于TCP/IP网络的网络管理标准协议(应用层协议),它提供了一种通过运行网络管理软件的中心计算机(即网络管理工作站)来监控和管理计算机网络的标准化管理框架(方法)。目前已颁布了SNMPv1、SNMPv2c和SNMPv3三个版本,广泛应用于网络交换机、路由器、打印机等网路设备上。
SNMP是如何工作的?
想要了解SNMP的工作原理,首先要了解SNMP管理模型,也就是SNMP系统是由哪些元素组成。
SNMP系统主要是由网络管理系统(NMS)、代理进程(Agent)、被管对象(Management object)和管理信息库(MIB)四个部分组成。其中,网络管理系统作为整个网络的网管中心,对设备进行管理。每个被管理设备中都包含驻留在设备上的代理进程、管理信息库和多个被管对象。
网络管理系统(NMS)——在网络中扮演管理者角色,采用SNMP协议对网络设备进行监视和管理的系统,运行在网络管理系统服务器上。
代理进程(Agent)——是被管理设备中的一个代理进程,用于维护被管理设备的信息数据并响应来自网络管理系统的请求,把管理数据汇报发送请求的网络管理系统。
被管对象——每台设备都有可能存在多个被管对象,被管对象可以是设备中的某个硬件(如接口板),也可以是在硬件或软件(如路由器选择协议)上配置的参数集合。
管理信息库(MIB)——通过与运行在被管理设备上的代理进程(Agent)交互,对设备端的管理信息库(MIB)进行查询及修改等,完成网络管理系统(NMS)的指令。
下面以SNMPv2c版本为例,详细讲述SNMP的工作原理。
SNMPv2c版本中规定了七种操作用于完成NMS和Agent之间的信息交互,七种操作类型如下:
注: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发送出错响应。
注:GetBulk操作相当于连续执行多次GetNext操作。用户可以在NMS上设置被管理设备在一次GetBulk报文交互时,执行GetNext操作的次数。
SNMPv2c 的Trap/Inform操作工作过程
Trap和Inform操作都是不属于NMS对被管理设备的基本操作,它是被管理设备的自发行为。Trap操作是当被管理设备达到告警的触发条件时,Agent会向NMS发送Trap消息,告知设备侧出现的异常情况。Inform操作与Trap操作类似,但不同的是被管理设备发送Inform信息后,需要向NMS进行接收确认。当被管理设备没有收到确认信息时,将会将暂时保存在Inform缓存中,或重复发送该报文,直到NMS确认收到该告警或者发送次数达到最大重传次数,同时,被管理设备上会生成相应的告警日志。
关于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”,打开所有告警。