SNMP报文格式剖析非常详细

SNMP 协议中提供了多种操作类型,但是它们的报文格式主要分为两种格式,下面详细介绍这两种报文格式。

第一种SNMP报文格式

在 SNMP 协议中,操作类型 get-request、get-response、get-next-request、set-request 或 informRequest 的报文格式基本是相同的。

报文格式如图所示。

报文中每个字段的含义如下:
  • 版本:版本字段,写入版本字段的是版本号减 1。例如,SNMP(即 SNMPV1)应写入 0。
  • 共同体:字符串形式,作为网络管理站 NMS 和 SNMP 代理之间的明文口令,默认为 public。
  • PDU 类型:SNMP 协议的操作类型。值为 0,表示 get-request 操作;值为 1,表示 get-next-request 操作;值为 2,表示 get-response 操作;值为 3,表示 set-request 操作;值为 7,表示 informRequest 操作。
  • 请求标识:管理站 NMS 设置的一个整数值。SNMP 代理在发送 get-response 报文时也要返回此请求标识符。
  • 差错状态:整数,由 SNMP 代理进行标注,指明有错误发生。可用的值及含义如下表所示。
  • 差错索引:当出现 noSuchName、badValue 或 readOnly 的错误时,由代理进程在回答时设置的一个整数。该数值指明引起错误的变量在变量列表中的偏移位置。
  • 名称:MIB 管理信息库中的 OID。
  • 值:OID 对应的值。

错误状态
错误状态 名称 含义
0 noError 一切正常
1 tooBig 代理无法将回答封装到一个 SNMP 报文之中
2 noSuchName 操作使用了一个不存在的变量
3 badValue 一个 set 操作使用了一个无效值或无效语法
4 readOnly 管理进程试图修改一个只读变量
5 genErr 其他错误

第二种SNMP报文格式

在 SNMP 协议中,trap 操作类型的报文格式基本是相同的。

报文格式如图所示。

报文中每个字段的含义如下:
  • 版本:版本字段。
  • 共同体:作为管理进程和代理进程之间的明文口令,默认为 public。
  • PDU 类型:SNMP 协议的操作类型。这里值为 4。
  • 企业:填入 trap 报文的网络设备的 OID。该 OID 必须在 1.3.6.1.4.1 的节点上。
  • SNMP 代理地址:SNMP 代理的 IP 地址。
  • trap 类型:trap 类型可用的类型及含义如下表所示。
  • 特定代码:指明代理自定义的时间。
  • 时间戳:指明从代理进程初始化到 trap 报告的事件发生所经历的时间,单位为 10ms。例如,时间戳为 1908 表明在代理初始化后 19080ms 发生了该事件。
  • 名称:MIB 管理信息库中的 OID。
  • 值:OID 对应的值。

trap 类型
trap 类型 名称 含义
0 coldStart 代理进行了初始化
1 warmStart 代理进行了重新初始化
2 linkDown 一个接口从工作状态变为故障状态
3 linkUp 一个接口从故障状态变为工作状态
4 authenticationFailure 从网络管理站 NMS 接收到一个具有无效共同体的报文
5 egpNeighborLoss 一个 EGP 相邻站变为故障状态
6 enterpriseSpecific 代理自定义的事件,在这个特定的代码字段中查找 trap 信息

相关文章

起步 处理器架构,参考 x86是指intel的开发的一种32位指令集...
pscp pscp -P 22 C:\work\test.txt root@192.168.1....
文件处理 ls -a # 显示所有文件 ls -l # 显示详细信息 ls -d...
准备一台电脑(我就用联想拯救者r7000演示) 参考博客制作启...
认识 Linux系统是参考了UNIX系统作为模板开发的,但没有使用...
文件处理命令 以 . 开头的文件是隐藏文件 以 - 开头表示这是...