Authoritative DNS

Services

Self-hosted

I use and recommend Knot for self-hosted authoritative DNS.

Configuration examples

Server IP Address
master (LAN/VPN) 10.253.43.10
master (WAN) 192.0.2.123, 2001:db8::cafe:53
slave (LAN/VPN) 10.253.43.15
slave (WAN) 198.51.100.53, 2001:db8::beef:53

Master

/etc/knot/knot.conf

# See knot.conf(5) or refer to the server documentation.

server:
    rundir: "/run/knot"
    user: knot:knot
    listen: [ 192.0.2.123@53, 2001:db8::cafe:53@53, 10.253.43.10@53 ]
    identity: ""
    version: ""
    nsid: ""

log:
  - target: syslog
    any: info

remote:
  - id: slave
    address: 10.253.43.15@53

acl:
  - id: acl_slave
    address: 10.253.43.15
    action: transfer

zone:
  - domain: example.com
    storage: /var/lib/knot/zones/
    file: example.com.zone
    notify: slave
    acl: acl_slave

Zone file resides in /var/lib/knot/zones/example.com.zone

Slave

cat /etc/knot/knot.conf

# See knot.conf(5) or refer to the server documentation.

server:
    rundir: "/run/knot"
    user: knot:knot
    listen: [ 198.51.100.53@53, 2001:db8::beef:53@53, 10.253.43.15@53 ]
    identity: ""
    version: ""
    nsid: ""

log:
  - target: syslog
    any: info

remote:
  - id: master
    address: 10.253.43.10@53

acl:
  - id: acl_master
    address: 10.253.43.10
    action: notify

template:
  - id: default
    storage: "/var/lib/knot"
    file: "%s.zone"

zone:
  - domain: example.com
    master: master
    acl: acl_master

Read more