Reputation: 10151
In my home network, accessing http://esp32.local
(ESP32S3 dev board running mDNS) from my Android phone using any browser results in errors such as ERR_NAME_NOT_RESOLVED
or DNS_PROBE_FINISHED_NXDOMAIN
. Tried Termux, same thing. Connected via adb
and pinger from there, same thing.
Other devices on the same network, including a Windows laptop, an iPhone 6S (or similar) and an older MacBook Air. Each successfully resolves esp32.local
.
In another local network (mother-in-law), everything just works (previously I recall things worked even in my own local network, but I'm not sure anymore, it's a mirage).
Disabled private DNS on my phone, no effect
(In my mother-in-law's network mDNS resolving worked only when this setting was off.)
Reverted back to my ISP's DNS servers, no effect.
Using adb
I verified (using dumpsys connectivity
's output) that private DNS were off and also that my IPS's DNS servers were active.
Turned off IPv6 on my local network (since my mother-in-law's didn't have this enabled), no effect.
Tried rebooting everything, phone, network, no effect.
I have a TP-Link Deco M4, the other router is TP-Link Archer AX10 AX1500, nothing fancy about them. Mine is running as a router, configured "behind" my ISP's ONT device using PPPoE passthrough, the other is an AP I believe, maybe a router (but it's totally default aside from this).
Any ideas how to solve this problem? Where to look? What can be the source of the problem?
I have seen similar problems online being reported here and there but they lack information, clarity as to define whether those are about the same problem or something else.
Upvotes: 2
Views: 216
Reputation: 96
This isn't answer to be fair, but it's further information as I see it - and comments are too short for the detail I wanted to post.
I'm also having the same problem (Android 15, Pixel 6 - Kernel build Sep 2 2024) which, I too, believe that at some relatively recent point in time was working for me (dabbling with esp32
I've tried via two APs I have (one is a RT-AX82U running stock, and the other is an of Linksys I had lying around with an oldish version of DD-WRT on it.
My Windows PC works fine, as does my partner's iPhone which suggests that it's the implementation of the DNS resolver in Android that's the culprit.
I did spot that around 5 weeks ago, several PRs were merged pertaining to mDNS, which does seem suspicious to me, although it's not clear what the cadence of updates to Android devices are, it would appear that these changes are more recent than the version I currently am running. https://android.googlesource.com/platform/packages/modules/DnsResolver/+log?s=ccdad891f6e896511c355de36ed287361c8f7a6f
I'm not a c++ dev, and the low-level net stack is something I'm not very knowledgeable about so my normal tack of dissecting the code isn't really an option. Hopefully the community can figure this one out!
Upvotes: 1
Reputation: 1026
I think your mother-in-law network runs a DNS server on the router which does the resolving for you. So it's DNS, not mDNS. This is confirmed by failure to resolve the hostname when your phone uses private DNS.
Your router, on another hand, doesn't resolve .local
domain as belonging to local network.
When the devices obtain the IP address via DHCP from the router, the latter can specify the DNS servers to use. Yours may specify the provider's servers while mother-in-law's specifies its own.
Upvotes: 1