This article presents a comparison of the features, platform support, and packaging of many independent implementations of Domain Name System (DNS) name server software.
Each of these DNS servers is an independent implementation of the DNS protocols, capable of resolving DNS names for other computers, publishing the DNS names of computers, or both. Excluded from consideration are single-feature DNS tools (such as proxies, filters, and firewalls) and redistributions of servers listed here (many products repackage BIND, for instance, with proprietary user interfaces).
DNS servers are grouped into several categories of specialization of servicing domain name system queries. The two principal roles, which may be implemented either uniquely or combined in a given product are:
F5 Networks BIG-IP product line offers DNS as an authoritative or recursive server and adds additional security measures. Key advantage is to use the same application delivery controller to support DNS and application acceleration.[ citation needed ]
BIND is the de facto standard DNS server. It is a free software product and is distributed with most Unix and Linux platforms, where it is most often also referred to as named (name daemon). It is the most widely deployed DNS server. [1] Historically, BIND underwent three major revisions, each with significantly different architectures: BIND4, BIND8, and BIND9. BIND4 and BIND8 are now technically obsolete and not considered in this article. BIND9 is a ground-up rewrite of BIND featuring complete DNSSEC support in addition to other features and enhancements.
Internet Systems Consortium started development of a new version, BIND 10. Its first release was in April 2010, but ISC involvement concluded with the release of BIND 10 version 1.2 in April 2014. ISC cited a lack of resources to continue development of BIND 10, and they reaffirmed their commitment to BIND9. [2]
The BIND 10 codebase continues on as an open source project. It is not included in this comparison at this time.
CNR includes a commercial DNS server from Cisco Systems usually used in conjunction with the CNR DHCP (Dynamic Host Configuration Protocol) server. It supports high rates of dynamic update.
CoreDNS is the recommended DNS server [3] for Kubernetes and graduated from the CNCF in 2019. [4]
Dnsmasq is a lightweight, easy to configure DNS forwarder, designed to provide DNS (and optionally DHCP and TFTP) services to a small-scale network. It can serve the names of local machines which are not in the global DNS.
Dnsmasq accepts DNS queries and either answers them from a small, local cache or forwards them to a real, recursive DNS server. It loads the contents of /etc/hosts, so that local host names which do not appear in the global DNS can be resolved.
Djbdns is a collection of DNS applications, including tinydns, which was the second most used free software DNS server in 2004. [1] It was designed by Daniel J. Bernstein, author of qmail, with an emphasis on security considerations. In March 2009, Bernstein paid $1000 to the first person finding a security hole in djbdns. [5] The source code is not centrally maintained and was released into the public domain in 2007. There are multiple forks and more than a dozen patches to add additional features to djbdns.
gdnsd is a DNS server designed for geographic balancing. [6] gdnsd is the DNS server used by Wikipedia for its servers and networking. [7]
Knot DNS is a free software authoritative DNS server by CZ.NIC. Knot DNS aims to be a fast, resilient DNS server usable for infrastructure (root and TLD) and DNS hosting services. Knot DNS supports DNSSEC signing and among others hosts root zone (B, K, and L root name servers), several top-level domains.
Knot Resolver is an open source modern resolver implementation designed for scalability, resiliency, and flexibility. Its core architecture is tiny and efficient, and most of the rich features are implemented as optional modules, which limits attack surface and improves performance. Many resolver features are available out-of-the-box as modules while keeping core tiny and efficient. Modular architecture provides a state-machine like API for extensions, such as C and Lua modules. [8]
MaraDNS is a free software DNS server by Sam Trenholme that claims a good security history and ease of use. [9] [10] In order to change any DNS records, MaraDNS needs to be restarted. Like djbdns dnscache, the MaraDNS 2.0 stand-alone recursive resolver ("Deadwood") does not use threads. [11]
Windows DNS Server [12] component of Microsoft DNS. The same software can be configured to support authoritative, recursive and hybrid mode. The software is integrated with Active Directory which makes it the default DNS software for many enterprise networks that are based on Active Directory. It also allows creating zones by the standard DNS zone file. The software comes packaged as a role in Windows Server. The server software is shipped with a command line application dnscmd, [13] a DNS management GUI wizard, and a DNS PowerShell [14] package. In Windows Server 2012, the Windows DNS added support for DNSSEC, [15] with full-fledged online signing, with Dynamic DNS and NSEC3 support, along with RSASHA and ECDSA signing algorithms. It provides an inbuilt key storage provider and support for any third party CNG compliant key storage provider. User interface and PowerShell support for managing DNS and DNSSEC were improved as well. In the Windows Server 2016, the DNS Server supports DNS policies using which the admins can have more control over the name resolution process. [16]
NSD is a free software authoritative server provided by NLNet Labs. NSD is a test-bed server for DNSSEC; new DNSSEC protocol features are often prototyped using the NSD code base. NSD hosts several top-level domains, and operates three of the root nameservers.
Pdnsd is a caching DNS proxy server that stores cached DNS records on disk for long term retention. Pdnsd is designed to be highly adaptable to situations where net connectivity is slow, unreliable, unavailable, or highly dynamic, with limited capability of acting as an authoritative nameserver. It is licensed under the GPL. [17]
Posadis is a free software DNS server, written in C++, featuring Dynamic DNS update support.
PowerDNS is a free software DNS server with a variety of data storage back-ends and load balancing features. Authoritative and recursive server functions are implemented as separate applications, as well as a separate DNS caching proxy (dnsdist) which implements features such as DNS over HTTPS.
DNS Authority is commercial authoritative name server software from Secure64, the company that built Genuinely Secure DNS applications and operating system and completely automated the deployment of DNSSEC.
DNS Cache is scalable, highly secure recursive DNS software from Secure64 which provides built-in protection against high-volume denial of service attacks, including Pseudo Random Sub Domain (PRSD) attacks.
Simple DNS Plus is a commercial DNS server product that runs under Microsoft Windows with an emphasis on a simple-to-use GUI. Maintenance of the software appears to have slackened in recent years.
Technitium DNS Server [18] [19] is a free, opensource [20] (GPLv3), [21] cross platform, authoritative, caching and recursive DNS server software. It supports DNS-over-TLS, DNS-over-HTTPS, and DNS-over-QUIC encrypted DNS protocols. [22] It also supports DNSSEC signing and validation for RSA and ECDSA algorithms with both NSEC and NSEC3.
The DNS server also features blocking domain names using block lists [23] and also supports using HTTP or SOCKS5, for transport of DNS requests over Tor network. [24]
The DNS server supports running independently developed plugins that can be used to process and respond to DNS requests. It also provides a HTTP API that can be used by 3rd party software to manage the DNS server. [25]
Unbound is a validating, recursive and caching DNS server designed for high performance. It was released on May 20, 2008 (version 1.0.0) as free software licensed under the BSD license by NLnet Labs. It is installed as part of the base system in FreeBSD starting with version 10.0, and in NetBSD with version 8.0. A version is also available in OpenBSD version 5.6 and beyond. (Previous versions of FreeBSD shipped with BIND.)
YADIFA is a BSD-licensed, memory-efficient DNS server written in C. The acronym YADIFA stands for Yet Another DNS Implementation For All. It was created by EURid, which operates the .eu top-level domain. [26]
Some DNS features are relevant only to recursive servers, or to authoritative servers. As a result, a feature matrix such as the one in this article cannot by itself represent the effectiveness or maturity of a given implementation.
Another important qualifier is the server architecture. Some DNS servers provide support for both server roles in a single, "monolithic" program. Others are divided into smaller programs, each implementing a subsystem of the server. As in the classic Computer Science microkernel debate, the importance and utility of this distinction is hotly debated. The feature matrix in this article does not discuss whether DNS features are provided in a single program or several, so long as those features are provided with the base server package and not with third-party add-on software.
Server | Authoritative | Recursive | Recursion ACL | Secondary mode | Caching | DNSSEC | TSIG | IPv6 | Wildcard | Free Software | Interface | split horizon | DNS over HTTPS | DNS over QUIC |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
BIG-IP DNS | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | API, command line | Yes | Yes | No |
BIND | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes (since 9.x) | Yes (since 4.x) | Yes | Web [Note 1] , command line | Yes | Yes | No [Note 2] |
PowerDNS | Yes | Yes | Yes | Yes [Note 3] | Yes | Yes (since 3.0) [Note 4] | Yes (since 3.0) | Yes [Note 3] | Yes | Yes | REST, Web [Note 5] , command line | Partial [Note 6] | Yes (in dnsdist) | No [Note 7] |
CoreDNS | Yes | Partial via proxying | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | API | Yes | Yes | No |
djbdns | Yes | Yes | Yes | Yes [Note 8] | Yes | Partial [Note 9] | No | Partial via generic records. | Partial [Note 10] | Yes | command line and web (VegaDNS & NicTool) | Yes [Note 11] | No | No |
dbndns | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Partial | Yes | command line and web | Yes | No | No |
pdnsd | Partial | Yes | Partial | Partial | Yes | No [27] | Partial | Yes | Yes | Yes | command line, pdnsd-ctl program | Partial | No | No |
MaraDNS | Yes | Yes | Yes | Partial [Note 12] | Yes | No | No | Partial | Yes | Yes | command line | No | No | No |
Posadis | Yes | Yes | Yes | Yes | Yes | No | No | Yes | Yes | Yes | command line, API | No | No | No |
Unbound | Partial | Yes | Yes | — | Yes | Yes | No | Yes | Yes | Yes | command line, API | Yes | Yes | Partial |
Dnsmasq | Partial [Note 13] | No | No | No | Yes | Yes (since 2.69) [Note 14] | No | Yes | Yes | Yes | command line | Partial [Note 15] | No | |
NSD | Yes | No | — | Yes | — | Yes | Yes | Yes | Yes | Yes | command line | No | No | |
Knot DNS | Yes | No | — | Yes | — | Yes | Yes | Yes | Yes | Yes | command line | Yes [Note 16] | Yes [Note 17] | |
Knot Resolver | No | Yes | Yes | — | Yes | Yes | No [Note 18] | Yes | No | Yes | cli / socket | No [Note 19] | Yes | No |
YADIFA | Yes | No | — | Yes | — | Yes | Yes | Yes | Yes | Yes | command line | No | No | No |
Microsoft DNS | Yes | Yes | Yes [Note 20] | Yes | Yes | Yes [Note 21] | Yes [Note 22] | Yes [Note 23] | Yes | No | GUI, command line, API [Note 24] , WMI [Note 25] , RPC [Note 26] | Yes [Note 20] | No | |
Simple DNS Plus | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No | GUI, Web, command line | Yes [Note 27] | Yes | No |
Secure64 DNS Authority | Yes | No | No | Yes | No | Yes | Yes | Yes | Yes | No | Command Line or Web GUI | Yes | No | |
Secure64 DNS Cache | No | Yes | Yes | No | Yes | Yes | No | Yes | Yes | No | Command Line or Web GUI | Yes | No | |
Technitium DNS Server | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Web GUI or HTTP API | Yes | Yes | Yes |
Server | Authoritative | Recursive | Recursion ACL | Secondary mode | Caching | DNSSEC | TSIG | IPv6 | Wildcard | Free Software | Interface | split horizon | DNS over HTTPS | DNS over QUIC |
In this overview of operating system support for the discussed DNS server, the following terms indicate the level of support:
This compilation is not exhaustive, but rather reflects the most common platforms today.
Server | BSD | Solaris | Linux | Mac OS X | Windows |
---|---|---|---|---|---|
BIND | Yes | Yes | Yes | Yes | Partial [Note 1] [Note 2] |
Microsoft DNS | No | No | No | No | Included [Note 3] |
djbdns | Yes | Yes | Yes | Yes | No |
Dnsmasq | Yes | Yes | Yes | Yes | No |
Simple DNS Plus | No | No | No | No | Yes |
NSD | Yes | Yes | Yes | Yes | No |
Knot DNS | Yes | No | Yes | Yes | No |
Knot Resolver | Yes | ? | Yes | Yes | ? |
PowerDNS | Yes | Yes | Yes | Beta | No |
MaraDNS | Yes | Yes | Yes | Yes | Partial |
pdnsd | Yes | Partial [28] | Yes | Yes | No |
Posadis | Yes | Yes | Yes | Yes | Yes |
Unbound | Yes | Yes | Yes | Yes | Yes |
Cisco Network Registrar | No | Yes | Yes | No | Yes |
YADIFA | Yes | Yes | Yes | Yes | No |
Secure64 DNS Authority | No | No | Yes | No | No |
Secure64 DNS Cache | No | No | Yes | No | No |
Technitium DNS Server | No | No | Yes | Yes | Yes |
Server | Creator | Cost (USD) | Public source code | Software license |
---|---|---|---|---|
BIND | Internet Systems Consortium | Free | Yes | BSD, MPL 2.0 for 9.11+ |
Microsoft DNS | Microsoft | Included with Windows Server | No | Clickwrap license |
djbdns | Daniel J. Bernstein | Free | Yes | Public domain |
Dnsmasq | Simon Kelley | Free | Yes | GPL |
Simple DNS Plus | JH Software | $79 – $379 | No | Clickwrap license |
NSD | NLnet Labs | Free | Yes | BSD variant |
Knot DNS | CZ.NIC | Free | Yes | GPL |
Knot Resolver | CZ.NIC | Free | Yes | GPL |
PowerDNS | PowerDNS.COM BV / Bert Hubert | Free | Yes | GPL |
MaraDNS | Sam Trenholme | Free | Yes | BSD variant |
pdnsd | Thomas Moestl and Paul Rombouts | Free | Yes | GPL |
Posadis | Meilof Veeningen | Free | Yes | GPL |
Unbound | NLnet Labs | Free | Yes | BSD |
YADIFA | EURid | Free | Yes | BSD |
Secure64 DNS Authority | Secure64 | Unpublished price | No | Clickwrap license |
Secure64 DNS Cache | Secure64 | Unpublished price | No | Clickwrap license |
Technitium DNS Server | Technitium | Free | Yes | GPL |
The Domain Name System (DNS) is a hierarchical and distributed name service that provides a naming system for computers, services, and other resources on the Internet or other Internet Protocol (IP) networks. It associates various information with domain names assigned to each of the associated entities. Most prominently, it translates readily memorized domain names to the numerical IP addresses needed for locating and identifying computer services and devices with the underlying network protocols. The Domain Name System has been an essential component of the functionality of the Internet since 1985.
BIND is a suite of software for interacting with the Domain Name System (DNS). Its most prominent component, named, performs both of the main DNS server roles, acting as an authoritative name server for DNS zones and as a recursive resolver in the network. As of 2015, it is the most widely used domain name server software, and is the de facto standard on Unix-like operating systems. Also contained in the suite are various administration tools such as nsupdate and dig, and a DNS resolver interface library.
The djbdns software package is a DNS implementation. It was created by Daniel J. Bernstein in response to his frustrations with repeated security holes in the widely used BIND DNS software. As a challenge, Bernstein offered a $1000 prize for the first person to find a security hole in djbdns, which was awarded in March 2009 to Matthew Dempsky.
A name server is a computer application that implements a network service for providing responses to queries against a directory service. It translates an often humanly meaningful, text-based identifier to a system-internal, often numeric identification or addressing component. This service is performed by the server in response to a service protocol request.
A root name server is a name server for the root zone of the Domain Name System (DNS) of the Internet. It directly answers requests for records in the root zone and answers other requests by returning a list of the authoritative name servers for the appropriate top-level domain (TLD). The root name servers are a critical part of the Internet infrastructure because they are the first step in resolving human-readable host names into IP addresses that are used in communication between Internet hosts.
The DNS root zone is the top-level DNS zone in the hierarchical namespace of the Domain Name System (DNS) of the Internet.
Zero-configuration networking (zeroconf) is a set of technologies that automatically creates a usable computer network based on the Internet Protocol Suite (TCP/IP) when computers or network peripherals are interconnected. It does not require manual operator intervention or special configuration servers. Without zeroconf, a network administrator must set up network services, such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS), or configure each computer's network settings manually.
The Domain Name System Security Extensions (DNSSEC) are a suite of extension specifications by the Internet Engineering Task Force (IETF) for securing data exchanged in the Domain Name System (DNS) in Internet Protocol (IP) networks. The protocol provides cryptographic authentication of data, authenticated denial of existence, and data integrity, but not availability or confidentiality.
Microsoft DNS is the name given to the implementation of domain name system services provided in Microsoft Windows operating systems.
A DNS zone is a specific portion of the DNS namespace in the Domain Name System (DNS), which a specific organization or administrator manages. A DNS zone is an administrative space allowing more granular control of the DNS components, such as authoritative nameserver. The DNS is broken up into different zones, distinctly managed areas in the DNS namespace. DNS zones are not necessarily physically separated from one another; however, a DNS zone can contain multiple subdomains, and multiple zones can exist on the same server.
DNS spoofing, also referred to as DNS cache poisoning, is a form of computer security hacking in which corrupt Domain Name System data is introduced into the DNS resolver's cache, causing the name server to return an incorrect result record, e.g. an IP address. This results in traffic being diverted to any computer that the attacker chooses.
dnsmasq is free software providing Domain Name System (DNS) caching, a Dynamic Host Configuration Protocol (DHCP) server, router advertisement and network boot features, intended for small computer networks.
DNS management software is computer software that controls Domain Name System (DNS) server clusters. DNS data is typically deployed on multiple physical servers. The main purposes of DNS management software are:
Unbound is a validating, recursive, and caching DNS resolver product from NLnet Labs. It is distributed free of charge in open-source form under the BSD license.
MaraDNS is an open-source Domain Name System (DNS) implementation, which acts as either a caching, recursive, or authoritative nameserver.
DNSCurve is a proposed secure protocol for the Domain Name System (DNS), designed by Daniel J. Bernstein. It encrypts and authenticates DNS packets between resolvers and authoritative servers.
Google Public DNS is a Domain Name System (DNS) service offered to Internet users worldwide by Google. It functions as a recursive name server. Google Public DNS was announced on December 3, 2009, in an effort described as "making the web faster and more secure." As of 2018, it is the largest public DNS service in the world, handling over a trillion queries per day. Google Public DNS is not related to Google Cloud DNS, which is a DNS hosting service.
Cisco Prime Network Registrar (CNR) is a Cisco software product that includes components for Domain Name System (DNS) services, Dynamic Host Configuration Protocol services, Trivial File Transfer Protocol (TFTP) services, and Simple Network Management Protocol functions. CNR provides a regional and local management structure and is supported on server hardware and software based on 32-bit and 64-bit architectures. This product is now called Cisco Prime Network Registrar.
DNS over TLS (DoT) is a network security protocol for encrypting and wrapping Domain Name System (DNS) queries and answers via the Transport Layer Security (TLS) protocol. The goal of the method is to increase user privacy and security by preventing eavesdropping and manipulation of DNS data via man-in-the-middle attacks. The well-known port number for DoT is 853.