Недавно я настроил Unbound для кэширования DNS вместе с DNScrypt на Linux Mint 18.1. Это работает, но я заметил, что страницы кэшируются только на короткое время:
Это предполагаемое поведение, или мне нужно установить что-то другое для кеширования страниц на более длительное время? Вот моя несвязанная конфигурация (/etc/unbound/unbound.conf): #
Unbound configuration file for Debian.
#
# See the unbound.conf(5) man page.
#
# See /usr/share/doc/unbound/examples/unbound.conf for a commented
# reference config file.age
#
# The following line includes additional configuration files from the
# /etc/unbound/unbound.conf.d directory.
include: "/etc/unbound/unbound.conf.d/*.conf"
server:
verbosity: 1
num-threads: 4
outgoing-range: 8192
so-rcvbuf: 4m
so-sndbuf: 4m
so-reuseport: yes
msg-cache-size: 50m
msg-cache-slabs: 16
num-queries-per-thread: 4096
rrset-cache-size: 100m
rrset-cache-slabs: 16
infra-cache-slabs: 16
do-ip4: yes
do-ip6: no
do-udp: yes
do-tcp: yes
do-daemonize: yes
hide-identity: yes
hide-version: yes
harden-short-bufsize: yes
harden-large-queries: yes
harden-glue: yes
harden-dnssec-stripped: yes
harden-below-nxdomain: yes
harden-referral-path: yes
logfile: "/etc/unbound/unbound.log"
use-caps-for-id: yes
do-not-query-localhost: no
prefetch: no
forward-zone:
name: "."
forward-addr: 127.0.0.1@40
Несвязанный будет (или, по крайней мере, должен) кэшировать результат на время, указанное в TTL для записи, которую вы запрашиваете.
Это именно то, что я наблюдайте за системой, которая работает без привязки. Первоначальный запрос занимает 14 мс, последующие запросы - 0 мс, а по истечении срока действия следующего запроса - 14 мс.
Первоначальный запрос, который показывает значение TTL 300 секунд и занимает 18 мс.
;; ANSWER SECTION:
google.com. 300 IN A 172.217.20.46
;; Query time: 18 msec
;; SERVER: 10.34.20.1#53(10.34.20.1)
;; WHEN: Sun Feb 12 20:39:30 2017
;; MSG SIZE rcvd: 44
Последующие запросы - TTL отсчитывается и занимает 0 мс
;; ANSWER SECTION:
google.com. 196 IN A 172.217.20.46
;; Query time: 0 msec
;; SERVER: 10.34.20.1#53(10.34.20.1)
;; WHEN: Sun Feb 12 20:41:14 2017
;; MSG SIZE rcvd: 44
Срок действия TTL истек, поэтому выполняется еще один восходящий запрос 23 мс
;; ANSWER SECTION:
google.com. 300 IN A 172.217.20.46
;; Query time: 23 msec
;; SERVER: 10.34.20.1#53(10.34.20.1)
;; WHEN: Sun Feb 12 20:44:37 2017
;; MSG SIZE rcvd: 44
Я очень опаздываю на вечеринку, но, насколько я понимаю, если вы хотите иметь "почти постоянное кэширование", вам следует включить опцию prefetch
.
prefetch: <yes or no>
If yes, message cache elements are prefetched before they expire
to keep the cache up to date. Default is no. Turning it on
gives about 10 percent more traffic and load on the machine, but
popular items do not expire from the cache.