DNS server software

This survey of DNS servers is organized into sections for each major type of operating system for which DNS server software is available. In addition to servers listed in this document, there are some large-scale IP address management systems available which include a DNS server as a component of the system; these are covered in the Tools section.

Functional DNS servers are available for Unix (including Linux, FreeBSD and MacOS X), Windows XP/2000/NT/98/95, MacOS, VMS, and OS/2 (see my definitions). The standard implementation of a DNS server is BIND on Unix, although BIND has also been ported to other platforms. Some of the other options discussed here may also be viable, but an operating system designed for robust servers is likely to be a more stable platform for a name server than an operating system designed for the desktop.

Software Index

The reference DNS server software is BIND. Most production Internet name servers are based on BIND running on some form of Unix (including Linux and MacOS X). Microsoft's DNS server for the server-oriented versions of Windows is popular in Microsoft environments. Other significant options are the various ports of BIND to Windows, and several non-BIND servers for Unix, MacOS and VMS.

DNS servers exist for the following systems.
Unix and Mac OS X
Windows
MacOS
NetWare, OS/2, VMS, and others

About Internet name servers

For a name server to be fully usable on the Internet, it should support either zone transfers from other servers, or other servers transferring zones from it. Since any zone should be available from at least two separate name servers, some mechanism is required to keep multiple copies of the zone file consistent. Without either inward or outward zone transfers, some other mechanism then needs to be set up for allowing multiple servers to have a copy of the data (for instance, using SSH or FTP). If some form of zone transfer mechanism is not provided, a server can only be used for caching, to provide an enhanced service to local name server clients (called resolvers).

A server will usually need to support recursive queries from stub resolvers, which are the most common types of DNS client software. In addition, a useful server must support at least the common resource record types A, MX, PTR, SOA, CNAME, NS. For general use, a name server should support caching.

This is realy a minimal list of absolutely required features; modern DNS servers should ideally support DNS features beyond these, such as dynamic update, incremental zone transfers, DNSSEC, IPv6 operation and more.

By these minimal criteria, there are currently functional name servers available for Unix (including Linux), Windows, Mac OS X and MacOS (Classic), VMS, and OS/2. The current standard implementation of a DNS server is BIND on Unix (including Linux and MacOS X), although BIND has also been ported to VMS, Windows, and OS/2. Some of the other platforms discussed here may also be viable, but bear in mind that an operating system designed for robust servers is likely to prove a more stable platform for a name server than an operating system designed for the desktop.

Background on name servers

The DNS database is partitioned into sets of related records that are replicated on multiple servers; each such set of records is called a zone. Name servers transfer zones from each other to maintain the consistency of information in the DNS.

Zone transfers from other servers are `inward transfers', and a server performing inward transfers is referred to as a slave server for these zones. Zone transfers to other servers are `outward transfers'. The unique server which performs only outward transfers and no inward transfers for a specific zone, is known as the master server for that zone. It is quite common for a server to perform both inward transfers and outward transfers for the same zone, for instance when the master server is only intermittently connected to the Internet and is not announced as a name server for the zone using NS records (this is called a `hidden master' configuration). Note that the master server for a zone is where changes to the DNS records need to be made; changes made to a zone on a slave server for that zone, will be overwritten during the next inward transfer.

Most name servers are master for some zones and slave for other zones. A server is authoritative for the zones that it is either a master or a slave for. A typical name server can be authoritative for hundreds of zones, and large servers are authoritative for millions of zones.

A server will usually need to support recursive queries from stub resolvers, which are the most common types of DNS client software (a stub resolver hands off recursive queries to a server to resolve, instead of performing the full iterative resolution process itself). Some servers are configured to forward most queries on to another name server, much like a stub resolver does. Name servers on a network protected by a firewall typically forward queries to a name server running on the firewall.

About this document

This survey of name server software for the Domain Name System (DNS) was started in 1995. It was originally posted to USENET as the Exotic Name Servers document, and later became the Name Server Software Summary. Since these are my personal views on the topic, some information is likely to be missing or flawed. Comments and suggestions are always welcome.


[Back to DNSRD]
Copyright 1994-2008 by András Salamon <andras@dns.net>

Last updated 28-Jan-2008