Infrastructure

DNS Server Software

A guide to the major DNS server implementations — authoritative servers, recursive resolvers, and specialized tools for every deployment scenario.

Packages

Major DNS Software Packages

From full-stack servers to specialized authoritative and recursive implementations

BIND 9Authoritative + Recursive
Internet Systems Consortium (ISC)

The most widely deployed DNS software on the internet. A full-featured authoritative and recursive server that has served as the reference implementation of the DNS protocol for decades.

AuthoritativeRecursiveOpen SourceDNSSEC
Learn More →
UnboundRecursive / Validating Resolver
NLnet Labs

A high-performance validating, recursive, and caching DNS resolver. The preferred choice for secure resolver deployments — ships as the default resolver in many Linux distributions and BSD systems.

RecursiveDNSSEC ValidationOpen SourceHigh Performance
Learn More →
PowerDNSAuthoritative + Recursor (separate)
Open-Xchange (formerly PowerDNS.COM)

A modular DNS platform with separate Authoritative Server and Recursor products. Known for its database backends (MySQL, PostgreSQL, SQLite) and REST API — popular with ISPs and hosting providers.

AuthoritativeRecursiveDatabase BackendREST API
Learn More →
CoreDNSRecursive / Authoritative / Forwarder
CNCF (Cloud Native Computing Foundation)

A fast, flexible DNS server written in Go with a plugin-based architecture. The default DNS server in Kubernetes — each plugin handles one DNS function, making it highly composable for cloud-native environments.

KubernetesPlugin ArchitectureGoCloud Native
Learn More →
dnsmasqForwarder / DHCP / Lightweight Resolver
Simon Kelley (Open Source)

A lightweight DNS forwarder and DHCP server designed for small networks. Ships on home routers (OpenWrt), Linux desktops (NetworkManager), and embedded systems. Not suitable for high-volume production resolvers.

ForwarderDHCPEmbeddedLightweight
Learn More →
Knot DNSAuthoritative Only
CZ.NIC

A high-performance authoritative-only DNS server built by the .cz TLD operator. Designed for large-scale TLD and enterprise deployments — features fast zone loading, DNSSEC automation, and zone signing.

AuthoritativeTLD ScaleDNSSECHigh Performance
Learn More →
NSDAuthoritative Only
NLnet Labs

Name Server Daemon — a simple, reliable authoritative-only DNS server focused on security and correctness. Used by root servers and TLD operators. Pairs well with Unbound (resolver) for a split authoritative/recursive architecture.

AuthoritativeSecurity FocusedOpen SourceRoot Server
Learn More →
Knot ResolverRecursive / Validating Resolver
CZ.NIC

A modern recursive resolver with a modular Lua-based scripting engine. Supports DNS-over-HTTPS, DNS-over-TLS, DNSSEC validation, and response policy zones. Used by ISPs and privacy-focused DNS services.

RecursiveDoHDoTLua Scripting
Learn More →
Architecture

Authoritative vs. Recursive: Choose the Right Tool

Authoritative DNS Server

An authoritative server holds the zone files for your domains and answers definitively for records in those zones. It does not resolve third-party domains. Use an authoritative server when you are hosting your own DNS zones — for your domain names, internal infrastructure, or as a secondary for another provider. Best choices: BIND 9, PowerDNS Authoritative, Knot DNS, NSD.

Use when: Hosting your own domain's DNS, running a TLD or enterprise DNS infrastructure
Recursive Resolver

A recursive resolver answers queries from clients by walking the DNS hierarchy — querying root, TLD, and authoritative servers on their behalf. It caches responses and (optionally) validates DNSSEC. Use a recursive resolver when you want to provide DNS service to clients on your network. Best choices: Unbound, PowerDNS Recursor, Knot Resolver.

Use when: Internal network resolver, ISP customer resolver, privacy-focused public resolver
Comparison

At a Glance

PackageRoleVendorPlatformLanguageDNSSECConfig Complexity
BIND 9Auth + RecursiveISCAllCYesComplex
UnboundRecursive onlyNLnet LabsLinux/BSD/MacCYesModerate
PowerDNS AuthAuth onlyOpen-XchangeAllC++YesModerate
PowerDNS RecurRecursive onlyOpen-XchangeAllC++YesModerate
CoreDNSFlexibleCNCFAll/K8sGoPluginLow
dnsmasqForwarder/DHCPS. KelleyLinux/EmbeddedCNoLow
Knot DNSAuth onlyCZ.NICLinux/BSDCYesModerate
NSDAuth onlyNLnet LabsLinux/BSDCNoLow
Knot ResolverRecursive onlyCZ.NICLinuxC/LuaYesModerate
Best Practice

Split Authoritative / Recursive Architecture

Running a single server as both authoritative and recursive is a common beginner configuration — and a security risk. An authoritative server that also resolves queries can be used as an open resolver for amplification attacks, and recursive functionality adds attack surface to your authoritative infrastructure.

The recommended pattern is to separate these roles onto different servers or at least different processes. Your authoritative server answers only for your zones (no recursion). Your recursive resolvers answer only for your clients (no authoritative zones).

  • Authoritative: Knot DNS or NSD — minimal attack surface, no recursion
  • Recursive: Unbound — DNSSEC validating, configurable RPZ, per-client rate limiting
  • Disable recursion on BIND 9 authoritative servers: recursion no;
  • Restrict recursive resolvers to authorized client IPs only
; BIND 9 — authoritative only ; named.conf options { recursion no; allow-query { any; }; // answer for your zones allow-recursion { none; }; // no recursion for anyone }; zone "example.com" IN { type master; file "/etc/bind/zones/example.com.db"; }; # Unbound — recursive resolver # unbound.conf server: access-control: 192.0.2.0/24 allow # your clients access-control: 0.0.0.0/0 refuse # everyone else do-not-query-localhost: no val-permissive-mode: no # strict DNSSEC validation