Setup Unbound DNS cache & resolver on Debian Buster

sudo apt install unbound

sudo tee -a /etc/unbound/unbound.conf << EOF > /dev/null

server:
interface: 127.0.0.1
interface: ::1
access-control: 127.0.0.0/8 allow
access-control: ::1/128 allow

# enable remote-control (useful when utilising monitoring tools such as netdata)
remote-control:
    control-enable: yes
EOF
sudo systemctl restart unbound
sudo apt install resolvconf
sudo nano /etc/network/interfaces

change nameservers to 127.0.0.1 for IPv4 & ::1 for IPv6

sudo resolvconf -u

check:

sudo apt install dnsutils
dig pieterhollander.nl
nslookup pieterhollander.nl # Server: 127.0.0.1

I was also using this unbound instance to provide a DNS resolver to VMs attached to a bridge interface. Unfortunately, the interface wouldn’t be up before unbound would try to start. This was resolved by adding a ExecStartPre directive to Unbound’s Systemd service file:

sudo systemctl edit unbound

Add the following lines to the ### Anything between here and the comment below will become the new contents of the file section.

[Service]
ExecStartPre=/usr/lib/systemd/systemd-networkd-wait-online --interface=br0 --timeout=120