IGMP查询的跟踪源
问题描述:
我有一些igmp查询,每2分钟出来bond0接口。IGMP查询的跟踪源
IP 0.0.0.0> 224.0.0.1:igmp query v2。
是否有可能跟踪哪个进程/程序正在做这个查询?
从检查中我发现查询的源MAC地址是bond0地址的mac地址。
由于这个查询需要几个CPU周期,我不确定我会在ps或netstat中找到它。我想我需要一些跟踪工具,如perf或systemtap。我是调试和跟踪领域的新手,所以我需要一些帮助来找到正确的命令和参数。
谢谢。
答
正如你可能知道的IGMP在第3层工作,所以它可能有点棘手。它不必在端口和进程ID之间进行绑定。
你必须使用这些工具的组合:
tcpdump (to be certain IGMP is being sent out)
netstat -avnp
ps -ef | fgrep <pid>
lsof
当你这样做了tcpdump,我建议作出积极的PS -ef监控
while [[ true ]]; do
ps -ef >> /tmp/ps.out
netstat -natp | grep 234.55.55.55 >> /tmp/netstat.out
sleep .5
done
你会然后需要做的过程的消除。
+0
“_IGMP在第2层和第3层上运行”否,IGMP是IP协议的一部分,即第3层协议。从_ [RFC 2236,Internet Group Management Protocol,Version 2](https://tools.ietf.org/html/rfc2236)_:“_Iike ICMP,IGMP是IP的一个组成部分。 2和第3层。 –
IGMP查询将具有查询路由器的源地址。这是非常重要的,因为如果有多个多播路由器,最低的源IP地址将成为查询器,其他路由器需要进入非查询器状态。请参阅_ [RFC 2236,Internet组管理协议,版本2](https://tools.ietf.org/html/rfc2236)_:“_如果多路广播路由器从IP地址较低的路由器收到查询消息,它必须成为该网络上的非查询器._“ –
由于您知道并且IGMP查询来自IP,因此您应该只查找运行IP的进程。 –