SNMP管理框架及其在Cisco路由器的实现


摘要
本文描述了SNMP协议 , MIB库和它们在Cisco路由器上的实现以及Cisco路由器对SNMPv3和SNMP over IPv6的支持状况 。
了解SNMP治理框架
SNMP(Simple Network Management Protocol , 简单网络治理协议)是一个应用层协议 , 提供了SNMP治理者和SNMP代理间报文格式的消息通信 。它规定了在网络环境中对设备进行监视和治理的标准化治理框架 , 通信的公共语言和相对应的安全控制机制 。
SNMP治理框架包含有四个组成部分:
SNMP治理者
SNMP代理
一个用于在SNMP实体间传输治理信息的治理协议
MIB库(Management Information Base , 治理信息库)
SNMP治理者是一个利用SNMP协议对网络节点进行控制和监视的系统 。其中网络环境中最常见的SNMP治理者被称为网络治理系统(NMS , Network Management System) 。网络治理系统既可以指一台专门用来进行网络治理的服务器 , 也可以指某个网络设备中执行治理功能的一个应用程序 。现在市场上有众多软硬件厂商提供有支持SNMP协议的网络治理系统 , 如Cisco公司的CiscoWorks系列网络治理软件产品 。
SNMP代理是被治理设备中的一个软件模块 , 用来维护被治理设备的治理信息数据并可在需要时把治理数据汇报给一个SNMP治理系统 。SNMP代理和相关的MIB库存在于网络设备中(如Cisco路由器 , 交换机 , 接入服务器等等) 。
MIB库是一个保存网络治理信息的虚拟数据存储空间 , 由多组被治理对象组成 。在设备MIB库中有由多个MIB模块定义的多组各自相关联的对象 。每个MIB模块都是利用标准的SNMP MIB模块语言撰写的 , 具体遵循的标准定义在IETF(Internet Engineering Task Force , 一个国际标准化组织) STD58 , RFC2579和RFC2580文档中(请参见本文“MIB和RFC”一节了解STD文档和RFC文档的解释) 。需要注重的是 , 每一个单独的MIB模块有时也会被称为一个MIB , 如设备接口组MIB(IF-MIB)就是设备MIB库中的一个MIB模块 。
SNMP代理中保存有MIB对象变量 , 变量的数值可以被SNMP治理者通过Get或Set操作进行读取和修改 。一个SNMP治理者可以从SNMP代理中读取一个变量的数值或把一个数值存储到SNMP代理的一个变量中 。SNMP代理从代表设备参数和网络运行数据的MIB库中采集数据 , 且可以对SNMP治理者的Get和Set操作进行应答 。
下图勾画出了SNMP治理者和SNMP代理间的通信关系 。一个SNMP治理者可以向SNMP代理发送请求 , 读取(Get)或设置(Set)一个或多个MIB变量数值 。SNMP代理可以应答这些请求 。除了这种交互式通信方式 , SNMP代理还可以主动向SNMP治理者发送通知(Trap或Inform Request)以提示治理者一个设备或网络状态 。
 
图一:SNMP治理者与SNMP代理间的通信
SNMP通知
SNMP协议的一个重要特性是SNMP代理具有产生通知的能力 。通知不需要SNMP治理者请求就会主动发送 , 发送采用异步方式 , 形式可分为Trap和Inform Request(简称Inform)两种 。Trap是发送给SNMP治理者的通知网络状况的警告消息 , 而Inform是需要SNMP治理者确认接收的Trap 。SNMP通知可以用于指示网络中出现的不正确用户授权 , 重启 , 连接关闭 , 设备通信中断或其它异常事件 。
与Inform相比较 , Trap通知方式为不可靠传输 , 因为接收者在收到一条Trap通知后无需回复任何确认信息 , 发送者无法知道Trap通知是否已经被正确接收 。与此相对应 , 当SNMP治理者收到一条Inform通知后它需要向发送者回复一条确认信息 , 使用的是SNMP应答数据包(PDU) 。假如SNMP治理者没有接收到Inform通知 , 它将不会发送任何应答 , 所以当发送者无法接受到期望的应答时 , 它将再次发送一条Inform通知给SNMP治理者 。这种方式保证了Inform通知方式可以较有保证地把通知发送到期望的目的地 。

推荐阅读