Table of Contents
The PowerDNS daemon is a versatile nameserver which supports a large number of backends. These backends can either be plain zone files or be more dynamic in nature. Additionally, through use of clever programming techniques, PowerDNS offers very high domain resolution performance.
Prime examples of backends include relational databases, but also (geographical) load balancing and failover algorithms.
The company is called PowerDNS.COM BV, the nameserver daemon is called PDNS.
PowerDNS consists of two parts: the Authoritative Server and the Recursor. Other nameservers fully combine these functions, PowerDNS offers them separately, but can mix both authoritative and recursive usage seamlessly. The Authoritative Server will answer questions about domains it knows about, but will not go out on the net to resolve queries about other domains. However, it can use a recursing backend to provide that functionality. Depending on your needs, this backend can either be the PowerDNS recursor or an external one.
When the Authoritative Server answers a question, it comes out of the database, and can be trusted as being authoritative. There is no way to pollute the cache or to confuse the daemon.
The Recursor, conversely, by default has no knowledge of domains itself, but will always consult other authoritative servers to answer questions given to it.
PDNS has been designed to serve both the needs of small installations by being easy to setup, as well as for serving very large query volumes on large numbers of domains.
Another prime goal is security. By the use of language features, the PDNS source code is very small (in the order of 10.000 lines) which makes auditing easy. In the same way, library features have been used to mitigate the risks of buffer overflows.
Finally, PDNS is able to give a lot of statistics on its operation which is both helpful in determining the scalability of an installation as well as for spotting problems.