什么是组播侦听以及为什么它会破坏 UPnP/DLNA?

什么是组播侦听以及为什么它会破坏 UPnP/DLNA?

我有一台服务器,除其他外,它使用mediatomb.客户使用简单服务发现协议(SSDP) 来定位网络上的服务器。

我发现 SSDP 发现M-SEARCH查询没有得到响应,并最终跟踪问题的事实,即服务器使用的是桥接接口,该接口具有组播侦听启用(因为网桥默认启用此功能)。

我解决了我的问题

echo 0 > /sys/devices/virtual/net/br0/bridge/multicast_snooping

然而,尽管这在我的情况下有效,但我不明白它在做什么,以及是否有任何我不知道的含义。因此问题....

什么是多播监听,为什么它会破坏 SSDP,为什么需要它以及为什么它在网桥上默认启用,以及禁用它可能会导致什么问题,因为它可能是默认启用的并且有充分的理由?

答案1

多播可能会给交换机路由器带来沉重的负载(更不用说潜在 DoS 攻击的安全方面)。在交换机(或 Linux 网桥)上,组播侦听位于网络层 2.5,旨在通过以下方式减轻负载:

  • 窥探网络流量
  • 识别每个交换机端口订阅的多播通道
  • 过滤其他多播流量

听起来,这始终是一个理想的功能(除非您想调试多播流量)。那么为什么要禁用多播监听呢?

因为您面临的是几年前我在使用 Corosync 和两个不同主机上的两个虚拟机时遇到的一个错误:流量正常,直到某个点所有传入的多播流量似乎都被主机丢弃(尽管其iptable表完全为空)。 AFAIK,这是 3.x 内核中的一个错误,我必须像你一样禁用多播监听。如果我没记错的话,我当时使用的是 Debian(Wheezy 或 Jessie),但是这个红帽错误报告准确描述了我遇到的问题。

正如此错误报告中所解释的,如果有可能,最好:

echo 1 > /sys/devices/virtual/net/br0/bridge/multicast_querier

比:

echo 0 > /sys/devices/virtual/net/br0/bridge/multicast_snooping

相关内容