转载请注明出处:
SNMP Trap协议报文最大的特点是 “主动上报,来去匆匆” 。它打破了传统的“管理端问,设备端答”的模式,让网络设备在关键时刻能够主动、立即向管理端报告异常;
不同SNMP版本的Trap报文在格式和安全上有显著差异:
-
SNMPv1 Trap:格式固定,包含企业、代理地址、通用/特定类型、时间戳和变量绑定等字段。
-
SNMPv2c Trap:格式更灵活,使用一个单一的Trap OID来标识类型,不再区分“通用”和“特定”,并且引入了
INFORM机制。 -
SNMPv3 Trap:在
v2c的基础上,增加了用户认证和加密功能,解决了前两个版本中团体名明文传输的安全风险,适用于对安全性要求较高的环境。
trap报文中的udp协议和snmp的关系
UDP 是“邮递员”,SNMP 是“信件内容”。
具体来说:
-
UDP 协议负责“传输”:它规定了如何把报文从一台设备送到另一台设备,处理的是 IP 地址、端口号、数据长度这些网络层和传输层信息。
-
SNMP 负责“内容”:它规定了报文里具体写了什么信息,比如 Trap 的类型、设备名称、时间戳、具体错误码等。
UDP 协议是 SNMP 报文的基础载体,而 SNMP 是封装在 UDP 数据部分的应用程序协议。要想对 Trap 报文进行完整的 SNMP 解码,必须先完成 UDP 协议的解码。
-
UDP 层:包裹本身
-
UDP 头部解码后,能看到两个关键信息:源端口(
161或162) 和 目的端口(162)。 -
关键点:Wireshark 这样的工具正是根据目的端口是 162,才判断出这个 UDP 包裹里装的是一封 SNMP Trap“信件”。这是 UDP 层对 SNMP 层最重要的意义。
-
-
SNMP 层:信件内容
-
如果 UDP 层解析正确,工具就会尝试解析 UDP 负载(Payload)里的数据。
-
此时,SNMP 解码器开始工作,读取内部的版本、团体名、PDU 类型等。如果成功,你才能在 Wireshark 里看到
Simple Network Management Protocol下清晰的字段,比如version: v2c,community: public,trap: linkDown等。
-
抓包解析
抓包命令:
tcpdump -nl -i any src host 192.168.118.12 and udp port 60162 -w 12.pcap
wireshark 设置和解析:
选中一个流,右键并解码为以下,将当前协议选为 SNMP ;然后就能看到解码之后的报文内容:

查看消息报文:

