简单网络管理协议(SNMP),作为应用层上的网络设备间通信的管理协议,为网络状态监控、参数设定、流量统计与分析以及故障发现提供了强大支持。SNMP基于UDP协议,其构成包括SNMP协议、管理信息库以及管理信息结构。
SNMP定义了五种重要的协议数据单元,即SNMP报文。这些报文可以是管理站发送至代理的,或是代理发送至管理站的,且建议每个SNMP报文的大小不超过484个字节。常见的SNMP报文类型如下表所示。
SNMP协议实体在发送请求和应答报文时,默认使用端口号161。而SNMP代理在发送陷阱报文时,默认使用的端口号是162。
目前,SNMP有三个版本:SNMPv1、SNMPv2和SNMPv3,每个版本都具备其独特的特点。以下是SNMPv2接收报文的具体步骤:
- 对报文进行语法检查,过滤出错的报文;
- 将SNMP报文部分、源端口号和目标端口号交由认证服务处理。若认证失败,则发送陷阱并丢弃报文;
- 若认证通过,则将SNMP报文转换为ASN.1格式(抽象语法标记,用于描述数据表示、编码、传输及解码的数据格式);
- 协议实体再次对SNMP报文进行语法检查,通过后则根据团体名和适当的访问策略进行相应处理。
而对于SNMPv2发送报文的过程则是:
- 根据所需协议操作构建SNMP报文;
- 将SNMP报文、源端口、目标端口及要加入的团体名传送给认证服务,经认证服务产生认证码或对数据进行加密,并返回结果;
- 加入版本号和团体名以构造报文;
- 进行BER编码(将ASN.1类型的值编码为比特流),生成0/1比特串并发送。
还有两种服务可能不受保护或无法保护:拒绝服务和通信分析。SNMP采用轮询监控方式,定期向代理获取管理信息,以判断是否有异常事件发生。当管理对象出现紧急情况时,会使用名为Trap信息的报文进行主动报告。
轮询监控的优点在于对代理资源要求不高,但缺点是管理通信开销较大。而SNMP的基本功能则包括网络性能监控、差错检测以及网络配置。
假设在SNMP网络管理中,轮询周期为N,单个设备轮询时间为T,且网络无拥塞情况。那么,可支持的设备数量计算方式为...
管理信息库(MIB)详细规定了主机、路由器等被管设备需保存的数据项及对这些数据项可执行的操作。只有MIB中的对象才能被SNMP管理。当前主要使用的是MIB-2,其中常见的信息如下表所示。
每个MIB-2信息下都包含多个MIB变量,例如system组下的sysuptime表示自上次启动以来的时间,而ip组下的ipDefaultTTL表示IP数据包的生存时间字段值。SNMP MIB中被管对象的访问权限分为只读、读写、只写以及不可访问四种,并不包括可执行权限。
结构化管理信息(I)定义了管理对象的命名规则、对象类型的定义(包括范围和长度),以及对对象及其值进行编码的规则。I的功能包括命名被管理对象、存储被管对象的数据类型以及编码管理数据。