OpenWrt blocks UDP traffic within LAN?

I am running OpenWrt 22.03.3 r20028-43d71ad93e in LXD as a router/edge device for my network.

My setup:

LXD OpenWRT with two interfaces:

  • physical eth0 passed through (WAN)
  • software bridge from host

Host:

  • three physical NICs (eth1-eth3) bound in a software bridge (bridge with static IP)

Everything works fine except today I discovered that apparently, there is no ability to connect between two LAN devices on UDP ports.

I am trying to connect from computer A to computer B (both connected by cable to eth1 and eth3) using Moonlight, which requires following ports:

    TCP: 47984, 47989, 48010.
    UDP: 47998-48000, 48002, 48010.

If I forward those ports form WAN to B on LAN and try to connect from A using external network - everything works fine. However, when I try to connect from A to B when both are on LAN, A detects B, but cannot complete the handshake:

image

There are two changes since the last time it worked:

  1. upgraded from OpenWRT 19 to 22.03.3
  2. instead of passing each physical NIC into LXD and binding them into a bridge inside OpenWRT, I now bind them on host, and pass only the resulting bridge into OpenWRT's LXD. Thanks to that, I still have LAN when OpenWRT LXD is down, which is very helpful because I can still access the headless host and fix/upgrade/change LXD's config.

Any ideas?