【问题标题】:track source of IGMP query跟踪 IGMP 查询的来源
【发布时间】:2017-02-26 02:01:34
【问题描述】:

我有一些 igmp 查询,每 2 分钟从 bond0 接口发出一次。

IP 0.0.0.0 > 224.0.0.1:igmp 查询 v2。

是否可以跟踪哪个进程/程序正在进行此查询?

通过检查发现查询的源MAC地址是bond0地址的mac地址。

由于这个查询需要几个 CPU 周期,我不确定我是否会在 ps 或 netstat 中找到它。我想我需要一些跟踪工具,比如 perf 或 systemtap。我是调试和跟踪领域的新手,所以我需要一些帮助来找到正确的命令和参数。

谢谢。

【问题讨论】:

  • IGMP 查询将包含进行查询的路由器的源地址。这是必不可少的,因为如果有多个组播路由器,则最低的源 IP 地址成为查询者,其他路由器需要进入非查询者状态。请参阅 RFC 2236, Internet Group Management Protocol, Version 2:“如果多播路由器从 IP 地址较低的路由器收到查询消息,则它必须成为该网络上的非查询者。
  • 既然你知道 IGMP 查询来自 IP,也许你应该寻找运行 IP 的进程。

标签: linux networking igmp


【解决方案1】:

您可能知道 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

然后您需要执行消除过程。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多