SNMP五种协议数据单元

SNMP规定了5种协议数据单元PDU(也就是SNMP报文),用来在管理进程和代理之间的交换。

  • get-request操作:从代理进程处提取一个或多个参数值(网管系统发送)
  • get-next-request操作:从代理进程处提取紧跟当前参数值的下一个参数值(网管系统发送)
  • set-request操作:设置代理进程的一个或多个参数值(网管系统发送)
  • get-response操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作(代理发送)
  • trap操作:代理进程主动发出的报文,通知管理进程有某些事情发生(代理发送)

前面的3种操作是由管理进程向代理进程发出的,后面的2个操作是代理进程发给管理进程的,为了简化起见,前面3个操作叫做get、get-next和set操作。下图描述了SNMP的这5种报文操作。请注意,在代理进程端是用熟知端口161俩接收get或set报文,而在管理进程端是用熟知端口162来接收trap报文。

SNMP的5种报文操作

SNMP的5种报文操作

SNMP协议数据单元格式解析

下图封装成UDP数据报的5种操作的SNMP报文格式。可见一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部trap首部、变量绑定。

SNMP报文格式

SNMP报文格式

1. 公共SNMP首部

1.1 版本

写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。

1.2 公共体

共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。

1.3 PDU类型

根据PDU的类型,填入0~4中的一个数字,其对应关系下表所示意图。

表1 PDU类型

PDU类型

名称

0 get-request
1 get-next-request
2 get-response
3 set-request
4 trap

2. get/set首部

2.1 请求标识符(request ID)

这是由管理进程设置的一个整数值。代理进程在发送get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。

2.2 差错状态(error status)

由代理进程回答时填入0~5中的一个数字,见下表的描述。

表2 差错状态描述

差错状态

名字

说明

0

noError 一切正常

1

tooBig 代理无法将回答装入到一个SNMP报文之中

2

noSuchName 操作指明了一个不存在的变量

3

badValue 一个set操作指明了一个无效值或无效语法

4

readOnly 管理进程试图修改一个只读变量

5

genErr 某些其他的差错
2.3 差错索引(error index)

当出现noSuchName、badValue或readOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

3. trap首部

3.1 企业(enterprise)

填入trap报文的网络设备的对象标识符。此对象标识符肯定是在图3的对象命名树上的enterprise结点{1.3.6.1.4.1}下面的一棵子树上。

3.2 trap类型

此字段正式的名称是generic-trap,共分为表4中的7种。

表3 trap类型描述

trap类型

名字

说明

0

coldStart 代理进行了初始化

1

warmStart 代理进行了重新初始化

2

linkDown 一个接口从工作状态变为故障状态

3

linkUp 一个接口从故障状态变为工作状态

4

authenticationFailure 从SNMP管理进程接收到具有一个无效共同体的报文

5

egpNeighborLoss 一个EGP相邻路由器变为故障状态

6

enterpriseSpecific 代理自定义的事件,需要用后面的“特定代码”来指明

当使用上述类型2、3、5时,在报文后面变量部分的第一个变量应标识响应的接口。

3.3 特定代码(specific-code)

指明代理自定义的时间(若trap类型为6),否则为0。

3.4 时间戳(timestamp)

指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10ms。例如时间戳为1908表明在代理初始化后1908ms发生了该时间。

4. 变量绑定(variable-bindings)

指明一个或多个变量的名和对应的值。在get或get-next报文中,变量的值应忽略。

» 文章出处: reille博客—http://velep.com , 如果没有特别声明,文章均为reille博客原创作品
» 郑重声明: 原创作品未经允许不得转载,如需转载请联系reille#qq.com(#换成@)
分享到:

 Leave a Reply

(必须)

(我会替您保密的)(必须)

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.

   
© 2012 velep.com | reille blog | 管理| 粤ICP备15065318号-2| 谷歌地图| 百度地图| Suffusion theme|Sayontan Sinha

无觅相关文章插件,快速提升流量