Wifi DLNA multicast

I’m working to transition an ubuntu server running LXD containers from an ethernet connection to a wireless connection.

I can’t get my Gerbera container (DLNA media server) to DLNA broadcast over a wifi connection. The DLNA broadcast works with a bridged ethernet network profile, but not a wifi routed network profile.

I setup a routed network profile using the following guide. A container using the routed network profile gets an IP on the host network and can access the outside internet interface with wifi only. DNS resolution works too.

However, when I installed Gerbera in a ubuntu 20:04 container it doesn’t seem to broadcast its existance to the home network using the routed wifi network profile. When I ping multicast 224.0.0.0 from within the container I can’t see the packets on the host using tcpdump to monitor the wifi interface.

I’ve tried flushing the nftables ruleset, multicast routing solutions (pimd & mrouted using info at link below), but all without success.

Can anyone help?

Host interfaces:

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

valid_lft forever preferred_lft forever

inet6 ::1/128 scope host

valid_lft forever preferred_lft forever

2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000

link/ether e0:db:55:e8:fd:8d brd ff:ff:ff:ff:ff:ff

3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether e0:db:55:e8:fd:8d brd ff:ff:ff:ff:ff:ff

inet 192.168.1.122/24 brd 192.168.1.255 scope global dynamic br0

valid_lft 80067sec preferred_lft 80067sec

inet6 2a00:23c5:10bf:d600:e2db:55ff:fee8:fd8d/64 scope global dynamic mngtmpaddr noprefixroute

valid_lft 315359984sec preferred_lft 315359984sec

inet6 fdaa:bbcc:ddee:0:e2db:55ff:fee8:fd8d/64 scope global mngtmpaddr noprefixroute

valid_lft forever preferred_lft forever

inet6 fe80::e2db:55ff:fee8:fd8d/64 scope link

valid_lft forever preferred_lft forever

4: wlp2s0b1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000

link/ether 84:4b:f5:34:fc:6b brd ff:ff:ff:ff:ff:ff

5: wlxc46e1f25e927: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether c4:6e:1f:25:e9:27 brd ff:ff:ff:ff:ff:ff

inet 192.168.1.98/24 brd 192.168.1.255 scope global dynamic wlxc46e1f25e927

valid_lft 36876sec preferred_lft 36876sec

6: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1000

link/ipip 0.0.0.0 brd 0.0.0.0

7: lxdbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether 00:16:3e:d7:9e:e5 brd ff:ff:ff:ff:ff:ff

inet 10.131.64.1/24 scope global lxdbr0

valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fed7:9ee5/64 scope link

valid_lft forever preferred_lft forever

16: veth016d3221@if15: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxdbr0 state UP group default qlen 1000

link/ether 72:e3:9d:9e:51:bc brd ff:ff:ff:ff:ff:ff link-netnsid 2

18: veth561902ae@if17: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master lxdbr0 state UP group default qlen 1000

link/ether 72:c0:f6:92:0a:f3 brd ff:ff:ff:ff:ff:ff link-netnsid 3

22: veth92844081@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000

link/ether fe:de:f1:1c:75:53 brd ff:ff:ff:ff:ff:ff link-netnsid 0

inet 169.254.0.1/32 scope global veth92844081

valid_lft forever preferred_lft forever

inet6 fe80::fcde:f1ff:fe1c:7553/64 scope link

valid_lft forever preferred_lft forever

Host routes:

ip r

default via 192.168.1.254 dev br0 proto dhcp src 192.168.1.122 metric 100

default via 192.168.1.254 dev wlxc46e1f25e927 proto dhcp src 192.168.1.98 metric 600

10.131.64.0/24 dev lxdbr0 proto kernel scope link src 10.131.64.1

192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.122

192.168.1.0/24 dev wlxc46e1f25e927 proto kernel scope link src 192.168.1.98

192.168.1.203 dev veth92844081 scope link

192.168.1.254 dev br0 proto dhcp scope link src 192.168.1.122 metric 100

192.168.1.254 dev wlxc46e1f25e927 proto dhcp scope link src 192.168.1.98 metric 600

Gerbera LXD Container routes:

ip r

default via 169.254.0.1 dev eth0 proto static onlink

IP forwarding enabled.

cat /proc/sys/net/ipv4/ip_forward

1

Multicast forwarding can’t be enabled as noted at the link below.

cat /proc/sys/net/ipv4/conf/all/mc_forwarding

0

I have installed, enabled and started pimd on the host.

Reverse path forwarding isn’t 0, but when I did set it manually to 0 it didn’t seem to help.

sysctl -ar '\.rp_filter'

net.ipv4.conf.all.rp_filter = 2

net.ipv4.conf.br0.rp_filter = 2

net.ipv4.conf.default.rp_filter = 2

net.ipv4.conf.eno1.rp_filter = 2

net.ipv4.conf.lo.rp_filter = 0

net.ipv4.conf.lxdbr0.rp_filter = 2

net.ipv4.conf.tunl0.rp_filter = 2

net.ipv4.conf.veth016d3221.rp_filter = 2

net.ipv4.conf.veth561902ae.rp_filter = 2

net.ipv4.conf.veth92844081.rp_filter = 1

net.ipv4.conf.wlp2s0b1.rp_filter = 2

net.ipv4.conf.wlxc46e1f25e927.rp_filter = 2

Nftable rules:

nft add rule ip filter INPUT ip daddr 224.0.0.0/4 ct state new counter accept

nft add rule ip filter FORWARD ip daddr 224.0.0.0/4 counter accept

nft add rule ip filter FORWARD ip saddr 224.0.0.0/4 counter accept

nft add rule ip filter OUTPUT ip daddr 224.0.0.0/4 ct state new counter accept

I test changes by pinging multicast from within the Gerbera container.

ping 224.0.0.1 -t 100

I then look for a response on the outbound host interface using tcpdump.

tcpdump -vv -l -i br0 net 224.0.0.0/4

The multicast traffic is visible on the host on the container’s veth interface but not on the outbound br0 interface. I’d like to get multicast working using the routed network profile because then I could transition to a wifi server connection only.

Sithuk…Any luck on this… Facing similar issue when trying to route Multicast and Broadcast Packets from Bridge to wlan interface.

Interfaces are part of Container Bridge. Unicast forwarding is working fine and Wlan to Bridge Multicast/Broadcast forwarding also works.

DNS Advertisement/Discovery have to be routed