3.SNMP的运行过程
驻留在被管设备上的AGENT从UDP端口161接受来自网管站的串行化报文 , 经解码、团体名验证、分析得到治理变量在MIB树中对应的节点 , 从相应的模块中得到治理变量的值 , 再形成响应报文 , 编码发送回网管站 。网管站得到响应报文后 , 再经同样的处理 , 最终显示结果 。
下面根据RFC1157具体介绍Agent接受到报文后采取的动作:
首先解码生成用内部数据结构表示的报文 , 解码依据ASN.1的基本编码规则 , 假如在此过程中出现错误导致解码失败则丢弃该报文 , 不做进一步处理 。
第二步:将报文中的版本号取出 , 假如与本Agent支持的SNMP版本不一致 , 则丢弃该报文 , 不做进一步处理 。当前北研的数据通信产品只支持SNMP版本1 。
第三步:将报文中的团体名取出 , 此团体名由发出请求的网管站填写 。如与本设备认可的团体名不符 , 则丢弃该报文 , 不做进一步处理 , 同时产生一个陷阱报文 。SNMPv1只提供了较弱的安全措施 , 在版本3中这一功能将大大加强 。
第四步:从通过验证的ASN.1对象中提出协议数据单元PDU , 假如失败 , 丢弃报文 , 不做进一不处理 。否则处理PDU , 结果将产生一个报文 , 该报文的发送目的地址应同收到报文的源地址一致 。
根据不同的PDU , SNMP协议实体将做不同的处理:
1.6. GetRequest PDU:
第一种情况:假如PDU中的变量名在本地维护的MIB树中不存在,则接受到这个PDU的协议实体将向发出者发送一个GetResponse报文 , 其中的PDU与源PDU只有一点不同:将ERROR-STATUS置为noSuchName,并在ERROR-INDEX中指出产生该变量在变量LIST中的位置 。
第二种情况:假如本地协议实体将产生的响应报文的长度大于本地长度限制 , 将向该PDU的发出者发送一个GetResponse报文 , 该PDU除了ERROR-STATUS置为tooBig , ERROR-INDEX置为0以外 , 与源PDU相同 。
第三种情况:假如本地协议实体因为其他原因不能产生正确的响应报文 , 将向该PDU的发出者发送一个GetResponse报文 , 该PDU除了ERROR-STATUS置为genErr , ERROR-INDEX置为出错变量在变量LIST中的位置 , 其余与源PDU相同 。
第四中情况:假如上面的情况都没有发生 , 则本地协议实体向该PDU的发出者发送一个GetResponse报文 , 该PDU中将包含变量名和相应值的对偶表 , ERROR-STATUS为noError,ERROR-INDEX为0 , request-id域的值应与收到PDU的request-id相同 。
1.7. GetNextRequest PDU
GetNextRequest PDU的最重要的功能是表的遍历 , 这种操作受到了前面所说的治理变量的表示方法的支持 , 从而可以访问一组相关的变量 , 就好象他们在一个表内 。
下面通过一个例子解释表遍历的过程:
被管设备维护如下路由表:
Destination NextHop Metric
10.0.0.9989.1.1.425
9.1.2.3 99.0.0.33
10.0.0.5189.1.1.425
假设网管站欲取得这张路由表的信息 , 该表的索引是目的网络地址 。
网管站向被管设备发送一个GetNextRequest PDU,其中的受管对象的标识如下
GetNextRequest(ipRouteDest, ipRouteNextHop, ipRouteMetric1)
SNMP agent响应如下GetResponse PDU:
GetResponse (( ipRouteDest.9.1.2.3 = "9.1.2.3" ),
( ipRouteNextHop.9.1.2.3 = "99.0.0.3" ),( ipRouteMetric1.9.1.2.3 = 3 ))
网管站继续:
GetNextRequest ( ipRouteDest.9.1.2.3,ipRouteNextHop.9.1.2.3,ipRouteMetric1.9.1.2.3 )
agent响应:
GetResponse((ipRouteDest.10.0.0.51="10.0.0.51"),(ipRouteNextHop.10.0.0.51="89.1.1.42"),( ipRouteMetric1.10.0.0.51 = 5 ))
值得注重的是agent必须能够确定下一个治理变量名 , 以保证所有变量能被取到且只被取到一次 。
网管站继续:
推荐阅读
- TCP/IP协议详解卷1学习笔记-IP校验和与ICMP协议
- 2023大学现在什么专业热门 哪些专业轻松前景好
- 续1 利用协议分析工具学习TCP/IP(3)
- 三 用协议分析工具学习TCP/IP
- 二 用协议分析工具学习TCP/IP
- 一 用协议分析工具学习TCP/IP
- 轻松定义自己的网络通讯协议
- InfoPath轻松制作office2003各种表单
- 励志学习语录 学生励志语录
- 你有什么相见恨晚的英语学习方法
