-
-
Notifications
You must be signed in to change notification settings - Fork 160
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
v055: can't resolve .local
domains - never get any DNS response
#1005
Comments
Yeah, we implemented mDNS but have no way to test it. And then this happens. Fully expected (: I'd imagine, if you turn ON Do not private IPs that mDNS queries should be left out of Rethink's VPN tunnel. Surprised that's not the case. |
any fixes we make will be a short in the dark, so unlikely this is fixed by next version or two; here's the code in case you can spot something wrong https://github.com/celzero/firestack/blob/2191d5b32f29d85058e3d513832204da36be626b/intra/dns53/mdns.go#L129 :) |
Fair enough. In the meantime, would it be possible to add a setting to allow
If a program explicitly makes an mDNS query itself (e.g.
I'll admit, Go isn't a language that I've gotten around to learning yet. But it seems to be roughly the same 'shape' as most imperative languages these days, so I'll see what I can make of it. Additional notes: The packet capture from Rethink shows the normal-DNS query coming from Setting an app to 'bypass' allows it to resolve Looking in the logs, these are the only messages that mention mDNS when I try
I thought at first that it wasn't even making it to In any case, I'm not seeing any errors, nor any sign that it's getting a response (which makes sense, given that the query is never reaching the machine that would be able to give that response). Is there anything else you need me to look for in the logs that might be helpful? On a slightly-related note, when Rethink starts up, I'm seeing a log entry that says |
Possible but it adds yet another knob in our app and yet another
Gotcha. That's how I'd expect Do not route Private IPs to work... So, no surprises here.
Hm. For me, Go was one of the easiest languages to learn. Fastest I got proficient in. It is a mix of limited versions of both JS + Python.
Yep. This means, the I mdns: closing client {true true 0x4000314e10 0x4000314e18 <nil> <nil> map[] 0x4001313860 true 1 0x40002943c0
Not yet. Good call though. We should include this in the release builds, too.
You mean
I think there's some stupid bug in our code. I already spent an hour today without making any progress. I intend to spend some more time tomorrow. Let's see.
Yep, that "error" doesn't matter, but I've fixed it, anyway. |
I've also tried changing the IP version between IPv4, IPv6, and auto - that didn't seem to affect it either.
Fair enough. I suspect non-mDNS usage of
Oh, I wasn't saying it was a difficult language - I just haven't taken the time to learn it yet.
Gotcha. I didn't know whether 'upstream' DNS/mDNS queries and responses would show up in the packet capture or not. I'm not familiar enough with the app's architecture to know what the logs should look like, but in hindsight, it makes sense that
Okay. Just wanted to check in case it would help with tracking this down.
🤦 Yeah, I meant 'exclude'. Not sure what happened there - I think I was testing the 'bypass' options as well, just to be on the safe side (they didn't affect anything), then got mixed up and wrote the wrong one down. Sorry about that.
Thank you for looking into this. Let me know if there's anything else I can do to help track this down. |
I think this was some sort of bug in the Go runtime. A We've fixed the |
Trying to test this with Edit: no cookie. |
I'm currently running the F-Droid build of Rethink. v055a isn't available there yet, and I can't install it from another source without uninstalling, because of the certificates. I would use Rethink's backup/restore system to move over to the GitHub or Google Play version, but it sounds like there are issues with that right now (#986, #975). Is there another way that I can preserve the settings while switching to another build? Or should I just wait for F-Droid to update it and check then? |
Please wait for F Droid to get the update. Backup and restore is a hairy beast. |
Okay, v055a showed up on F-Droid earlier today, and I've gotten a chance to do some testing now. It's still not resolving Rethink's packet capture still only shows the normal-DNS query being sent by Termux/ I noticed that the names in the responses were mixed-case while I had entered the query as lowercase, and thought maybe the (I'm entering a specific server address in the The
|
Good catch. Even though it is unlikely to be the issue here, I've fixed it anyway: celzero/firestack@f7190cb And added a bunch more logs(celzero/firestack@3796d92, celzero/firestack@2674ed6). I'll keep this thread updated as I work my way to running tests with mdns myself. I've bothered you enough. |
mDNS had a deadlocked channel and an infinite loop:
mdns setup on deb:
Unfortunately, neither Termux (excluded from Rethink or otherwise) with
|
That's odd - excluding it makes both of those commands work on my device. Does it work on yours with Rethink turned off entirely? |
Yeah, no difference whether rethink is ON or OFF. I think my mdns setup isn't fully working... I'll keep looking for ways to test this over the next few days, though. |
Hi @Rhys-T: Can you please check if |
@ignoramous I'll keep an eye out for it. Thanks. |
@ignoramous Sorry for the delay. Apparently I wasn't getting update notifications from F-Droid for some reason1 - I just discovered last night that the new version of Rethink (among other things) had shown up. I just set Termux and AVNC back to the normal 'allow' settings, and I can resolve Thank you so much for your help with this. Footnotes
|
Thank you for doing our design, research, and testing for us! We merely implemented it (erroneously so, for over 4+ versions). mDNS aside, I doubt p2p apps would still work, unless Do not route Private IPs is enabled or those apps are Excluded from Rethink altogether. Seems like some Android limitation (ex: #1356), but I'm yet to fully get to the bottom of it. (closing this issue, feel free to reopen) |
Possibly a followup to the discussions about mDNS in #26:
After updating Rethink to v0551, I can no longer resolve domains in the
.local
TLD. Other, more 'normal', domains work fine. Previously, even though Rethink couldn't resolve.local
s through mDNS (and Android wouldn't do mDNS itself since it thought it was on a VPN), it would at least pass them on via normal DNS to personalDNSFilter2, where I could manually enter addresses for them and update them when needed.If I run
dig some-machine.local
under Termux, it sits there for about 18 seconds, then tells meconnection timed out; no servers could be reached
. Neither Rethink nor pDNSf shows that domain being requested in their logs. Wireshark (running on the machine I'm asking for) never sees the query. The Rethink packet capture does show the query being sent a few times (to 8.8.8.8 and 8.8.4.4), but no response.(To be clear, it fails under normal Android apps too, not just Termux/Linux commands. I'm just using
dig
to see how it's failing.)If I talk directly to pDNSf by doing
dig @127.0.0.1 -p5300 some-machine.local
, I can still get the address I've manually set there.I've tried various combinations of:
Footnotes
The F-Droid version, if it matters. ↩
Specifically, the test build from IngoZenz/personaldnsfilter#264 (comment), so that it doesn't kill Rethink during startup. ↩
The text was updated successfully, but these errors were encountered: