The DNS system is the system, which powers the Internet as we know it today - it is responsible for turning domain names to IP addresses and locating them on one of the millions of hosting servers. But the DNS system would have been just a concept without its physical representation - the DNS server.
DNS servers are organized in a hierarchical order and communicate with each other through private network protocols. The master DNS servers, known as root servers, store the whole database of the Internet domain names and their corresponding IP addresses. They are owned by various independent agencies based in the United States, Japan, the UK and Sweden. The other lower-level DNS servers maintain only parts of the total database of the domains/addresses and are owned by businesses or ISPs (Internet Server Providers). A DNS server can be any computer registered in the DNS system, running special DNS software, which helps it resolve domain names to their appropriate hosts. Each DNS server features a public IP address and includes a database of network names/addresses of other Internet hosts.
How do DNS Servers work?
The communication between users' computers and DNS servers is initiated as soon as you type a website address (domain name) into a web browser. Then the browser, acting as a DNS client, sends an immediate request to your ISP's DNS server(s), which search for the matching IP address in its/their database.
If no match is found, the DNS server automatically passes the request to another lower-level DNS server or even to a root server, if necessary. As soon as the matching domain name and IP address are located - the request’s response is transmitted back to your browser through the DNS server network. This process is called forward DNS, as opposed to reverse DNS, where the DNS server takes major part as well.
DNS server solutions
Each DNS server has to be powered by special software, designed to handle the specific DNS requests. There are several DNS solutions, both open-source and commercial.
If no match is found the DNS server automatically passes the request to another lower-level DNS server or even to a root server, if necessary. As soon as the matching domain name and IP address are located - the request's response is transmitted back to your browser through the DNS server network. This process is called forward DNS, as opposed to reverse DNS, where the DNS server takes major part as well. Today, the "bind" DNS server software is the most used one, present in almost every Unix distribution (Linux and MacOS), and powers most of the major DNS servers. It went through several major changes - BIND 4, BIND 8, and the current BIND 9. On most Unix-based machines, the bind daemon is referred to as "named", which stands for "name daemon". The bind software has also been ported for a Windows environment, but is still managed only via the command line.
The BIND 9 release marked the integration of DNSSEC and TSIG in an attempt to improve the security and also the support for IPv6 IP addresses.
The Microsoft DNS server is the 4th ranking DNS solution, right behind the three BIND versions - BIND4, BIND8, and BIND9. It is implemented in the Microsoft Windows Server OS. It was originally based on BIND 4, but has evolved since its initial release in 1996, when it was bundled as a test release in Windows NT 4.0.
One of the major flaws of the Microsoft DNS server is its inability to handle wild card DNS settings. For a long time it was also susceptible to DNS cache poisoning attacks, which was finally addressed in the Windows Server 2003 OS. The Microsoft DNS server still offers only partial support for the DNSSEC protocols.
Djbdns is a very popular open-source DNS server solution. It was created by a single author, D.J. Bernstein, and was considered one of the most secure DNS server solutions, with a price of $1000 for anyone who discovers a security hole.
Djbdns has a modular structure, which has helped reduce the main source code and thus - the complexity of its daemon.
Dnsmasq is a DNS solution, designed for small networks. It provides a DNS forwarder and a DHCP server, and supports both IPv4 and IPv6. It can also be used as an IPv4-to-IPv6 and IPv6-to-IPv4 converter.
Dnsmasq is included in most of the popular Linux distributions and also has ports for FreeBSD, OpenBSD and NetBSD. It is also shipped with most of the Linksys wireless routers.