udpbroadcastrelay swallowing packets?

Started by jjlawren, February 19, 2023, 06:39:29 AM

Previous topic - Next topic
I've had udpbroadcastrelay configured to relay SSDP across subnets for quite a while, and it's worked exactly as expected. However since 23.1 (I believe) it will only work for a few minutes and then packets stop being relayed. If I stop/start the service then packets will begin to flow properly again, but only for a few minutes.

To test things, I set up a rule to log any UDP packets sent to 239.255.255.250:1900 from my LAN and placed it first in the rule order.

  • With udpbroadcastrelay stopped, sending an SSDP packet from my LAN will hit opnsense but go no further.
  • With udpbroadcastrelay enabled, sending an SSDP packet from my LAN will hit opnsense and relay to my IoT subnet.
  • After a few minutes, sending an SSDP packet from my LAN will show nothing in the live firewall logs.
  • Disabling udpbroadcastrelay will immediately show SSDP packets arriving from the LAN hosts as in #1.
I've tested the above with multiple different LAN hosts with identical results. When it stops working for one host, it stops working for all hosts.

It seems that udpbroadcastrelay is swallowing these packets before they even hit the firewall. Is udpbroadcastrelay the likely culprit here? Or could there be another angle I'm not considering, like IGMP or another network device misbehaving?

After a lot of digging, I believe this was related to IGMP sniffing not working as I expected. After that was disabled on the downstream switches the multicast traffic delivery has been very reliable.