br0 导致 5 分钟后断开多播连接

k3a*_*k3a 5 linux bridge multicast

我在路由器(Linux 机器)上设置了这些接口:

br0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST>  mtu 1500
        inet 192.168.0.3  netmask 255.255.255.0  broadcast 192.168.0.255

bridge name bridge id       STP enabled interfaces
br0     8000.00156d8591ec   no      eth0
                            wlan0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::7271:bcff:feb1:d9cf  prefixlen 64  scopeid 0x20<link>

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.200.44.147  netmask 255.255.255.128  broadcast 10.200.44.255

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::215:6dff:fe85:91ec  prefixlen 64  scopeid 0x20<link>
Run Code Online (Sandbox Code Playgroud)

在 br0 中有两个接口(eth0 - 本地家庭网络和 wlan0 - 无线家庭网络)。eth1 是互联网连接接口,不是 br0 的一部分。

我使用 mumudvb 发送 IP 组为 239.100.0.1 (udp/1234) 的多播 IPTV,并使用 VLC 播放器在 LAN 上的另一台机器上接收此多播流量。

当我将它配置为通过 eth0 发送多播时,一切都在家庭局域网上运行良好,但我无法从路由器本身加入多播组。

这就是为什么我将它配置为通过 br0 发送多播(更有意义 - 然后我可以从 LAN eth0 以及路由器本身加入多播组)但是加入后大约 5 分钟,LAN 多播连接断开(不发送任何 IGMP 消息) )。但我可以再次加入,它会在接下来的 5 分钟内再次工作,然后下降。

为什么通过 br0 发送多播时会掉线,而直接通过 eth0 发送时不会掉线?我是否缺少桥上的一些配置?在此期间什么可以过期?例如,桥的 STP 被禁用,但它不应该影响这一点?

当我从路由器本身加入 br0 多播组时,它不会掉线。仅当从通过 eth0 连接到 br0 的机器订阅时。

k3a*_*k3a 6

使用 br0 进行组播时,需要启用 IGMP 查询器。当它启用时,IGMP 协议版本将从 v3 更改为 v2,它将开始发出成员资格查询并且不再下降。

从我用谷歌搜索的内容来看,似乎没有在网桥上启用查询器的实用程序,必须通过/sys如下方式完成:

$ echo -n 1 > /sys/devices/virtual/net/br0/bridge/multicast_querier
Run Code Online (Sandbox Code Playgroud)