ameshkov / dnslookup

Simple command line utility to make DNS lookups to the specified server

Repository from Github https://github.comameshkov/dnslookupRepository from Github https://github.comameshkov/dnslookup

Can't use RethinkDNS filtered DoH addresses

tina-hello opened this issue · comments

Unfiltered DoH address such as

https://basic.rethinkdns.com/

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!