SNMPv2c Packet FormatSNMPv2c报文格式

报文格式

与SNMPv1 PDU类似,SNMPv2c PDU也包括GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU,并新增了GetBulk PDU和Inform PDU两种类型。

字段 描述
版本 表示SNMP的版本,版本字段的值是报文版本号减1,如果是SNMPv2报文则对应字段值为1。
团体名 用于在Agent与NMS之间完成认证,字符串形式,常用的是6个字符“public”。团体名包括“可读”和“可写”两种,执行Get、GetNext操作时,采用“可读团体名”进行认证;执行Set操作时,则采用“可写团体名”认证。
SNMPv2c PDU 包含PDU类型、请求标识符、变量绑定列表等信息,可以为GetRequest PDU、GetNextRequest PDU、SetRequest PDU、Response PDU、Trap PDU、GetBulk PDU和Inform PDU几种类型。

其中,PDU的格式如下:

图1 SNMPv2c PUD格式
字段 描述
PDU Type 协议数据单元的类型。PDU(Protocol Data Unit)共有5种类型:
  • GetRequest-PDU
  • GetNextRequest-PDU
  • GetBulk
  • GetResponse-PDU
  • SetRequest-PDU
  • Trap-PDU
Request ID 请求标示字段,唯一的标示一个请求报文。
Error Status 错错误状态标示字段。SNMPv2c中错误码包括:
  • wrongValue:进行set操作时候把变量修改为一个无效的值
  • wrongEncoding:进行编码字段的值,与其他的字段不一致
  • wrongType:进行set操作时候把变量修改为一个无效的类型
  • wrongLength:进行set操作时候把一个变量值设置成与它长度不一致的值
  • inconsistentValue:把一个变量设置为其他的情况下有效的值,当前情况下无效
  • noAccess:试图设置一个不可访问的值
  • notWritable:试图修改一个存在,但不能修改的值
  • noCreation:试图修改一个存在,但不能创建的值
  • inconsistentName:试图设置一个当前不存在且当前不能创建的变量
  • resourceUnavailable:设置过程中申请某些资源失败
  • commitFailed:set操作失败
  • undoFailed:进行set操作失败,有些赋值无法回复
  • genErr:除以上错误外的其他错误
Error Index 错误索引字段。
Variable Bindings 变量绑定字段。

报文示例

图2 SNMPv2c GetRequest报文
图3 SNMPv2c GetNextRequest报文

参考标准

标准 描述
RFC 1901 Introduction to Community-based SNMPv2
RFC 1902 Structure of Management Information for Version 2 of the Simple Network Management Protocol (SNMPv2)
RFC 1903 Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)
RFC 1904 Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)
RFC 1905 Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)
RFC 1906 Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)
RFC 1907 Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2)
RFC 1909 An Administrative Infrastructure for SNMPv2

本资料收集于互联网
2016 ©