Choosing a Public DNS Resolver

(evilbit.de)

46 points | by pawal 3 hours ago

6 comments

  • kingo55 48 minutes ago
    It would be nice if a site like this could offer a basic speed comparison test to your local network.

    Imagine seeing response times at P90 for a series of random lookups and comparing the median response times.

    • snailmailman 10 minutes ago
      I run an instance of smokeping locally for this purpose. It pings a variety of DNS servers (including my ISPs DNS) and several of the top websites. I periodically update my local DNS server’s upstream accordingly.

      All the big DNS servers are in the 5-6ms range for me, but that hasn’t always been the case. My ISPs DNS is about the same but with crazy variance and spikes of up to 50ms, even though they should be able to be the fastest.

  • Bender 1 hour ago
    I use Unbound locally as a DoH server. The Alpine Linux Unbound package is compiled with libnghttp2, required for the built in DoH listener. That's more than enough to enable ECH [1].

    I pre-cache all the domains I use hourly via cron. My ISP is not going to dork with my DNS requests and their employees are bigger deviants than I. If I ever started browsing the web from a phone I would just set up my own public DoH server. It only takes a few minutes and gives me my own query logs for debugging weird issues.

    [1] - https://tls-ech.dev/

    • harshreality 47 minutes ago
      Why pre-cache? For speed... what is it, 30-50ms at most? If the authoritative server's TTL is <60minutes, do you force it to 3600? Do you audit all the connections that occur for every website you visit, collect all the domains hosting assets, and pre-cache those as well, or is the main site's domain the only critical one because that affects perceived latency the most?
      • Bender 38 minutes ago
        I pre-cache for speed, verifying records that have expired since I retain the expired records for sites that have intermittent DNS issues and also to throw in domains that I do not use in the off chance someone is logging where I go and when. They will see the Cloudflare top 20K domains hourly. Myself and family members have been able to access sites when others around the internet can not due to infrastructure related DNS problems. In other words, when others will say "It's always DNS" for myself and family members that is rarely the case as DNS records do not change as often as people seem to think they do.
        • abcdefg12 9 minutes ago
          Or you could use dnscrypt so ISP doesn’t see your lookups at all
          • Bender 2 minutes ago
            When all the authoritative servers support TLS I can enable TLS outbound but very few of them do at the moment. At some point someone is decrypting. I could of course just do DoT to another instance of Unbound somewhere else but I do not need to do that as my ISP does not care about my queries. I used to keep standby DoT Unbound servers around but I have never once seen a US ISP tinker with my traffic. If they did I would put up billboards saying they what they are doing.
    • petee 21 minutes ago
      Unbound has "prefetch" which will refresh near-expired cached records, and various other cache/ttl knobs. "serve-expired" seemed to work well too
      • Bender 18 minutes ago
        I use both of those as well in Unbound.
    • kingo55 45 minutes ago
      > I pre-cache all the domains I use hourly via cron.

      How does this look? Shell script querying a list of hostnames? What qualifies as a domain you use?

  • _def 1 hour ago
    quad9 seems fine. Glad there are a bunch of alternatives though. We should never stop practicing decentralization in the net.
  • degenerate 56 minutes ago
    9.9.9.9 with 1.1.1.1 as secondary
  • denkmoon 1 hour ago
    9.9.9.9 is all you need
  • Obsessive5300 1 hour ago
    [dead]