Can't use RethinkDNS filtered DoH addresses
tina-hello opened this issue · comments
Unfiltered DoH address such as
and
https://basic.rethinkdns.com/dns-query/
works, but
https://basic.rethinkdns.com/dns-query/1:AMD_PwDw
such as configured by https://rethinkdns.com/configure#1:AMD_PwDw doesn't work with the error message:
Cannot make the DNS request: dns: id mismatch
The filtered URL works with Chrome. This isn't simply because of the character, since
https://dns.nextdns.io/1:AMD_PwDw
works. So this seems to be a quirk on how either the dnslookup or RethinkDNS (which is based on Cloudflare Worker) send the query.
This looks more like a bug of RethinkDNS that returns responses with the wrong DNS ID.
@ignoramous could you please take a look?
Yeah I just tested the URL against https://dohjs.org/, they don't work with GET, but work with POST. While Chrome seems to only use POST for DoH calls, the standards actually include both GET & POST, I guess both dnslookup and AdGuard Home (at least the test stream) use GET instead?
We use GET for a reason, it's better from the performance point of view (POST implementation in golang is a bit messy).
@ameshkov Tracking it here: serverless-dns/serverless-dns#2
GET
was once disabled due to bots, forgot to enable it back again.
Thanks!