Unbound is a validating, recursive, caching DNS resolver. It is designed to be fast and lean and incorporates modern features based on open standards.
DNS servers optionally log queries on demand by formatting a message and storing that in a file, sending it through syslog, etc. This is an I/O-intensive operation which can dramatically slow down busy servers, and the biggest issue is we get the query but not the associated response.
Full caching DNS resolver implementation
The Knot Resolver is a caching full resolver implementation, including both a resolver library and a daemon.
CoreDNS is a DNS server that chains middleware. Each middleware implements some DNS feature, like service discovery.
Service Discovery
CoreDNS integrates with Kubernetes via the Kubernetes middleware or directly with etcd with the etcd middleware.
Middlewares
Currently CoreDNS supports (among others) the following middlewares:
chaos: respond to CH class queries
dnssec: on-the-fly DNSSEC signing of records
etcd: SkyDNS replacement
file: serve DNS from a set of files
health: simple health check
kubernetes: use CoreDNS as a KubeDNS replacement
loadbalance: shuffle A and AAAA records
metrics: Prometheus metrics
pprof: Go profiling
proxy: forward queries to an upstream (recursive) server
rewrite: rewrite incoming queries
secondary: be a secondary nameserver and retrieve zones from a primary
"Classic" DNS fully supported
Serve DNS data from a set of files, DNSSEC signed or not.
Or just enable on-the-fly DNSSEC signing.