All PowerDNS Authoritative Server settings are listed here, excluding
those that originate from backends, which are documented in the relevant
chapters. These settings can be set inside pdns.conf
or on the
commandline when invoking the pdns
binary.
You can use +=
syntax to set some variables incrementally, but this
requires you to have at least one non-incremental setting for the
variable to act as base setting. This is mostly useful for
:ref:`setting-include-dir` directive.
For boolean settings, specifying the name of the setting without a value
means yes
.
- Boolean
- Default: no
.. versionadded:: 4.0.0
Allow 8 bit DNS queries.
- IP ranges, separated by commas
- Default: 127.0.0.0/8,::1
If set, only these IP addresses or netmasks will be able to perform AXFR.
- IP ranges, separated by commas
- Default: 127.0.0.0/8,::1
Allow DNS updates from these IP ranges. Set to empty string to honour ALLOW-DNSUPDATE-FROM
in :ref:`metadata-allow-dnsupdate-from`.
- IP ranges, separated by commas
- Default: 0.0.0.0/0,::/0
Allow AXFR NOTIFY from these IP ranges. Setting this to an empty string will drop all incoming notifies.
- IP ranges, separated by commas
- Default: 0.0.0.0/0
.. deprecated:: 4.1.0 Recursion has been removed, see :doc:`guides/recursion`
By specifying allow-recursion
, recursion can be restricted to
netmasks specified. The default is to allow recursion from everywhere.
Example: allow-recursion=198.51.100.0/24, 10.0.0.0/8, 192.0.2.4
.
- Boolean
- Default: yes
.. versionadded:: 4.0.0
Turning this off requires all notifications that are received to be signed by valid TSIG signature for the zone.
- Boolean
- Default: yes
.. versionadded:: 4.0.0
Turning this off requires all supermaster notifications to be signed by valid TSIG signature. It will accept any existing key on slave.
- IP addresses, separated by commas
When notifying a domain, also notify these nameservers. Example:
also-notify=192.0.2.1, 203.0.113.167
. The IP addresses listed in
also-notify
always receive a notification. Even if they do not match
the list in :ref:`setting-only-notify`.
- Boolean
- Default: yes
.. versionchanged:: 4.0.1 was 'no' before.
Answer questions for the ANY on UDP with a truncated packet that refers the remote server to TCP. Useful for mitigating reflection attacks.
- Boolean
- Default: no
Enable/disable the :doc:`http-api/index`.
- String
.. versionadded:: 4.0.0
Static pre-shared authentication key for access to the REST API.
- Boolean
- Default: no
.. versionadded:: 4.0.0
.. versionchanged:: 4.2.0 This setting has been removed in 4.2.0.
Disallow data modification through the REST API when set.
- Integer
- Default: 10
.. versionadded:: 4.3.0
Maximum time in seconds for inbound AXFR to start or be idle after starting.
- Boolean
- Default: no
.. versionadded:: 4.0.4
Also AXFR a zone from a master with a lower serial.
- Integer
- Default: 20
Seconds to store packets in the :ref:`packet-cache`. A value of 0 will disable the cache.
- String
- Default: auth
.. versionadded:: 4.2.0
Set the instance or third string of the metric key. Be careful not to include any dots in this setting, unless you know what you are doing. See :ref:`metricscarbon`
- Integer
- Default: 30
If sending carbon updates, this is the interval between them in seconds. See :ref:`metricscarbon`.
- String
- Default: pdns
.. versionadded:: 4.2.0
Set the namespace or first string of the metric key. Be careful not to include any dots in this setting, unless you know what you are doing. See :ref:`metricscarbon`
- String
- Default: the hostname of the server
If sending carbon updates, if set, this will override our hostname. Be careful not to include any dots in this setting, unless you know what you are doing. See :ref:`metricscarbon`
- IP Address
Send all available metrics to this server via the carbon protocol, which is used by graphite and metronome. It has to be an address (no hostnames). Moreover you can specify more than one server using a comma delimited list, ex: carbon-server=10.10.10.10,10.10.10.20. You may specify an alternate port by appending :port, ex: 127.0.0.1:2004. See :ref:`metricscarbon`.
- Path
If set, chroot to this directory for more security. See :doc:`security`.
Make sure that /dev/log
is available from within the chroot. Logging
will silently fail over time otherwise (on logrotate).
When setting chroot
, all other paths in the config (except for
:ref:`setting-config-dir` and :ref:`setting-module-dir`)
set in the configuration are relative to the new root.
When running on a system where systemd manages services, chroot
does
not work out of the box, as PowerDNS cannot use the NOTIFY_SOCKET
.
Either don't chroot
on these systems or set the 'Type' of the this
service to 'simple' instead of 'notify' (refer to the systemd
documentation on how to modify unit-files)
- Path
Location of configuration directory (pdns.conf
). Usually
/etc/powerdns
, but this depends on SYSCONFDIR
during
compile-time.
- String
Name of this virtual configuration - will rename the binary image. See :doc:`guides/virtual-instances`.
Debugging switch - don't use.
- Boolean
- Default: no
Operate as a daemon.
- Boolean
- Default: yes
.. versionadded:: 4.2.0
The value of :ref:`metadata-api-rectify` if it is not set on the zone.
Note
Pre 4.2.0 the default was always no.
- String
- Default: ecdsa256
.. versionchanged:: 4.1.0 Renamed from ``default-ksk-algorithms``. No longer supports multiple algorithm names.
The algorithm that should be used for the KSK when running :doc:`pdnsutil secure-zone <manpages/pdnsutil.1>` or using the :doc:`Zone API endpoint <http-api/cryptokey>` to enable DNSSEC. Must be one of:
- rsasha1
- rsasha256
- rsasha512
- ecdsa256 (ECDSA P-256 with SHA256)
- ecdsa384 (ECDSA P-384 with SHA384)
- ed25519
- ed448
Note
Actual supported algorithms depend on the crypto-libraries
PowerDNS was compiled against. To check the supported DNSSEC algoritms
in your build of PowerDNS, run pdnsutil list-algorithms
.
- Integer
- Default: whichever is default for default-ksk-algorithm
The default keysize for the KSK generated with :doc:`pdnsutil secure-zone <dnssec/pdnsutil>`. Only relevant for algorithms with non-fixed keysizes (like RSA).
- Integer
- Default: empty
.. versionadded:: 4.3.0
The default PUBLISH-CDNSKEY value for zones that do not have one individually specified. See the :ref:`metadata-publish-cdnskey-publish-cds` docs for more information.
- Comma-separated integers
- Default: empty
.. versionadded:: 4.3.0
The default PUBLISH-CDS value for zones that do not have one individually specified. See the :ref:`metadata-publish-cdnskey-publish-cds` docs for more information.
- String
- Default: empty
Use this soa-edit value for all zones if no :ref:`metadata-soa-edit` metadata value is set.
- String
- Default: empty
Use this soa-edit value for all signed zones if no :ref:`metadata-soa-edit` metadata value is set. Overrides :ref:`setting-default-soa-edit`
- String
.. deprecated:: 4.2.0 This setting has been deprecated and will be removed in 4.3.0
Mail address to insert in the SOA record if none set in the backend.
- String
- Default: a.misconfigured.powerdns.server
.. deprecated:: 4.2.0 This setting has been deprecated and will be removed in 4.3.0
Name to insert in the SOA record if none set in the backend.
- Integer
- Default: 3600
TTL to use when none is provided.
- String
- Default: (empty)
.. versionchanged:: 4.1.0 Renamed from ``default-zsk-algorithms``. Does no longer support multiple algorithm names.
The algorithm that should be used for the ZSK when running :doc:`pdnsutil secure-zone <manpages/pdnsutil.1>` or using the :doc:`Zone API endpoint <http-api/cryptokey>` to enable DNSSEC. Must be one of:
- rsasha1
- rsasha256
- rsasha512
- ecdsa256 (ECDSA P-256 with SHA256)
- ecdsa384 (ECDSA P-384 with SHA384)
- ed25519
- ed448
Note
Actual supported algorithms depend on the crypto-libraries
PowerDNS was compiled against. To check the supported DNSSEC algoritms
in your build of PowerDNS, run pdnsutil list-algorithms
.
- Integer
- Default: 0 (automatic default for default-zsk-algorithm)
The default keysize for the ZSK generated with :doc:`pdnsutil secure-zone <dnssec/pdnsutil>`. Only relevant for algorithms with non-fixed keysizes (like RSA).
- Boolean
- Default: no
Read additional DNSKEY, CDS and CDNSKEY records from the records table/your BIND zonefile. If not set, DNSKEY, CDS and CDNSKEY records in the zonefiles are ignored.
- Boolean
- Default: no
Do not allow zone transfers.
- Boolean
- Default: no
Disable the rectify step during an outgoing AXFR. Only required for regression testing.
- Boolean
- Default: no
Do not log to syslog, only to stdout. Use this setting when running inside a supervisor that handles logging (like systemd).
Warning
Do not use this setting in combination with :ref:`setting-daemon` as all logging will disappear.
- Boolean
- Default: no
.. versionchanged:: 4.2.0 This setting has been removed
Do not listen to TCP queries. Breaks RFC compliance.
- Integer
- Default: 3
Number of Distributor (backend) threads to start per receiver thread. See :doc:`performance`.
- Boolean
- Default: no
Synthesise CNAME records from DNAME records as required. This approximately doubles query load. Do not combine with DNSSEC!
- Integer
- Default: 30
Seconds to cache DNSSEC keys from the database. A value of 0 disables caching.
- Boolean
- Default: no
Enable/Disable DNS update (RFC2136) support. See :doc:`dnsupdate` for more.
- Boolean
- Default: yes
Perform AAAA additional processing. This sends AAAA records in the ADDITIONAL section when sending a referral.
- Integer
- Default: 60
Seconds to cache domain metadata from the database. A value of 0 disables caching.
- Boolean
- Default: no
Enables EDNS subnet processing, for backends that support it.
- One of
no
,yes
(or empty), orshared
, String - Default: no
.. versionadded:: 4.2.0
Globally enable the :doc:`LUA records <lua-records/index>` feature.
To use shared LUA states, set this to shared
, see :ref:`lua-records-shared-state`.
- Path
- Default: /dev/urandom
Entropy source file to use.
- Boolean
- Default: no
.. versionadded:: 4.1.0
If this is enabled, ALIAS records are expanded (synthesised to their A/AAAA).
If this is disabled (the default), ALIAS records will not be expanded and the server will will return NODATA for A/AAAA queries for such names.
Note
:ref:`setting-resolver` must also be set for ALIAS expansion to work!
Note
In PowerDNS Authoritative Server 4.0.x, this setting did not exist and ALIAS was always expanded.
- Boolean
- Default: no
Forward DNS updates sent to a slave to the master.
- IP addresses, separated by commas
IP addresses to forward received notifications to regardless of master or slave settings.
Note
The intended use is in anycast environments where it might be necessary for a proxy server to perform the AXFR. The usual checks are performed before any received notification is forwarded.
- Boolean
- Default: no
Run within a guardian process. See :ref:`running-guardian`.
- Path
Directory to scan for additional config files. All files that end with
.conf are loaded in order using POSIX
as locale.
- Backend names, separated by commas
Which backends to launch and order to query them in. Launches backends. In its most simple form, supply all backends that need to be launched. e.g.
launch=bind,gmysql,remote
If you find that you need to query a backend multiple times with different configuration, you can specify a name for later instantiations. e.g.:
launch=gmysql,gmysql:server2
In this case, there are 2 instances of the gmysql backend, one by the
normal name and the second one is called 'server2'. The backend
configuration item names change: e.g. gmysql-host
is available to
configure the host
setting of the first or main instance, and
gmysql-server2-host
for the second one.
Running multiple instances of the BIND backend is not allowed.
- Paths, separated by commas
If backends are available in nonstandard directories, specify their location here. Multiple files can be loaded if separated by commas. Only available in non-static distributions.
.. versionchanged:: 4.3.0 now also takes your IPv6 addresses
.. versionchanged:: 4.3.0 Before 4.3.0, this setting only supported IPv4.
- IPv4 Addresses, separated by commas or whitespace
- Default:
0.0.0.0, ::
Local IP addresses to which we bind. It is highly advised to bind to specific interfaces and not use the default 'bind to any'. This causes big problems if you have multiple IP addresses. Unix does not provide a way of figuring out what IP address a packet was sent to when binding to any.
- Boolean
- Default: no
Fail to start if one or more of the :ref:`setting-local-address`'s do not exist on this server.
.. versionchanged:: 4.4.0 removed, use :ref:`setting-local-address`
.. deprecated:: 4.3.0 This setting has been deprecated, use :ref:`setting-local-address`
- IPv6 Addresses, separated by commas or whitespace
- Default:
::
Local IPv6 address to which we bind. It is highly advised to bind to specific interfaces and not use the default 'bind to any'. This causes big problems if you have multiple IP addresses.
.. versionchanged:: 4.3.0 This setting has been removed, use :ref:`setting-local-address-nonexist-fail`
- Boolean
- Default: no
Fail to start if one or more of the :ref:`setting-local-ipv6` addresses do not exist on this server.
- Integer
- Default: 53
The port on which we listen. Only one port possible.
- Boolean
- Default: no
If set to 'no', informative-only DNS details will not even be sent to syslog, improving performance.
- Boolean
- Default: no
Tell PowerDNS to log all incoming DNS queries. This will lead to a lot of logging! Only enable for debugging! Set :ref:`setting-loglevel` to at least 5 to see the logs.
- Bool
- Default: yes
.. versionadded:: 4.1.0
When printing log lines to stdout, prefix them with timestamps. Disable this if the process supervisor timestamps these lines already.
Note
The systemd unit file supplied with the source code already disables timestamp printing
If set to a digit, logging is performed under this LOCAL facility. See :ref:`logging-to-syslog`. Do not pass names like 'local0'!
- Integer
- Default: 4
Amount of logging. Higher is more. Do not set below 3. Corresponds to "syslog" level values, e.g. error = 3, warning = 4, notice = 5, info = 6
- String
- Default: empty
.. versionadded:: 4.1.0
Script to be used to edit incoming AXFRs, see :ref:`modes-of-operation-axfrfilter`
- Integer
- Default: 3600
.. versionadded:: 4.3.0
Amount of time (in seconds) to expire (remove) a LUA monitoring check when the record isn't used any more (either deleted or modified).
- Integer
- Default: 5
.. versionadded:: 4.3.0
Amount of time (in seconds) between subsequent monitoring health checks. Does nothing if the checks take more than that time to execute.
- Path
Lua script to run before answering a query. This is a feature used internally for regression testing. The API of this functionality is not guaranteed to be stable, and is in fact likely to change.
- Integer
- Default: 1000
Limit LUA records scripts to lua-records-exec-limit
instructions.
Setting this to any value less than or equal to 0 will set no limit.
- Boolean
- Default: no
Turn on master support. See :ref:`master-operation`.
- Integer
- Default: 1000000
.. versionchanged:: 4.1.0 The packet and query caches are distinct. Previously, this setting was used for both the packet and query caches. See :ref:`setting-max-packet-cache-entries` for the packet-cache setting.
Maximum number of entries in the query cache. 1 million (the default) will generally suffice for most installations.
- Integer
- Default: 100000
Maximum number of empty non-terminals to add to a zone. This is a protection measure to avoid database explosion due to long names.
.. versionadded:: 4.3.0
- Integer
- Default: 0
Maximum number of steps for a '$GENERATE' directive when parsing a zone file. This is a protection measure to prevent consuming a lot of CPU and memory when untrusted zones are loaded. Default to 0 which means unlimited.
- Integer
- Default: 500
Limit the number of NSEC3 hash iterations for zone configurations. For more information see :ref:`dnssec-operational-nsec-modes-params`.
- Integer
- Default: 1000000
.. versionadded:: 4.1.0
Maximum number of entries in the packet cache. 1 million (the default) will generally suffice for most installations.
- Integer
- Default: 5000
If this many packets are waiting for database attention, consider the situation hopeless and respawn.
- Integer
- Default: 2^31-1 (on most systems), 2^63-1 (on ILP64 systems)
Maximum number of signatures cache entries
- Integer
- Default: 0
Maximum time in seconds that a TCP DNS connection is allowed to stay open. 0 means unlimited. Note that exchanges related to an AXFR or IXFR are not affected by this setting.
- Integer
- Default: 20
Allow this many incoming TCP DNS connections simultaneously.
- Integer
- Default: 0
Maximum number of simultaneous TCP connections per client. 0 means unlimited.
- Integer
- Default: 0
Allow this many DNS queries in a single TCP transaction. 0 means unlimited. Note that exchanges related to an AXFR or IXFR are not affected by this setting.
- Path
Directory for modules. Default depends on PKGLIBDIR
during
compile-time.
- Integer
- Default: 60
Seconds to store queries with no answer in the Query Cache. See :ref:`query-cache`.
- Boolean
- Default: no
Do not attempt to read the configuration file. Useful for configuration by parameters from the command line only.
- Boolean
- Default: no
Do not attempt to shuffle query results, used for regression testing.
- Boolean
- Default: no
Bind to addresses even if one or more of the :ref:`setting-local-address`'s do not exist on this server. Setting this option will enable the needed socket options to allow binding to non-local addresses. This feature is intended to facilitate ip-failover setups, but it may also mask configuration issues and for this reason it is disabled by default.
- IP Ranges, separated by commas or whitespace
- Default: 0.0.0.0/0, ::/0
For type=MASTER zones (or SLAVE zones with slave-renotify enabled)
PowerDNS automatically sends NOTIFYs to the name servers specified in
the NS records. By specifying networks/mask as whitelist, the targets
can be limited. The default is to notify the world. To completely
disable these NOTIFYs set only-notify
to an empty value. Independent
of this setting, the IP addresses or netmasks configured with
:ref:`setting-also-notify` and ALSO-NOTIFY
domain metadata
always receive AXFR NOTIFYs.
IP addresses and netmasks can be excluded by prefixing them with a !
.
To notify all IP addresses apart from the 192.168.0.0/24 subnet use the following:
only-notify=0.0.0.0/0, ::/0, !192.168.0.0/24
Note
Even if NOTIFYs are limited by a netmask, PowerDNS first has to resolve all the hostnames to check their IP addresses against the specified whitelist. The resolving may take considerable time, especially if those hostnames are slow to resolve. If you do not need to NOTIFY the slaves defined in the NS records (e.g. you are using another method to distribute the zone data to the slaves), then set :ref:`setting-only-notify` to an empty value and specify the notification targets explicitly using :ref:`setting-also-notify` and/or :ref:`metadata-also-notify` domain metadata to avoid this potential bottleneck.
Note
If your slaves support an Internet Protocol version, which your master does not,
then set only-notify
to include only supported protocol version.
Otherwise there will be error trying to resolve address.
For example, slaves support both IPv4 and IPv6, but PowerDNS master have only IPv4,
so allow only IPv4 with only-notify
:
only-notify=0.0.0.0/0
- Boolean
- Default: yes
.. deprecated:: 4.2.0 This setting has been removed.
Do out of zone additional processing. This means that if a malicious user adds a '.com' zone to your server, it is not used for other domains and will not contaminate answers. Do not enable this setting if you run a public DNS service with untrusted users.
The docs had previously indicated that the default was "no", but the default has been "yes" since 2005.
- Boolean
- Default: no
If this is enabled, ALIAS records are expanded (synthesised to their A/AAAA) during outgoing AXFR. This means slaves will not automatically follow changes in those A/AAAA records unless you AXFR regularly!
If this is disabled (the default), ALIAS records are sent verbatim during outgoing AXFR. Note that if your slaves do not support ALIAS, they will return NODATA for A/AAAA queries for such names.
- Integer
- Default: 0 (disabled)
If this many packets are waiting for database attention, answer any new questions strictly from the packet cache.
- Boolean
- Default: yes
PowerDNS Authoritative Server attempts to not send out notifications to itself in master mode. In very complicated situations we could guess wrong and not notify a server that should be notified. In that case, set prevent-self-notification to "no".
- Integer
- Default: 20
Seconds to store queries with an answer in the Query Cache. See :ref:`query-cache`.
- IPv4 Address
- Default: 0.0.0.0
The IP address to use as a source address for sending queries. Useful if you have multiple IPs and PowerDNS is not bound to the IP address your operating system uses by default for outgoing packets.
- IPv6 Address
- Default: '::'
Source IP address for sending IPv6 queries.
- Boolean
- Default: no
Boolean, hints to a backend that it should log a textual representation of queries it performs. Can be set at runtime.
- Integer
- Default: 1500
Maximum number of milliseconds to queue a query. See :doc:`performance`.
- Integer
- Default: 1
Number of receiver (listening) threads to start. See :doc:`performance`.
- Integer
- Default: 10
.. deprecated:: 4.1.0 Recursion has been removed, see :doc:`guides/recursion`
Seconds to store recursive packets in the :ref:`packet-cache`.
- IP Address
.. deprecated:: 4.1.0 Recursion has been removed, see :doc:`guides/recursion`
If set, recursive queries will be handed to the recursor specified here.
- IP Addresses with optional port, separated by commas
.. versionadded:: 4.1.0
Use these resolver addresses for ALIAS and the internal stub resolver.
If this is not set, /etc/resolv.conf
is parsed for upstream
resolvers.
- Integer
- Default: 2
Number of AXFR slave threads to start.
- Boolean
- Default: No
On Linux 3.9 and some BSD kernels the SO_REUSEPORT
option allows
each receiver-thread to open a new socket on the same port which allows
for much higher performance on multi-core boxes. Setting this option
will enable use of SO_REUSEPORT
when available and seamlessly fall
back to a single socket when it is not available. A side-effect is that
you can start multiple servers on the same IP/port combination which may
or may not be a good idea. You could use this to enable transparent
restarts, but it may also mask configuration issues and for this reason
it is disabled by default.
- String
- Default: auto
Specify which random number generator to use. Permissible choises are:
- auto - choose automatically
- sodium - Use libsodium
randombytes_uniform
- openssl - Use libcrypto
RAND_bytes
- getrandom - Use libc getrandom, falls back to urandom if it does not really work
- arc4random - Use BSD
arc4random_uniform
- urandom - Use
/dev/urandom
- kiss - Use simple settable deterministic RNG. FOR TESTING PURPOSES ONLY!
Note
Not all choises are available on all systems.
- String
- Default: secpoll.powerdns.com.
Domain name from which to query security update notifications. Setting this to an empty string disables secpoll.
- Boolean
- Default: yes
If yes, outgoing NOTIFYs will be signed if a TSIG key is configured for the zone. If there are multiple TSIG keys configured for a domain, PowerDNS will use the first one retrieved from the backend, which may not be the correct one for the respective slave. Hence, in setups with multiple slaves with different TSIG keys it may be required to send NOTIFYs unsigned.
- String
- Default: The hostname of the server
This is the server ID that will be returned on an EDNS NSID query.
- String
If set, change group id to this gid for more security. See :doc:`security`.
- String
If set, change user id to this uid for more security. See :doc:`security`.
- Integer
- Default: 3
Tell PowerDNS how many threads to use for signing. It might help improve signing speed by changing this number.
- Boolean
- Default: no
Turn on slave support. See :ref:`slave-operation`.
- Integer
- Default: 60
On a master, this is the amount of seconds between the master checking the SOA serials in its database to determine to send out NOTIFYs to the slaves. On slaves, this is the number of seconds between the slave checking for updates to zones.
- Boolean
- Default: no
This setting will make PowerDNS renotify the slaves after an AXFR is received from a master. This is useful when using when running a signing-slave.
See :ref:`metadata-slave-renotify` to set this per-zone.
- Integer
- Default: 604800
.. deprecated:: 4.2.0 This setting has been deprecated and will be removed in 4.3.0
Default :ref:`types-soa` expire.
- Integer
- Default: 3600
.. deprecated:: 4.2.0 This setting has been deprecated and will be removed in 4.3.0
Default :ref:`types-soa` minimum ttl.
- Integer
- Default: 10800
.. deprecated:: 4.2.0 This setting has been deprecated and will be removed in 4.3.0
Default :ref:`types-soa` refresh.
- Integer
- Default: 3600
.. deprecated:: 4.2.0 This setting has been deprecated and will be removed in 4.3.0
Default :ref:`types-soa` retry.
- Path
Where the controlsocket will live. The default depends on
LOCALSTATEDIR
during compile-time (usually /var/run
or
/run
). See :ref:`control-socket`.
This path will also contain the pidfile for this instance of PowerDNS
called pdns.pid
by default. See :ref:`setting-config-name`
and :doc:`Virtual Hosting <guides/virtual-instances>` how this can differ.
- Boolean
- Default: no
.. versionadded:: 4.1.9 In versions before 4.1.9, this setting did not exist and supermaster support was enabled by default.
.. versionchanged:: 4.2.0 Before 4.2.0, the default was yes.
Turn on supermaster support. See :ref:`supermaster-operation`.
- IP Address
Address to bind to for TCP control.
- Integer
- Default: 53000
Port to bind to for TCP control.
- IP Ranges, separated by commas or whitespace
Limit TCP control to a specific client range.
- String
Password for TCP control.
- Integer
- Default: 0 (Disabled)
.. versionadded:: 4.1.0
Enable TCP Fast Open support, if available, on the listening sockets. The numerical value supplied is used as the queue size, 0 meaning disabled.
- Integer
- Default: 5
Maximum time in seconds that a TCP DNS connection is allowed to stay open while being idle, meaning without PowerDNS receiving or sending even a single byte.
- Boolean
- Default: yes
Enable the Linux-only traceback handler.
- String
IP address of incoming notification proxy
.. versionchanged:: 4.2.0 Before 4.2.0, the default was 1680
- Integer
- Default: 1232
EDNS0 allows for large UDP response datagrams, which can potentially raise performance. Large responses however also have downsides in terms of reflection attacks. Maximum value is 65535, but values above 4096 should probably not be attempted.
Note
Why 1232?
1232 is the largest number of payload bytes that can fit in the smallest IPv6 packet. IPv6 has a minimum MTU of 1280 bytes (:rfc:`RFC 8200, section 5 <8200#section-5>`), minus 40 bytes for the IPv6 header, minus 8 bytes for the UDP header gives 1232, the maximum payload size for the DNS response.
- Any of:
anonymous
,powerdns
,full
, String - Default: full
When queried for its version over DNS
(dig chaos txt version.bind @pdns.ip.address
), PowerDNS normally
responds truthfully. With this setting you can overrule what will be
returned. Set the version-string
to full
to get the default
behaviour, to powerdns
to just make it state
Served by PowerDNS - https://www.powerdns.com/
. The anonymous
setting will return a ServFail, much like Microsoft nameservers do. You
can set this response to a custom value as well.
- Boolean
- Default: no
Start a webserver for monitoring. See :doc:`performance`".
.. versionchanged:: 4.1.0 It was necessary to enable the webserver to use the REST API, this is no longer the case.
- IP Address
- Default: 127.0.0.1
IP Address for webserver/API to listen on.
- IP ranges, separated by commas or whitespace
- Default: 127.0.0.1,::1
.. versionchanged:: 4.1.0 Default is now 127.0.0.1,::1, was 0.0.0.0/0,::/0 before.
Webserver/API access is only allowed from these subnets.
.. versionadded:: 4.2.0
- String, one of "none", "normal", "detailed"
The amount of logging the webserver must do. "none" means no useful webserver information will be logged. When set to "normal", the webserver will log a line per request that should be familiar:
[webserver] e235780e-a5cf-415e-9326-9d33383e739e 127.0.0.1:55376 "GET /api/v1/servers/localhost/bla HTTP/1.1" 404 196
When set to "detailed", all information about the request and response are logged:
[webserver] e235780e-a5cf-415e-9326-9d33383e739e Request Details: [webserver] e235780e-a5cf-415e-9326-9d33383e739e Headers: [webserver] e235780e-a5cf-415e-9326-9d33383e739e accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 [webserver] e235780e-a5cf-415e-9326-9d33383e739e accept-encoding: gzip, deflate [webserver] e235780e-a5cf-415e-9326-9d33383e739e accept-language: en-US,en;q=0.5 [webserver] e235780e-a5cf-415e-9326-9d33383e739e connection: keep-alive [webserver] e235780e-a5cf-415e-9326-9d33383e739e dnt: 1 [webserver] e235780e-a5cf-415e-9326-9d33383e739e host: 127.0.0.1:8081 [webserver] e235780e-a5cf-415e-9326-9d33383e739e upgrade-insecure-requests: 1 [webserver] e235780e-a5cf-415e-9326-9d33383e739e user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:64.0) Gecko/20100101 Firefox/64.0 [webserver] e235780e-a5cf-415e-9326-9d33383e739e No body [webserver] e235780e-a5cf-415e-9326-9d33383e739e Response details: [webserver] e235780e-a5cf-415e-9326-9d33383e739e Headers: [webserver] e235780e-a5cf-415e-9326-9d33383e739e Connection: close [webserver] e235780e-a5cf-415e-9326-9d33383e739e Content-Length: 49 [webserver] e235780e-a5cf-415e-9326-9d33383e739e Content-Type: text/html; charset=utf-8 [webserver] e235780e-a5cf-415e-9326-9d33383e739e Server: PowerDNS/0.0.15896.0.gaba8bab3ab [webserver] e235780e-a5cf-415e-9326-9d33383e739e Full body: [webserver] e235780e-a5cf-415e-9326-9d33383e739e <!html><title>Not Found</title><h1>Not Found</h1> [webserver] e235780e-a5cf-415e-9326-9d33383e739e 127.0.0.1:55376 "GET /api/v1/servers/localhost/bla HTTP/1.1" 404 196
The value between the hooks is a UUID that is generated for each request. This can be used to find all lines related to a single request.
Note
The webserver logs these line on the NOTICE level. The :ref:`setting-loglevel` seting must be 5 or higher for these lines to end up in the log.
.. versionadded:: 4.2.0
- Integer
- Default: 2
Maximum request/response body size in megabytes.
- String
The plaintext password required for accessing the webserver.
- Integer
- Default: 8081
The port where webserver/API will listen on.
- Boolean
- Default: no
If the webserver should print arguments.
- Boolean
- Default: yes
If a PID file should be written.
- Integer
- Default: 100
Specifies the maximum number of received megabytes allowed on an incoming AXFR/IXFR update, to prevent resource exhaustion. A value of 0 means no restriction.