问题:遇到一个问题,net-snmp发出trap的时候,通过wireshark抓包发现只能发送知名端口162的告警报文。
处理过程如下:
检查代码:经过代码排查发现net-snmp没有对端口做任何限制。
抓包:经过抓包,发现都发出了UDP报文。对报文进行过滤,过滤条件为 "snmp"。发现只有端口为162时,才有报文报文标记为snmp报文,端口为非162时,过滤后,没有snmp报文。
通过对udp报文进行重新解析,发现其中udp报文中的data部分为snmp报文内容。
分析原因:
SNMP协议采用UDP报文进行交互。所以snmp发出的报文为UDP报文。
wireshark解析报文时,会按着知名端口来进行分析。因为162为snmp协议trap告警的知名端口,所以将报文解析为snmp报文。而采用其他自定义端口,wireshark只能将报文解析到udp这一级别。
结论:
wireshark解析报文时,会根据知名端口进行深入的解析。如果不确定这是什么类型的报文,那么解析会降级。
如果需要重新解析报文(decode)。可以通过如下操作来查看报文
选择报文→右键→选择解码为→当前下拉菜单→选择协议SNMP→ok。wireshark就会按照选择的协议进行解析报文。
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。