PowerDNS Authoritative, PowerDNS Recursor, dnsdist – GitHub

PowerDNS is copyright © 2001-2023 by PowerDNS.COM BV and many contributors, using the GNU GPLv2 license (see NOTICE for exact license and exception used).

All documentation can be found at https://doc.powerdns.com/

This file can be delayed at times. For the latest updates, always check https://doc.powerdns.com/authoritative/changelog/

Another good place to look for information is: https://doc.powerdns.com/authoritative/appendices/compiling.html

To archive errors, go to: https://github.com/PowerDNS/pdns/issues

But check if the problem was already reported there first.

DOCKER

This README file is mirrored from GitHub to dockerhub. For information about our Docker images, see https://github.com/PowerDNS/pdns/blob/master/Docker-README.md

Git source/source code

is available on GitHub:

This repository contains the sources for PowerDNS Resourcer, PowerDNS Authoritative Server, and dnsdist (a powerful DNS load balancer). All three can be built from this repository. However, all three were released separately as .tar.bz2, .deb, and .rpm.

Different versions can be built with the help of pdns-builder, which uses a docker-based build process. To get started with this, run these commands at the root of this repository

:

This will open a USE page explaining how to build the different versions

.

BUILD Authoritative

server

The PowerDNS authoritative server depends on Boost, OpenSSL, and Lua, and requires a C++-2017-compliant compiler

.

In Debian 9

, the following is useful: When compiling from git, the following packages

are also required

: For

Ubuntu 18.04 (Bionic Beaver), the following packages must be installed

:

Next, generate the configuration file

:

To build a very clean version, use:

This generates a PowerDNS Authoritative Server binary with no built-in modules

.

See https://doc.powerdns.com/authoritative/backends/index.html for a list of available modules.

When ./configure runs without -with-modules, the bind module and gmysql are integrated by default and the pipeline backend is compiled for runtime loading.

To add multiple modules, try:

Note that you will also need the development headers for PostgreSQL in this case

. See

https://doc.powerdns.com/authoritative/appendices/compiling.html for details

.

If you have problems with C++11-related symbols, try passing CPPFLAGS=-D_GLIBCXX_USE_CXX11_ABI=0 (or 1) to ./configure to ensure that it supports the installed dependencies.

Compiling the recursor

See README.md in pdns/

recursordist

/.

Compiling dnsdist

View README-dnsdist.md in pdns/

.

Creating

the HTML documentation

HTML documentation (as seen on the PowerDNS document site) is created from restructured text (rst) files located in documents. They are compiled into HTML files using Sphinx, a documentation generating tool that is built in Python.

Install the dependencies in “COMPILING” and run autoreconf if you haven’t already:

Enter the docs folder and use make to compile the HTML documents

.

HTML documentation will now be available in html-docs

.

FreeBSD Notes

You need to compile using gmake: regular make only seems to work, but in fact it doesn’t work. Use gmake, not make.

The clang compiler installed through the FreeBSD package manager does not expose all the necessary C++17 features under the default value std=gnuc++14. Force the compiler to use std=c++17 mode instead.

macOS Notes

PowerDNS Authoritative Server is available through

Homebrew:

if you want to build yourself, dependencies can be installed with Homebrew. You must also tell configure where to find OpenSSL.

Also, for PostgreSQL support, run brew install postgresql and add -with-modules=”gpgsql” to ./configure. For MySQL support, run brew install mariadb and add -with-modules=”gmysql” to ./configure.

Linux Notes

None really.

Contact US