📜  SNMP完整格式(1)

📅  最后修改于: 2023-12-03 15:05:14.098000             🧑  作者: Mango

SNMP完整格式

SNMP,全称为Simple Network Management Protocol,是一种用于网络管理的协议。

SNMP协议通过在网络上发送、接收消息来管理网络设备(如路由器、交换机、服务器等)。SNMP协议的消息格式是标准的ASN.1编码格式。

SNMP消息分为两种类型:管理消息和通知消息。管理消息是管理站点向代理站点发送的请求,通知消息是代理站点向管理站点发送的消息。

SNMP消息格式

SNMP消息由三部分组成:头部、PDU和尾部。

头部

头部由6个字节组成,其中前两个字节表示版本号,第三个字节表示服务类型,第四个字节表示安全模式,后两个字节保留。

+----+----+----+-------+------+------+-------------+
| 30 | xx | xx | xxxxx | xxxx | xx   | xx          |
+----+----+----+-------+------+------+-------------+
| t  | l  | v  | s     | p    | r    | reserved    |
+----+----+----+-------+------+------+-------------+
  • t:表示消息类型,0x30表示Sequence类型。
  • l:表示整个消息的长度。
  • v:表示SNMP协议的版本号。
  • s:表示服务类型。一般为0x00,表示请求服务,0x02表示响应服务,0x04表示Trap通知。
  • p:表示安全模式,一般为0x00,表示不使用安全模式。
  • r:保留字段,一般为0x00。
PDU

PDU由6个部分组成:类型、长度、请求ID、错误状态、错误索引和变量绑定。

+---+---+-------+---+---+--------+--------+--------+--------+
| xx|xx | xxxxx |x  | x | xxxxxx | xxxxxx | xxxxxx | xxxxxx |
+---+---+-------+---+---+--------+--------+--------+--------+
| E | L | R     | S | I | Type   | Count  | OID    | Value  |
+---+---+-------+---+---+--------+--------+--------+--------+
  • E:表示变量绑定List的起始。
  • L:表示整个PDU的长度。
  • R:请求的ID号码,一般由管理站点生成,用于区别不同的请求消息。
  • S:错误状态值。一般为0,表示没有错误发生。
  • I:错误索引值。一般为0,表示没有错误发生。
  • Type:表示变量的类型,有整型、字符串、对象OID等。
  • Count:表示变量绑定的个数。
  • OID:表示对象标识符。
  • Value:表示对象的值。
尾部

尾部由两个字节组成,分别为0x00和0x00。

代码片段
# SNMP完整格式

SNMP,全称为Simple Network Management Protocol,是一种用于网络管理的协议。

SNMP协议通过在网络上发送、接收消息来管理网络设备(如路由器、交换机、服务器等)。SNMP协议的消息格式是标准的ASN.1编码格式。

SNMP消息分为两种类型:管理消息和通知消息。管理消息是管理站点向代理站点发送的请求,通知消息是代理站点向管理站点发送的消息。

## SNMP消息格式

SNMP消息由三部分组成:头部、PDU和尾部。

### 头部

头部由6个字节组成,其中前两个字节表示版本号,第三个字节表示服务类型,第四个字节表示安全模式,后两个字节保留。

```c
+----+----+----+-------+------+------+-------------+
| 30 | xx | xx | xxxxx | xxxx | xx   | xx          |
+----+----+----+-------+------+------+-------------+
| t  | l  | v  | s     | p    | r    | reserved    |
+----+----+----+-------+------+------+-------------+
  • t:表示消息类型,0x30表示Sequence类型。
  • l:表示整个消息的长度。
  • v:表示SNMP协议的版本号。
  • s:表示服务类型。一般为0x00,表示请求服务,0x02表示响应服务,0x04表示Trap通知。
  • p:表示安全模式,一般为0x00,表示不使用安全模式。
  • r:保留字段,一般为0x00。
PDU

PDU由6个部分组成:类型、长度、请求ID、错误状态、错误索引和变量绑定。

+---+---+-------+---+---+--------+--------+--------+--------+
| xx|xx | xxxxx |x  | x | xxxxxx | xxxxxx | xxxxxx | xxxxxx |
+---+---+-------+---+---+--------+--------+--------+--------+
| E | L | R     | S | I | Type   | Count  | OID    | Value  |
+---+---+-------+---+---+--------+--------+--------+--------+
  • E:表示变量绑定List的起始。
  • L:表示整个PDU的长度。
  • R:请求的ID号码,一般由管理站点生成,用于区别不同的请求消息。
  • S:错误状态值。一般为0,表示没有错误发生。
  • I:错误索引值。一般为0,表示没有错误发生。
  • Type:表示变量的类型,有整型、字符串、对象OID等。
  • Count:表示变量绑定的个数。
  • OID:表示对象标识符。
  • Value:表示对象的值。
尾部

尾部由两个字节组成,分别为0x00和0x00。