OK Here’s the latest,
I am pretty sure multicast/broadcast IS actually getting through Wi-Fi and to the client. I see the Wi-Fi client (one of several Android tablets) must be getting the broadcasts, because it is trying to ARP for the client who sent the broadcast (so it can apresumably respond to the broadcast) however the ARP responses are not being received (a conclusion I’m drawing because the device continuously sends arp who-has requests, something that it wouldn’t do unless it does not yet have an ARP entry for the device). If this ARP were successful then no doubt the unicast response would reach the requestor and the player would show up in the list.
So the question is, why is the Wi-Fi client (“Player B”) not seeing the ARP responses from clients (eg. Player “A”) on the local MC Wi-Fi?
Below is a brief capture of broadcast traffic and port 19132 (Minecraft Raknet protocol) showing a client, “A” (A.A.A.A/AA:AA:AA:AA:AA:AA) looking for other players, remote player “C” responds and is visible in the players list, they are on a remote Wi-Fi network a few hundred miles away, on the other side of VLAN44. While player “B” who is local, never shows up in the player list. From the capture we can see that player B is struggling to resolve an ARP entry for “A”, while from the perspective of A’s Wi-Fi network (where the capture was taken) A is indeed responding to each ARP request.
Device “D” is the Raspberry Pi where the capture was taken, also broadcasting the Wi-Fi that player “A” is on (And “C” via L2 VPN), bridged to the Routerboard Wi-Fi that “B” is on. “D” runs a script that I wrote, which polls for active games every few seconds. Player “B” is not only invisible to player “A” but also to device “D”, with similar ARP behavior for both - Player “B” never seems to see the ARP “is-at” responses from “D” or the devices connected to its Wi-Fi (which is bridged to VLAN44).
13:01:07.708753 AA:AA:AA:AA:AA:AA > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: A.A.A.A.43366 > 192.168.251.255.19132: UDP, length 33
13:01:07.724373 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has A.A.A.A tell B.B.B.B, length 42
13:01:07.755211 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:07.756067 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:08.253083 CC:CC:CC:CC:CC:CC > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: C.C.C.C.50665 > 192.168.251.255.19132: UDP, length 33
13:01:08.551898 BB:BB:BB:BB:BB:BB > 01:00:5e:00:00:fb, ethertype IPv4 (0x0800), length 119: B.B.B.B.5353 > 224.0.0.251.5353: 19 [3q] PTR (QM)? _674A0243._sub._googlecast._tcp.local. PTR (QM)? _8E6C866D._sub._googlecast._tcp.local. PTR (QM)? _googlecast._tcp.local. (77)
13:01:08.710938 AA:AA:AA:AA:AA:AA > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: A.A.A.A.43366 > 192.168.251.255.19132: UDP, length 33
13:01:08.720319 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has A.A.A.A tell B.B.B.B, length 42
13:01:08.789349 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:08.790763 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:09.135696 DD:DD:DD:DD:DD:DD > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: D.D.D.D.45200 > 192.168.251.255.19132: UDP, length 33
13:01:09.139372 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has D.D.D.D tell B.B.B.B, length 42
13:01:09.139446 DD:DD:DD:DD:DD:DD > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply D.D.D.D is-at DD:DD:DD:DD:DD:DD, length 28
13:01:09.140330 DD:DD:DD:DD:DD:DD > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply D.D.D.D is-at DD:DD:DD:DD:DD:DD, length 28
13:01:09.254783 CC:CC:CC:CC:CC:CC > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: C.C.C.C.50665 > 192.168.251.255.19132: UDP, length 33
13:01:09.256926 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has C.C.C.C tell B.B.B.B, length 42
13:01:09.317692 CC:CC:CC:CC:CC:CC > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply C.C.C.C is-at CC:CC:CC:CC:CC:CC, length 28
13:01:09.544996 BB:BB:BB:BB:BB:BB > 01:00:5e:00:00:fb, ethertype IPv4 (0x0800), length 119: B.B.B.B.5353 > 224.0.0.251.5353: 20 [3q] PTR (QM)? _674A0243._sub._googlecast._tcp.local. PTR (QM)? _8E6C866D._sub._googlecast._tcp.local. PTR (QM)? _googlecast._tcp.local. (77)
13:01:09.712435 AA:AA:AA:AA:AA:AA > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: A.A.A.A.43366 > 192.168.251.255.19132: UDP, length 33
13:01:09.723459 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has A.A.A.A tell B.B.B.B, length 42
13:01:09.798049 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:09.799014 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:10.138788 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has D.D.D.D tell B.B.B.B, length 42
13:01:10.138865 DD:DD:DD:DD:DD:DD > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply D.D.D.D is-at DD:DD:DD:DD:DD:DD, length 28
13:01:10.139851 DD:DD:DD:DD:DD:DD > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply D.D.D.D is-at DD:DD:DD:DD:DD:DD, length 28
13:01:10.254028 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has C.C.C.C tell B.B.B.B, length 42
13:01:10.260419 CC:CC:CC:CC:CC:CC > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: C.C.C.C.50665 > 192.168.251.255.19132: UDP, length 33
13:01:10.313856 CC:CC:CC:CC:CC:CC > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply C.C.C.C is-at CC:CC:CC:CC:CC:CC, length 28
13:01:10.547314 BB:BB:BB:BB:BB:BB > 01:00:5e:00:00:fb, ethertype IPv4 (0x0800), length 119: B.B.B.B.5353 > 224.0.0.251.5353: 21 [3q] PTR (QM)? _674A0243._sub._googlecast._tcp.local. PTR (QM)? _8E6C866D._sub._googlecast._tcp.local. PTR (QM)? _googlecast._tcp.local. (77)
13:01:10.722082 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has A.A.A.A tell B.B.B.B, length 42
13:01:10.751619 AA:AA:AA:AA:AA:AA > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: A.A.A.A.43366 > 192.168.251.255.19132: UDP, length 33
13:01:10.869897 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:10.871567 AA:AA:AA:AA:AA:AA > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply A.A.A.A is-at AA:AA:AA:AA:AA:AA, length 28
13:01:11.138937 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has D.D.D.D tell B.B.B.B, length 42
13:01:11.139014 DD:DD:DD:DD:DD:DD > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply D.D.D.D is-at DD:DD:DD:DD:DD:DD, length 28
13:01:11.140028 DD:DD:DD:DD:DD:DD > BB:BB:BB:BB:BB:BB, ethertype ARP (0x0806), length 42: Reply D.D.D.D is-at DD:DD:DD:DD:DD:DD, length 28
13:01:11.253988 BB:BB:BB:BB:BB:BB > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 56: Request who-has C.C.C.C tell B.B.B.B, length 42
13:01:11.266981 CC:CC:CC:CC:CC:CC > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 75: C.C.C.C.50665 > 192.168.251.255.19132: UDP, length 33