Puur snelheid, ik ben echt een zeurkous over DNS. Het mag niet vertraagd inladen, een site moet instant op het scherm verschijnen van boven tot onder. Ik had/heb nog een betaald controlD abonnement, omdat ik hun merk wel kan waarderen. Ik merkte dat het internet daardoor net niet zo snel voelt als met KPN's eigen DNS servers, de DNS farm van KPN is ook wel uitzonderlijk snel en betrouwbaar te noemen.
Los van de ping naar DNS servers heb je ook nog een revolvetijd, je ziet hieronder dat de tijdduur voor een DNS request 9/10ms. (IPs afgeschermd ivm betaald abonnement). Dit is dus niet de ping tijd.
Dit is wel de ping tijd van controld, lage ping maar de resolving zelf is behoorlijk traag, de traagste in mijn smokeping.
Dan weer terug naar de échte resolve screenshots. Quad9 is echt een supersnelle resolver, ik merk direct het verschil in mijn browser. Het verschil is klein maar ik merk het wel, in feite 50% sneller..Je ziet dat de tijd gehalveerd is van 10 naar 5 ms. Jammer is dat ze zoveel DDOS attacks ervaren dat hun hele dienstverlening soms een uur lang hapert.
Ter naslag nog even KPN
Toen kwam ik bij unbound, zelf gecompiled zodat ik 1.22 draai de laatste versie. Hier merk ik als snelheidsfreak vaak het negatieve snelheidsverschil als ik een domain als eerste keer opvraag. Waarbij hij de hele chain op moet vragen bij root. Hieronder mijn unbound config, aanbevelingen welkom volgens mij staan alle performance tweaks ingeschakeld.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
| # Core Server Configuration
server:
# Logging Settings
log-time-ascii: yes
log-time-iso: yes
chroot: ""
logfile: /var/log/unbound.log
verbosity: 0
statistics-interval: 0
extended-statistics: yes
statistics-cumulative: yes
# Server Resource Settings
num-threads: 4
num-queries-per-thread: 4096
so-rcvbuf: 4m
so-sndbuf: 4m
so-reuseport: yes
# Network Interface Configuration
interface: 0.0.0.0
interface: ::
port: 5335
# Protocol Support
prefer-ip6: yes
incoming-num-tcp: 1024
outgoing-range: 8192
edns-buffer-size: 1232
max-udp-size: 1232
# Cache Configuration
rrset-cache-size: 256m
msg-cache-size: 128m
cache-max-ttl: 86400
cache-max-negative-ttl: 60
# Cache Performance Tuning
prefetch: yes
prefetch-key: yes
serve-expired: yes
serve-expired-ttl: 86400
serve-expired-ttl-reset: yes
serve-expired-reply-ttl: 30
rrset-roundrobin: yes
# Cache Slabs (Concurrency)
msg-cache-slabs: 4
key-cache-slabs: 4
rrset-cache-slabs: 4
infra-cache-slabs: 4
# Privacy and Security
use-caps-for-id: no
# DNSSEC Configuration
harden-algo-downgrade: no
harden-referral-path: no
# Query Privacy
# Infrastructure Cache Settings
infra-cache-numhosts: 10000
infra-host-ttl: 900
# TLS Configuration
tls-cert-bundle: "/etc/ssl/certs/ca-certificates.crt"
# Root Server Settings
root-hints: "/var/lib/unbound/root.hints"
target-fetch-policy: "3 2 1 0 0"
unwanted-reply-threshold: 10000000 |
DjoeC schreef op zaterdag 19 april 2025 @ 17:31:
[...]
Maar da's geen echte PREfetch.
Unbound prefetch zegt: als de TTL binnen 10% van expiring is wordt de cache ververst. Waarschijnlijk moet je dan wel het domein in die periode benaderen (ik prefetch ~ 10% van de unbound cache per dag volgens de statistieken).
Bij mij geeft unbound aan dat 50-70% geprefetched is, of dat helemaal betrouwbaar is weet ik niet want ik draai heel veel monitoring tools voor het netwerk naar het internet smokeping roept vele domeinen aan elke 5 minuten.
Airw0lf schreef op zaterdag 19 april 2025 @ 17:26:
In de
pihole handleiding staat het volgende:
If a DNS name exists in the cache, but its time-to-live (TTL) has expired only recently, the data will be used anyway (a refreshing from upstream is triggered).
In de
unbound handleiding staat:
# Perform prefetching of close to expired message cache entries
# This only applies to domains that have been frequently queried
prefetch: yes
Lijkt mij hetzelfde?
In de AdGuard uitleg staat het volgende:
Optimistic caching
Make AdGuard Home respond from the cache even when the entries are expired and also try to refresh them.
Dat lijkt inderdaad 1:1 met PiHole te matchen

Dan is de enige tool die échte prefetch uitvoert als de TTL verloopt -> unbound. Zowel Pi-Hole als AdGuard serveren stale records en vernieuwen op de achtergrond, en dat is sinds Pi-Hole v6 ook mogelijk.