tcpdump 忽略了一些 snmp 流量

tcpdump 忽略了一些 snmp 流量

我正在嗅探 SNMP 流量,以便为某些网络硬件编写测试用例。目前我像这样启动 tcpdump:

tcpdump -i any -nn port snmp

然后我从同一主机发送一些 SNMP 流量:

snmpget -v 3 -u public 192.168.2.4 1.3.6.1.4.1.3181.10.6.3.65.1.1.5.0

tcpdump 现在不打印任何内容。我使用 tshark 验证了数据包在网络上可见。但是,如果我重复 snmpget 命令,它将打印流量:

pi@raspberrypi:~/martin_testframework/Frameworks/P2P $ sudo tcpdump -i any -nn port snmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
15:30:13.033363 IP 192.168.2.5.39351 > 192.168.2.4.161:  F=r U= E=  C= GetRequest(14) 
15:30:13.034473 IP 192.168.2.4.161 > 192.168.2.5.39351:  F= U= E= 0x800x000x1F0x880x040x4D0x490x430x520x4F0x530x450x4E0x53 C= Report(31)  .1.3.6.1.6.3.15.1.1.4.0=2
15:30:13.034908 IP 192.168.2.5.39351 > 192.168.2.4.161:  F=r U=public E= 0x800x000x1F0x880x040x4D0x490x430x520x4F0x530x450x4E0x53 C= GetRequest(35)  .1.3.6.1.4.1.3181.10.6.3.65.1.1.5.0
15:30:13.036447 IP 192.168.2.4.161 > 192.168.2.5.39351:  F= U=public E= 0x800x000x1F0x880x040x4D0x490x430x520x4F0x530x450x4E0x53 C= GetResponse(35)  .1.3.6.1.4.1.3181.10.6.3.65.1.1.5.0=""
^C
4 packets captured
8 packets received by filter
0 packets dropped by kernel

请注意,这与上面的 tcpdump 过程相同。如果我重新启动了 tcpdump,它就不会打印任何内容。基本上,tcpdump 似乎会抑制它收到的前几个(四个?)snmp 数据包。在收到前几个数据包后,它就可以正常工作了。

如何让 tcpdump 打印所有数据包而无需“预热阶段”。此测试是手动完成的,调用 tcpdump 和调用 snmpget 之间间隔了几秒钟。Tshark 可以查看并打印所有流量,但我无法使用 tshark,因为它在生产系统上不可用。

相关内容