logoalt Hacker News

Bendertoday at 12:27 AM5 repliesview on HN

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/


Replies

exiguustoday at 3:18 AM

I use my own public powerdns dnsdist and recurser/authoritave instances for DoH, DoT, DoQ, TCP and UDP now for ~3 years. Setup took some time, because i used bind, unbound and dnsmasq before. It's super stable and i can also use it on my mobile or legacy devices and as resolver in unbound, adguard/dnsproxy or just in my local resolve.conf.

show 1 reply
harshrealitytoday at 12:43 AM

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?

show 1 reply
TacticalCodertoday at 2:34 PM

I run unbound too here. I love it that it takes wildcards to blacklist domains. I'm using big lists of domains to block and then I've got a whitelist that supercedes the blocked ones.

And I've got a little tool that takes:

    ayt7.ads.acme.com
    afi6.ads.acme.com
    foi5.ads.acme.com
and simplifies it to:

    ads.acme.com
Then I've got a script which generates variations of domains name I use. Say if I use:

    mybank.com (legit)
I block:

   myb4nk.com
   mibank.com
   mybank.{any other tld}
etc.

I generate hundreds of thousands of such variations: all blacklisted by unbound.

I did it after one of my bank sent me an example of a very convincing phishing site.

Been using such a setup since years now. A million blocklisted domains runs fine on an old Pi 3. I take it that on a more powerful computer unbound can deal with blocklist with millions if not tens of millions of domains (and, no, I haven't moved to whitelisting only).

I also block all unicode domains. I simply cannot access a domain name that use unicode characters in its name (and, no, I don't care).

show 1 reply
peteetoday at 1:09 AM

Unbound has "prefetch" which will refresh near-expired cached records, and various other cache/ttl knobs. "serve-expired" seemed to work well too

show 1 reply
kingo55today at 12:46 AM

> 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?

show 1 reply