在具有相同 IP 地址的多台机器上接收多播

Receiving multicast on multiple machines with the same IP address

构建一些自动配置 IP 地址的代码,当它们启动时它们都具有相同的 IP,该软件使用多播来查找网络上的其他设备并使用该信息来计算它自己的 IP 配置.

但是,如果它们具有相同的 IP,它们将停止接收多播数据包,但如果我强制它们具有不同的 IP,则多播会再次开始工作。多播是否绑定到 IP 地址,或者具有相同 IP 的多台设备是否可以接收多播。

我们不能使用 APIPA/Link-Local 寻址。

谢谢, 旦

组播不等于广播。多播是指向之前请求过该多播组的设备发送数据。

您不能使用多播访问任何以前未配置的机器。为此,您必须使用广播(即 255.255.255.255)。

多播依赖于 IGMP 协议,而 IGMP 协议又依赖于有效的 IP 单播设置,这反过来又要求所有设备都可以通过其 IP 地址进行唯一标识。 IGMP 消息包含发送设备的单播 IP 地址。

在您的设置中,路径上所有网络组件(路由器、交换机,还有设备本身)中的所有巧妙优化算法都将失败,因为它们无法识别请求多播组的目标。它们可能以任何随机方式失败。完全未定义具有相同 IP 地址的多个设备的行为方式。

在您的情况下,某些网络组件决定无需将多播数据包分发到相关端口,因为没有唯一的接收器连接到该端口。 (我只是在这里推测。任何其他答案也都是正确的。只是一个例子来解释它如何以您所看到的方式运行。)