I've blatantly copied tedu@'s subject line from
http://www.tedunangst.com/flak/post/the-day-some-of-the-DNS-stopped
since he's a developer and I believe I've run into the same issue.
Almost every time the Internet connection goes down at home, unbound
1.5.7 on my 5.9-release router partly goes down with it and continues
to do so even when the Internet comes back up. After the Internet is
back up, unbound is doing the following even an hour afterwards and
all local and non-local queries to the names in dump_requestlist
simply timeout:
$ unbound-control dump_requestlist
thread #0
# type cl name seconds module status
0 A IN 0.asia.pool.ntp.org. 3946.913123 iterator wants (empty_list)
1 A IN au.v4.download.windowsupdate.com. 5064.308753 iterator
wants (empty_list)
2 A IN api.branch.io. 2327.015803 iterator wants (empty_list)
3 A IN app.adjust.com. 2326.984225 iterator wants (empty_list)
4 A IN fe2.update.microsoft.com. 5170.824266 iterator wants (empty_list)
5 A IN v10.vortex-win.data.microsoft.com. 5064.296510 iterator
wants (empty_list)
6 A IN www.apple.com. 5609.053946 iterator wants (empty_list)
7 A IN chat.us.freenode.net. 3386.286994 iterator wants (empty_list)
8 A IN apple.com. 5608.955094 iterator wants (empty_list)
9 A IN usapi.hik-online.com. 2463.221212 iterator wants (empty_list)
10 A IN guzzoni.apple.com. 5612.065951 iterator wants (empty_list)
11 A IN time-ios.apple.com. 5612.013224 iterator wants (empty_list)
12 A IN alt1-mtalk.google.com. 5460.098682 iterator wants (empty_list)
13 A IN init-p01st.push.apple.com. 2461.748309 iterator wants (empty_list)
14 A IN safebrowsing.clients.google.com. 5612.854753 iterator
wants (empty_list)
15 A IN settings-win.data.microsoft.com. 5609.266007 iterator
wants (empty_list)
16 A IN media-cache-ak0.pinimg.com. 2317.233661 iterator wants (empty_list)
17 A IN p06-ckdatabase-current.edge.icloud.apple-dns.net.
2768.238111 iterator wants (empty_list)
18 AAAA IN 0.asia.pool.ntp.org. 3976.946286 iterator wants (empty_list)
19 AAAA IN 0.africa.pool.ntp.org. 3916.874747 iterator wants (empty_list)
20 AAAA IN connectivitycheck.gstatic.com. 5422.074636 iterator wants
(empty_list)
$ unbound-control dump_infra
67.212.140.4 winisp.net. expired rto 120000
198.41.0.4 . expired rto 120000
198.97.190.53 . expired rto 120000
192.58.128.30 . expired rto 120000
192.228.79.201 . expired rto 120000
75.75.76.76 . ttl 140 ping 10 var 39 rtt 166 rto 166 tA 0 tAAAA 0
tother 0 ednsknown 1 edns 0 delay 0 lame dnssec 0 rec 0 A 0 other 0
199.7.83.42 . expired rto 120000
204.236.132.56 searchfleet.com. expired rto 120000
75.75.75.75 . ttl 136 ping 9 var 15 rtt 69 rto 69 tA 0 tAAAA 0 tother
0 ednsknown 1 edns 0 delay 0 lame dnssec 0 rec 0 A 0 other 0
192.36.148.17 . expired rto 120000
202.12.27.33 . expired rto 120000
unbound-control flush_requestlist resolves the problem, but I'd like
this to be resolved without outside intervention and the expired
entries in dump_infra still remain afterward. Any unbound experts
care to chime in? I figured I'd try here first since unbound is in
base, but I might send this to the unbound-users mailing lists as
well. My unbound.conf is below with some personal information
removed.
remote-control:
control-enable: yes
# control-use-cert: no
server-key-file: "/var/unbound/etc/unbound_server.key"
server-cert-file: "/var/unbound/etc/unbound_server.pem"
control-key-file: "/var/unbound/etc/unbound_control.key"
control-cert-file: "/var/unbound/etc/unbound_control.pem"
server:
extended-statistics: yes
num-threads: 2
msg-cache-size: 8m # default is 4m
# Should be double msg-cache-size
rrset-cache-size: 16m
# This was increased from 1024 since the recommendation is to
have the outgoing-range be twice
# this value and this value is 1024 by default
num-queries-per-thread: 2048
interface: 0.0.0.0
interface: ::1
# do-ip6: no
# Reduce TTL for hosts. Hopefully this will resolve DNS issues
when connectivity issues occur.
# Default is 900 seconds.
infra-host-ttl: 300
access-control: 0.0.0.0/0 allow
access-control: ::0/0 refuse
access-control: ::1 allow
# root-hints: "/var/unbound/etc/root.hints"
hide-identity: yes
hide-version: yes
prefetch: yes
forward-zone:
name: "." # use for ALL queries
forward-addr: 75.75.75.75 # Comcast
forward-addr: 75.75.76.76 # Comcast
forward-first: yes # try direct if forwarder fails