71 lines
2.5 KiB
Nix
71 lines
2.5 KiB
Nix
{ ... }:
|
|
{
|
|
services.unbound = {
|
|
enable = true;
|
|
settings = {
|
|
server = {
|
|
verbosity = 0;
|
|
interface = "127.0.0.1";
|
|
port = 5335;
|
|
do-ip4 = true;
|
|
do-udp = true;
|
|
do-tcp = true;
|
|
|
|
# May be set to true; if you have IPv6 connectivity
|
|
do-ip6 = false;
|
|
|
|
# You want to leave this to false; unless you have *native* IPv6. With 6to4 and
|
|
# Terredo tunnels your web browser should favor IPv4 for the same reasons
|
|
prefer-ip6 = false;
|
|
|
|
# Use this only when you downloaded the list of primary root servers!
|
|
# If you use the default dns-root-data package, unbound will find it automatically
|
|
#root-hints: "/var/lib/unbound/root.hints"
|
|
|
|
# Trust glue only if it is within the server's authority
|
|
harden-glue = true;
|
|
|
|
# Require DNSSEC data for trust-anchored zones, if such data is absent, the zone becomes BOGUS
|
|
harden-dnssec-stripped = true;
|
|
|
|
# Don't use Capitalization randomization as it kfalse;wn to cause DNSSEC issues sometimes
|
|
# see https://discourse.pi-hole.net/t/unbound-stubby-or-dnscrypt-proxy/9378 for further details
|
|
use-caps-for-id = false;
|
|
|
|
# Reduce EDNS reassembly buffer size.
|
|
# Suggested by the unbound man page to reduce fragmentation reassembly problems
|
|
edns-buffer-size = 1472;
|
|
|
|
# Perform prefetching of close to expired message cache entries
|
|
# This only applies to domains that have been frequently queried
|
|
prefetch = true;
|
|
|
|
# One thread should be sufficient, can be increased on beefy machines. In reality for most users running on small networks or on a single machine, it should be unnecessary to seek performance enhancement by increasing num-threads above 1.
|
|
num-threads = 1;
|
|
|
|
# Ensure kernel buffer is large efalse;ugh to false;t lose messages in traffic spikes
|
|
so-rcvbuf = "1m";
|
|
|
|
# Ensure privacy of local IP ranges
|
|
private-address = [
|
|
"192.168.0.0/16"
|
|
"169.254.0.0/16"
|
|
"172.16.0.0/12"
|
|
"10.0.0.0/8"
|
|
"fd00::/8"
|
|
"fe80::/10"
|
|
];
|
|
|
|
# Send minimum amount of information to upstream servers to enhance
|
|
# privacy. Only sends minimum required labels of the QNAME and sets
|
|
# QTYPE to NS when possible.
|
|
|
|
# See RFC 7816 "DNS Query Name Minimisation to Improve Privacy" for
|
|
# details.
|
|
|
|
qname-minimisation = true;
|
|
};
|
|
};
|
|
};
|
|
}
|