Wireshark如何在不加入多播组的情况下捕获多播流量

How is Wireshark able to capture multicast traffic without joining the multicast group

如果我理解正确,在多播场景中,发送到多播组的数据包仅由加入该组的客户端接收(基本上路由器将数据包转发到预期收件人)。那么 wireshark 如何能够捕获多播流量(即使在非混杂模式下)?

如果我遗漏了什么,请帮助我理解。在下面的示例抓包中,192.168.1.1 是服务器向组 239.0.0.222 发送组播数据包,当前 machine/wireshark 没有加入该组但仍然可以捕获数据包。

拓扑: 我有 3 个虚拟机、1 个服务器、1 个客户端和 1 个 WireShark 虚拟机。所有这三个虚拟机都位于 Hyper-V 专用交换机后面(在同一子网中)。

确实,只有在另一端有客户端需要多播流量时,路由器才会转发多播流量。但在您的情况下,所有 3 个虚拟机都在同一个子网中,因此不涉及路由器,只有一个交换机。

这 3 个 VM 所连接的交换机可能不会对多播消息执行任何特殊处理。这意味着它收到的任何多播消息都会在所有端口上发送出去,其中包括 VM 运行 Wireshark。由于数据包实际到达该端口,Wireshark 会看到并显示它们。