首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >组播tcpdump和订阅

组播tcpdump和订阅
EN

Server Fault用户
提问于 2011-10-28 11:57:43
回答 1查看 15.7K关注 0票数 2

来自多播操作

IP_ADD_MEMBERSHIP。回想一下,您需要告诉内核您感兴趣的是哪个多播组。如果没有进程对某个组感兴趣,则发送到该组的到达主机的数据包将被丢弃。

如果不这样做,就不会看到那些带有tcpdump的数据包。

  • 是否可以订阅所有多播通信量,以便对所有现有通信量进行tcpdump?我认为IGMP不允许这样做,所以可能不..。但也许您可以配置一个交换机,以仍然发送所有多播通信量。这有可能吗?
  • 是否可以使用命令行工具进行订阅(特定IP)?(注:我知道如何在C.但倾向于使用现有的工具,而不是为此编写单独的程序)
EN

回答 1

Server Fault用户

发布于 2014-06-10 00:03:33

多播操作的链接页面没有提到tcpdump。

Tcpdump使用libpcap捕获网络数据包,在以太网上,libpcap支持这两种方式:

  • 混杂模式,在这种模式中,网络适配器向主机发送它看到的每一个数据包,而不管目标地址如何,网络堆栈将传递过滤器的每个数据包传递给捕获机制,并且
  • 非混杂模式,在这种模式中,网络适配器向主机发送它被配置的单播数据包、广播数据包和多播数据包,而网络堆栈将传递捕获过滤器的所有数据包传递给捕获机制。

Tcpdump默认为请求混杂模式;在这种模式下,您甚至会看到未发送到主机的单播数据包(只要您不在交换网络上或处于交换网络上,而是插入到获取所有通信量的“镜像”端口中)。

如果您传递tcpdump -p标志,它将请求非混杂模式,在这种情况下,您只会看到您的机器“得到”的数据包;在这种情况下,如果没有进程在特定的多播组注册兴趣,您将不会看到发送到该组的多播地址的数据包,但在这种情况下,这不是一个错误,这是一个特性,因为您的机器没有对这些包做任何事情。

因此,如果您希望看到所有数据包(到所有主机的单播数据包,到所有多播地址的多播数据包,以及广播数据包),在混杂模式下运行tcpdump (或Wireshark或其他什么),如果您处于交换网络上,则在“镜像端口”或"SPAN端口“上运行,或者任何交换机供应商称之为”镜像端口“(如果支持”镜像端口“)。

有关混杂模式和交换网络的详细信息,请参阅基于以太网数据包捕获的Wireshark Wiki页面;该页面上的信息适用于所有数据包嗅探器,包括tcpdump,而不仅仅适用于Wireshark。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/325677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档