PowerDNS
Encyclopedia
PowerDNS is a 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 database
s 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
.
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 chroot
ed. Various cache
s are maintained to speed up query processing. Run-time 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
.
There are many independent projects to create management interfaces for PowerDNS, including PowerAdmin, PDNSOps, PowerDNS on rails and JPower Admin and even a drupal module called PowerAdmin.
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 boost and the MTasker library, which is a simple cooperative multitasking library. 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
.
As of version 3.3, there is no support for DNSSEC validation in the recursor.
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
MongoDB : Retrieve data from MongoDB
Lua : Allow an embedded Lua script to provide DNS answers
random : Returns random data (for testing only)
Domain name system
The Domain Name System is a hierarchical distributed naming system for computers, services, or any resource connected to the Internet or a private network. It associates various information with domain names assigned to each of the participating entities...
server
Server (computing)
In the context of client-server architecture, a server is a computer program running to serve the requests of other programs, the "clients". Thus, the "server" performs some computational task on behalf of "clients"...
, written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
and licensed under the GPL
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
. It runs on most Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
derivatives and on Microsoft Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
. PowerDNS features a large number of different backends ranging from simple BIND
BIND
BIND , or named , is the most widely used DNS software on the Internet.On Unix-like operating systems it is the de facto standard.Originally written by four graduate students at the Computer Systems Research Group at the University of California, Berkeley , the name originates as an acronym from...
style zonefiles to relational database
Relational database
A relational database is a database that conforms to relational model theory. The software used in a relational database is called a relational database management system . Colloquial use of the term "relational database" may refer to the RDBMS software, or the relational database itself...
s and load balancing
Load balancing (computing)
Load balancing is a computer networking methodology to distribute workload across multiple computers or a computer cluster, network links, central processing units, disk drives, or other resources, to achieve optimal resource utilization, maximize throughput, minimize response time, and avoid...
/failover
Failover
In computing, failover is automatic switching to a redundant or standby computer server, system, or network upon the failure or abnormal termination of the previously active application, server, system, or network...
algorithms. A DNS recursor
Recursion
Recursion is the process of repeating items in a self-similar way. For instance, when the surfaces of two mirrors are exactly parallel with each other the nested images that occur are a form of infinite recursion. The term has a variety of meanings specific to a variety of disciplines ranging from...
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
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
community. The principal author is Bert Hubert
Bert Hubert
Bert Hubert is a Dutch open source software developer. He is best known for being the principal author of the popular open source DNS server suite PowerDNS...
.
Features
PowerDNS Authoritative Server (pdns_server) consists of a single core, and multiple dynamically loadableLibrary (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....
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
Computer storage
Computer data storage, often called storage or memory, refers to computer components and recording media that retain digital data. Data storage is one of the core functions and fundamental components of computers....
.
Zone transfers
DNS zone transfer
DNS zone transfer, also sometimes known by its opcode mnemonic AXFR, is a type of DNS transaction. It is one of the many mechanisms available for administrators to employ for replicating the databases containing the DNS data across a set of DNS servers. Zone transfer comes in two flavors, full ...
and update notifications are supported, and the processes can run unprivileged and chroot
Chroot
A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name files outside the designated directory tree. The term "chroot" may refer to the chroot...
ed. Various cache
Cache
In computer engineering, a cache is a component that transparently stores data so that future requests for that data can be served faster. The data that is stored within a cache might be values that have been computed earlier or duplicates of original values that are stored elsewhere...
s are maintained to speed up query processing. Run-time control is available through the pdns_control command, which allows reloading of separate zones, cache purges, zone notifications and dumps statistics
Statistics
Statistics is the study of the collection, organization, analysis, and interpretation of data. It deals with all aspects of this, including the planning of data collection in terms of the design of surveys and experiments....
in Multi Router Traffic Grapher
Multi Router Traffic Grapher
The Multi Router Traffic Grapher, or just simply MRTG, is free software for monitoring and measuring the traffic load on network links. It allows the user to see traffic load on a network over time in graphical form....
/ rrdtool
RRDtool
RRDtool aims to handle time-series data like network bandwidth, temperatures, CPU load, etc...
format. Realtime information can also be obtained through the optional built-in web server
Web server
Web server can refer to either the hardware or the software that helps to deliver content that can be accessed through the Internet....
.
There are many independent projects to create management interfaces for PowerDNS, including PowerAdmin, PDNSOps, PowerDNS on rails and JPower Admin and even a drupal module called PowerAdmin.
DNSSEC
The PowerDNS Authoritative Server supports DNSSEC as of version 3.0. While pre-signed zones can be served, it is also possible to perform online signing & key management. This has the upside of being relatively easy, but the downside that the cryptographic keying material is present on the servers itself.Recursor
PowerDNS Recursor (pdns_recursor) is a resolving DNS server, that runs as a separate process. The authoritative pdns_server can be configured to proxyProxy server
In computer networks, a proxy server is a server that acts as an intermediary for requests from clients seeking resources from other servers. A client connects to the proxy server, requesting some service, such as a file, connection, web page, or other resource available from a different server...
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 boost and the MTasker library, which is a simple cooperative multitasking library. 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
AOL
AOL Inc. is an American global Internet services and media company. AOL is headquartered at 770 Broadway in New York. Founded in 1983 as Control Video Corporation, it has franchised its services to companies in several nations around the world or set up international versions of its services...
, Shaw Cable and Neuf Cegetel
Neuf Cegetel
Neuf Cegetel is a French wireline telecom services provider and a mobile virtual network operator offering different services to consumers, enterprises and wholesale customers, ranking number two in the country...
.
As of version 3.3, there is no support for DNSSEC validation in the recursor.
Backends
bind and bind2 : Reads zone data from regular BIND style zonefilesdb2 : Queries an IBM DB2
IBM DB2
The IBM DB2 Enterprise Server Edition is a relational model database server developed by IBM. It primarily runs on Unix , Linux, IBM i , z/OS and Windows servers. DB2 also powers the different IBM InfoSphere Warehouse editions...
database server
geo : Allows different answers to DNS queries coming from different IP address ranges or based on the geographic location
gmysql : Supports MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...
databases
gpgsql : Supports PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...
databases
goracle : Supports Oracle
Oracle database
The Oracle Database is an object-relational database management system produced and marketed by Oracle Corporation....
databases
gsqlite: Supports SQLite
SQLite
SQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard...
databases
ldap : Fetches zone data from a hierarchical LDAP
Lightweight Directory Access Protocol
The Lightweight Directory Access Protocol is an application protocol for accessing and maintaining distributed directory information services over an Internet Protocol network...
directory
odbc : Retrieves zone information from a database supported by the ODBC
Open Database Connectivity
In computing, ODBC is a standard C interface for accessing database management systems . The designers of ODBC aimed to make it independent of database systems and operating systems...
library
opendbx : A database backend optimized for speed, load balancing and fail-over based on the OpenDBX
OpenDBX
The OpenDBX library provides a unified and consistent API for software developers to different database management systems. The function library is written in the C programming language and aims at implementing access to the native database interfaces efficiently via a thin abstraction layer...
library. It currently supports MySQL
MySQL
MySQL officially, but also commonly "My Sequel") is a relational database management system that runs as a server providing multi-user access to a number of databases. It is named after developer Michael Widenius' daughter, My...
, PostgreSQL
PostgreSQL
PostgreSQL, often simply Postgres, is an object-relational database management system available for many platforms including Linux, FreeBSD, Solaris, MS Windows and Mac OS X. It is released under the PostgreSQL License, which is an MIT-style license, and is thus free and open source software...
, SQLite
SQLite
SQLite is an ACID-compliant embedded relational database management system contained in a relatively small C programming library. The source code for SQLite is in the public domain and implements most of the SQL standard...
, Firebird
Firebird (database server)
Firebird is an open source SQL relational database management system that runs on Linux, Windows, and a variety of Unix. The database forked from Borland's open source edition of InterBase in 2000, but since Firebird 1.5 the code has been largely rewritten ....
, Interbase
InterBase
InterBase is a relational database management system currently developed and marketed by Embarcadero Technologies. InterBase is distinguished from other DBMSs by its small footprint, close to zero administration requirements, and multi-generational architecture...
, SQL Server
Microsoft SQL Server
Microsoft SQL Server is a relational database server, developed by Microsoft: It is a software product whose primary function is to store and retrieve data as requested by other software applications, be it those on the same computer or those running on another computer across a network...
and Sybase ASE
Adaptive Server Enterprise
Adaptive Server Enterprise is Sybase Corporation's flagship enterprise-class relational model database server product. ASE is predominantly used on the Unix platform but is also available for Windows.-History:...
pipe : Asks a separate process for answers
MongoDB : Retrieve data from MongoDB
MongoDB
MongoDB is an open source, high-performance, schema-free, document-oriented database written in the C++ programming language...
Lua : Allow an embedded Lua script to provide DNS answers
random : Returns random data (for testing only)