-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello.

I run several exit relays. I'm trying to keep them in diverse locations
(South Africa, Moldova, USA, and Canada so far, with none in any AS
that hosts more than 1% of network bandwidth). I'm using Unbound as a
local recursive DNS resolver so I don't have to trust 3rd parties with
the DNS queries. But I can't run Unbound on the same IP that exit
traffic goes through because some nameservers blacklist Tor, so I use a
second IP. With the price of IPv4s these days, this can inflate the
cost of a budget VPS by a significant percentage of its original cost.

Right now, Unbound is set up with prefetching and key prefetching
enabled, DNSSEC validation enabled, QNAME minimization, a large cache
and negative cache, and a local copy of the root zone (RFC 8806).

Would it be reasonable to dedicated a single, cheap VPS for DNS
queries, and have all my other exits use it as their resolver over DoT?
The way I see it, that has a few pros:

* By saving on IPv4 costs, I can run more relays.
* An attacker who can monitor the outgoing DNS traffic doesn't know
 which relay it is coming from, as all relay DNS queries are mixed.
* By sharing a single cache, there will be more cache hits and less
 need to talk to nameservers and expose queries to them. In other
 words, a nameserver would only know "someone on one of forest's
 relays looked up this site" rather than "someone on this particular
 relay looked up this site".

But I can see there being a few cons as well:

* By sharing a single cache, "timeless timing attacks" may become worse
 because a single lookup will prime the cache of all of my relays.
* Due to their diverse geographical nature, some exits will have sub-
 optimal routes to the "master" resolver, which increases latency and
 allows more entities to know when and how many lookups my servers are
 making (although not what is being looked up, because of DoT).

So what should I do? Run a local recursive resolver on each exit? Set
up my own upstream resolver and point all my exits to it? Try to use the
ISP's resolver and hope that they configure it well? Use some privacy-
friendly upstream resolver like dot.sb? Use a DNS resolver hosted by a
major exit operator, as suggested by Nothing To Hide in his blog post
https://nothingtohide.nl/blog/improving-dns-privacy-on-tor-exit-relays/?

I would like advice on the best solution here.

Regards,
forest
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEvLrj6cuOL+I/KdxYBh18rEKN1gsFAmj3/7UACgkQBh18rEKN
1gtA5RAAj7k0/SbG/ki9uQCAG4MjxQAZU8nfjuIaVet7PRCpiLoH8obBSM6m7Gve
Qb+AV+uOl3IwjUwu914opEZmSolZXRF2CJ4mX+dfZlbigRHqf0jCiBwOVChCMeDR
lGGrFICZvH+t2Sy3totmlcWD57aHXkDux/0eNHj0c5VmfOQKiehSqF0IlK6xI3KC
ozNzBaYjjdYdtsQetpeQ0ZEgtv/xU4a+DqiLh5MApCiyt0lP88nTUTuQ8tu1qL3j
ijLoac2/ZXG2nlMrKkIB7qNDG1r5CsIb6BdJM/hyfNr1d23VqJfrlILYJFXi3ZAd
GurC4tGb/3m2BqWEgzNu/zT/xZ99Ky5zSK+oJDKCeQ8OLaP1IvgviMB0yXLLozB9
NlJweJMn3c1mJ9TxvG1zWbrABee847bizb0ncwkv3ikrownWaSRW5n4v1SXHv/lO
yLYjrNI7KJfqvgECgtYni5n4DBzW98pNkFrD3sBxtz0BUtngC6lXjN1ru9l4m5sW
EiMS7ifAOnCTN8g8ipocBihYoNvsESmbjzUka63nrnqnvmG3tZB5oIR+WpvXnU3o
hxxmlXfjAgmBNf4kuzlAfBRenFf0HkfE9y//YOmCJOgiZzuV6Tv040kkdUKtXbbS
F4ZShpS04UvpniCKSBa3mn8Ft33GR01mRvgzRZ2dXv3heqqWlmo=
=wsTY
-----END PGP SIGNATURE-----