linux-br0导致5分钟后丢弃多播连接

我在路由器(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>

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

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

当我将其配置为通过eth0发送多播时,所有在家庭LAN上运行良好但我无法从路由器本身加入多播组.

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

为什么在通过br0发送多播时丢弃而在直接通过eth0发送时不丢弃?我错过了桥上的一些配置吗?什么可以在此期间到期?例如,为桥接器禁用STP,但它不应该影响这个?

当我从路由器本身加入br0多播组时,它不会丢弃.仅当从连接到br0到eth0的机器订阅时.

解决方法:

使用br0进行多播时,需要启用IGMP查询器.启用后,IGMP协议版本将从v3更改为v2,它将开始发出成员资格查询,不再丢弃.

从我用Google搜索的内容来看,似乎没有用于在桥上启用查询器的实用程序,它必须通过/ sys完成,如下所示:

$echo -n 1 > /sys/devices/virtual/net/br0/bridge/multicast_querier
上一篇:Openvswitch手册(1): 架构,SSL, Manager, Bridge


下一篇:docker k8s集群创建