PowerDNS

From Wikipedia, the free encyclopedia

PowerDNS Server
Design by PowerDNS.COM BV
Developed by Bert Hubert
Latest release 2.9.21 / 21 April 2007
Written in C++
OS Any Unix-like
Platform Cross-platform
Genre DNS server
License GNU General Public License v2
Website www.powerdns.com
PowerDNS Recursor
Design by PowerDNS.COM BV
Developed by Bert Hubert
Latest release 3.1.4 / 13 November 2007
Preview release 3.1.5-snapshot3 / 6 February 2008
Written in C++
OS Any Unix-like
Platform Cross-platform
Genre DNS server
License GNU General Public License v2
Website www.powerdns.com

PowerDNS is a versatile DNS server, written in C++ and licensed under the GPL. It runs on most Unix derivatives and on Microsoft Windows. PowerDNS features a large number of different backends ranging from simple BIND style zonefiles to relational databases and load balancing/failover algorithms. A DNS recursor is also included as a separate program.

PowerDNS is a product of the Dutch company PowerDNS.COM BV, with numerous contributions from the Open Source community. The principal author is Bert Hubert.

Contents

[edit] Features

PowerDNS Server / pdns_server consists of a single core, and multiple dynamically loadable backends that run multi-threaded. The core handles all packet processing and DNS intelligence, while one or more backends deliver DNS records using arbitrary storage methods.

Zone transfers and update notifications are supported, and the processes can run unprivileged and chrooted. Various caches are maintained to speed up query processing. Runtime control is available through the pdns_control command, which allows reloading of separate zones, cache purges, zone notifications and dumps statistics in Multi Router Traffic Grapher / rrdtool format. Realtime information can also be obtained through the optional built-in web server.

[edit] Recursor

PowerDNS Recursor / pdns_recursor[1] is a resolving DNS server, that runs as a separate process. The authoritative pdns_server can be configured to proxy recursive queries to the recursor, and optionally overlay authoritative zone data.

This part of PowerDNS is single threaded, but is written as if it were multi-threaded, by the use of the MTasker library[2], which is a simple cooperative multitasking library and boost[3]. It is also available as a standalone package.

It does not have to run a pdns_server process as a gatekeeper for pdns_recursor, if the goal is simply to provide caching/recursing/resolving nameservice as running pdns_recursor on its own is even more efficient than behind the authoritative component.

As of 2007, the Recursor is used by several of the largest Internet providers of the world, including AOL, Shaw Cable and Neuf Cegetel.

[edit] Backends

bind and bind2 
Reads zone data from regular BIND style zonefiles
db2 
Queries an IBM DB2 database server
geo 
Allows different answers to DNS queries coming from different IP address ranges or based on the geographic location
gmysql 
Supports MySQL databases
gpgsql 
Supports PostgreSQL databases
goracle 
Supports Oracle databases
gsqlite
Supports SQLite databases
ldap 
Fetches zone data from a hierarchical LDAP directory
odbc 
Retrieves zone information from a database supported by the ODBC library
opendbx 
A database backend optimized for speed, load balancing and fail-over based on the OpenDBX library. It currently supports MySQL, PostgreSQL, SQLite, Firebird, Interbase, SQL Server and Sybase ASE
pipe 
Asks a separate process for answers
random 
Returns random data (for testing only)
xdb 
Can talk to Tridge's Trivial Database or to regular *db tables on disk. This backend provides the highest performance

[edit] PowerDNS and Wikimedia

As of early 2005, PowerDNS, in combination with the bind and geo backends, is used by Wikimedia to handle all DNS traffic. By using the geo backend, incoming clients can be redirected to the nearest Wikipedia server (based on their geographic location). This facility provides an effective way of load balancing and it reduces response times for the clients.

[edit] See also

[edit] References

[edit] External links

Languages