]> git.ipfire.org Git - thirdparty/pdns.git/blame - docs/settings.rst
Merge pull request #6847 from rgacogne/dnsdist-edns-self-generated
[thirdparty/pdns.git] / docs / settings.rst
CommitLineData
0e2063c3
PL
1Authoritative Server Settings
2=============================
3
4All PowerDNS Authoritative Server settings are listed here, excluding
5those that originate from backends, which are documented in the relevant
6chapters. These settings can be set inside ``pdns.conf`` or on the
7commandline when invoking the ``pdns`` binary.
8
9You can use ``+=`` syntax to set some variables incrementally, but this
10requires you to have at least one non-incremental setting for the
11variable to act as base setting. This is mostly useful for
12:ref:`setting-include-dir` directive.
13
14For boolean settings, specifying the name of the setting without a value
15means ``yes``.
16
17.. _setting-8bit-dns:
18
19``8bit-dns``
20------------
21
22- Allow 8 bit dns queries
23- Default: no
24
25.. versionadded:: 4.0.0
26
27Allow 8 bit DNS queries.
28
29.. _setting-allow-axfr-ips:
30
31``allow-axfr-ips``
32------------------
33
34- IP ranges, separated by commas
35- Default: 127.0.0.0/8,::1
36
37If set, only these IP addresses or netmasks will be able to perform
38AXFR.
39
40.. _setting-allow-dnsupdate-from:
41
42``allow-dnsupdate-from``
43------------------------
44
45- IP ranges, separated by commas
88d771bc 46- Default: 127.0.0.0/8,::1
0e2063c3 47
4991656e 48Allow DNS updates from these IP ranges. Set to empty string to honour ``ALLOW-DNSUPDATE-FROM`` in :ref:`metadata-allow-dnsupdate-from`.
0e2063c3
PL
49
50.. _setting-allow-notify-from:
51
52``allow-notify-from``
53---------------------
54
55- IP ranges, separated by commas
56- Default: 0.0.0.0/0,::/0
57
58Allow AXFR NOTIFY from these IP ranges. Setting this to an empty string
59will drop all incoming notifies.
60
61.. _setting-allow-unsigned-notify:
62
63``allow-unsigned-notify``
64-------------------------
65
66- Boolean
67- Default: yes
68
69.. versionadded:: 4.0.0
70
71Turning this off requires all notifications that are received to be
72signed by valid TSIG signature for the zone.
73
74.. _setting-allow-unsigned-supermaster:
75
76``allow-unsigned-supermaster``
77------------------------------
78
79- Boolean
80- Default: yes
81
82.. versionadded:: 4.0.0
83
84Turning this off requires all supermaster notifications to be signed by
85valid TSIG signature. It will accept any existing key on slave.
86
87.. _setting-allow-recursion:
88
89``allow-recursion``
90-------------------
91
92- IP ranges, separated by commas
93- Default: 0.0.0.0/0
94- Removed in: 4.1.0
95
96By specifying ``allow-recursion``, recursion can be restricted to
97netmasks specified. The default is to allow recursion from everywhere.
98Example: ``allow-recursion=198.51.100.0/24, 10.0.0.0/8, 192.0.2.4``.
99
100.. _setting-also-notify:
101
102``also-notify``
103---------------
104
105- IP addresses, separated by commas
106
107When notifying a domain, also notify these nameservers. Example:
108``also-notify=192.0.2.1, 203.0.113.167``. The IP addresses listed in
109``also-notify`` always receive a notification. Even if they do not match
110the list in :ref:`setting-only-notify`.
111
112.. _setting-any-to-tcp:
113
114``any-to-tcp``
115--------------
116
117- Boolean
118- Default: yes
119
120.. versionchanged:: 4.0.1, was 'no' before.
121
122Answer questions for the ANY on UDP with a truncated packet that refers
123the remote server to TCP. Useful for mitigating reflection attacks.
124
125.. _setting-api:
126
127``api``
128-------
129
130- Boolean
131- Default: no
132
133Enable/disable the :doc:`http-api/index`.
134
135.. _setting-api-key:
136
137``api-key``
138-----------
139
140- String
141
142.. versionadded:: 4.0.0
143
144Static pre-shared authentication key for access to the REST API.
145
146.. _setting-api-readonly:
147
148``api-readonly``
149----------------
150
151- Boolean
152- Default: no
153
154.. versionadded:: 4.0.0
155
156Disallow data modification through the REST API when set.
157
158.. _setting-axfr-lower-serial:
159
160``axfr-lower-serial``
161---------------------
162
163- Boolean
164- Default: no
165
166.. versionadded:: 4.0.4
167
168Also AXFR a zone from a master with a lower serial.
169
170.. _setting-cache-ttl:
171
172``cache-ttl``
173-------------
174
175- Integer
176- Default: 20
177
178Seconds to store packets in the :ref:`packet-cache`.
179
180.. _setting-carbon-ourname:
181
182``carbon-ourname``
183------------------
184
185- String
186- Default: the hostname of the server
187
188If sending carbon updates, if set, this will override our hostname. Be
189careful not to include any dots in this setting, unless you know what
190you are doing. See :ref:`metricscarbon`
191
192.. _setting-carbon-server:
193
194``carbon-server``
195-----------------
196
197- IP Address
198
199Send all available metrics to this server via the carbon protocol, which
200is used by graphite and metronome. It has to be an address (no
201hostnames). You may specify an alternate port by appending :port, ex:
202127.0.0.1:2004. See :ref:`metricscarbon`.
203
204.. _setting-carbon-interval:
205
206``carbon-interval``
207-------------------
208
209- Integer
210- Default: 30
211
212If sending carbon updates, this is the interval between them in seconds.
213See :ref:`metricscarbon`.
214
215.. _setting-chroot:
216
217``chroot``
218----------
219
220- Path
221
222If set, chroot to this directory for more security. See :doc:`security`.
223
224Make sure that ``/dev/log`` is available from within the chroot. Logging
225will silently fail over time otherwise (on logrotate).
226
227When setting ``chroot``, all other paths in the config (except for
228:ref:`setting-config-dir` and :ref:`setting-module-dir`)
229set in the configuration are relative to the new root.
230
231When running on a system where systemd manages services, ``chroot`` does
232not work out of the box, as PowerDNS cannot use the ``NOTIFY_SOCKET``.
233Either don't ``chroot`` on these systems or set the 'Type' of the this
234service to 'simple' instead of 'notify' (refer to the systemd
235documentation on how to modify unit-files)
236
237.. _setting-config-dir:
238
239``config-dir``
240--------------
241
242- Path
243
244Location of configuration directory (``pdns.conf``). Usually
245``/etc/powerdns``, but this depends on ``SYSCONFDIR`` during
246compile-time.
247
248.. _setting-config-name:
249
250``config-name``
251---------------
252
253- String
254
255Name of this virtual configuration - will rename the binary image. See
256:doc:`guides/virtual-instances`.
257
258.. _setting-control-console:
259
260``control-console``
261-------------------
262
263Debugging switch - don't use.
264
265.. _setting-daemon:
266
267``daemon``
268----------
269
270- Boolean
271- Default: no
272
273Operate as a daemon.
274
275.. _setting-default-ksk-algorithms:
c01b3507 276.. _setting-default-ksk-algorithm:
0e2063c3 277
c01b3507 278``default-ksk-algorithm``
0e2063c3
PL
279--------------------------
280
281- String
282- Default: ecdsa256
283
c01b3507 284.. versionchanged:: 4.1.0
28080ce6 285 Renamed from ``default-ksk-algorithms``. No longer supports multiple algorithm names.
c01b3507 286
0e2063c3 287The algorithm that should be used for the KSK when running
af28a1c2 288:doc:`pdnsutil secure-zone <manpages/pdnsutil.1>` or using the :doc:`Zone API endpoint <http-api/cryptokey>`
28080ce6
PL
289to enable DNSSEC. Must be one of:
290
291* rsamd5
292* dh
293* dsa
294* ecc
295* rsasha1
296* rsasha256
0e2063c3 297* rsasha512
28080ce6
PL
298* ecc-gost
299* ecdsa256 (ECDSA P-256 with SHA256)
300* ecdsa384 (ECDSA P-384 with SHA384)
0e2063c3
PL
301* ed25519
302
28080ce6
PL
303.. note::
304 Actual supported algorithms depend on the crypto-libraries
305 PowerDNS was compiled against. To check the supported DNSSEC algoritms
306 in your build of PowerDNS, run ``pdnsutil list-algorithms``.
307
0e2063c3
PL
308.. _setting-default-ksk-size:
309
310``default-ksk-size``
311--------------------
312
313- Integer
c01b3507 314- Default: whichever is default for `default-ksk-algorithm`_
0e2063c3
PL
315
316The default keysize for the KSK generated with :doc:`pdnsutil secure-zone <dnssec/pdnsutil>`.
28080ce6 317Only relevant for algorithms with non-fixed keysizes (like RSA).
0e2063c3
PL
318
319.. _setting-default-soa-name:
320
321``default-soa-name``
322--------------------
323
324- String
325- Default: a.misconfigured.powerdns.server
326
327Name to insert in the SOA record if none set in the backend.
328
329.. _setting-default-soa-edit:
330
331``default-soa-edit``
332--------------------
333
334- String
335- Default: empty
336
337Use this soa-edit value for all zones if no
338:ref:`metadata-soa-edit` metadata value is set.
339
340.. _setting-default-soa-edit-signed:
341
342``default-soa-edit-signed``
343---------------------------
344
345- String
346- Default: empty
347
348Use this soa-edit value for all signed zones if no
349:ref:`metadata-soa-edit` metadata value is set.
350Overrides :ref:`setting-default-soa-edit`
351
352.. _setting-default-soa-mail:
353
354``default-soa-mail``
355--------------------
356
357- String
358
359Mail address to insert in the SOA record if none set in the backend.
360
361.. _setting-default-ttl:
362
363``default-ttl``
364---------------
365
366- Integer
367- Default: 3600
368
369TTL to use when none is provided.
370
371.. _setting-default-zsk-algorithms:
c01b3507 372.. _setting-default-zsk-algorithm:
0e2063c3 373
c01b3507 374``default-zsk-algorithm``
0e2063c3
PL
375--------------------------
376
377- String
378- Default: (empty)
379
c01b3507
PL
380.. versionchanged:: 4.1.0
381 Renamed from ``default-zsk-algorithms``. Does no longer support multiple algorithm names.
382
0e2063c3 383The algorithm that should be used for the ZSK when running
af28a1c2 384:doc:`pdnsutil secure-zone <manpages/pdnsutil.1>` or using the :doc:`Zone API endpoint <http-api/cryptokey>`
28080ce6
PL
385to enable DNSSEC. Must be one of:
386
387* rsamd5
388* dh
389* dsa
390* ecc
391* rsasha1
392* rsasha256
0e2063c3 393* rsasha512
28080ce6
PL
394* ecc-gost
395* ecdsa256 (ECDSA P-256 with SHA256)
396* ecdsa384 (ECDSA P-384 with SHA384)
0e2063c3
PL
397* ed25519
398
28080ce6
PL
399.. note::
400 Actual supported algorithms depend on the crypto-libraries
401 PowerDNS was compiled against. To check the supported DNSSEC algoritms
402 in your build of PowerDNS, run ``pdnsutil list-algorithms``.
403
0e2063c3
PL
404.. _setting-default-zsk-size:
405
406``default-zsk-size``
407--------------------
408
409- Integer
c01b3507 410- Default: 0 (automatic default for `default-zsk-algorithm`_)
0e2063c3
PL
411
412The default keysize for the ZSK generated with :doc:`pdnsutil secure-zone <dnssec/pdnsutil>`.
28080ce6 413Only relevant for algorithms with non-fixed keysizes (like RSA).
0e2063c3
PL
414
415.. _setting-direct-dnskey:
416
417``direct-dnskey``
418-----------------
419
420- Boolean
421- Default: no
422
423Read additional ZSKs from the records table/your BIND zonefile. If not
424set, DNSKEY records in the zonefiles are ignored.
425
426.. _setting-disable-axfr:
427
428``disable-axfr``
429----------------
430
431- Boolean
432- Default: no
433
434Do not allow zone transfers.
435
436.. _setting-disable-axfr-rectify:
437
438``disable-axfr-rectify``
439------------------------
440
441- Boolean
442- Default: no
443
444Disable the rectify step during an outgoing AXFR. Only required for
445regression testing.
446
447.. _setting-disable-syslog:
448
449``disable-syslog``
450------------------
451
452- Boolean
453- Default: no
454
455Do not log to syslog, only to stdout. Use this setting when running
456inside a supervisor that handles logging (like systemd).
457
964d0eb6 458.. warning::
0e2063c3
PL
459 Do not use this setting in combination with :ref:`setting-daemon` as all
460 logging will disappear.
461
462.. _setting-disable-tcp:
463
464``disable-tcp``
465---------------
466
467- Boolean
468- Default: no
469
470Do not listen to TCP queries. Breaks RFC compliance.
471
472.. _setting-distributor-threads:
473
474``distributor-threads``
475-----------------------
476
477- Integer
478- Default: 3
479
480Number of Distributor (backend) threads to start per receiver thread.
481See :doc:`performance`.
482
483.. _setting-dname-processing:
484
485``dname-processing``
486--------------------
487
488- Boolean
489- Default: no
490
491Synthesise CNAME records from DNAME records as required. This
492approximately doubles query load. **Do not combine with DNSSEC!**
493
494.. _setting-dnssec-key-cache-ttl:
495
496``dnssec-key-cache-ttl``
497------------------------
498
499- Integer
500- Default: 30
501
502Seconds to cache DNSSEC keys from the database. A value of 0 disables
503caching.
504
505.. _setting-dnsupdate:
506
507``dnsupdate``
508-------------
509
510- Boolean
511- Default: no
512
513Enable/Disable DNS update (RFC2136) support. See :doc:`dnsupdate` for more.
514
515.. _setting-do-ipv6-additional-processing:
516
517``do-ipv6-additional-processing``
518---------------------------------
519
520- Boolean
521- Default: yes
522
523Perform AAAA additional processing. This sends AAAA records in the
524ADDITIONAL section when sending a referral.
525
526.. _setting-domain-metadata-cache-ttl:
527
528``domain-metadata-cache-ttl``
529-----------------------------
530
531- Integer
532- Default: 60
533
534Seconds to cache domain metadata from the database. A value of 0
535disables caching.
536
537.. _setting-edns-subnet-processing:
538
539``edns-subnet-processing``
540--------------------------
541
542- Boolean
543- Default: no
544
545Enables EDNS subnet processing, for backends that support it.
546
af68014f
CHB
547.. _setting-enable-lua-records:
548
549``enable-lua-records``
550--------------------------
551
552- Boolean
553- Default: no
554
555Enable globally the LUA records feature
556
0e2063c3
PL
557.. _setting-entropy-source:
558
559``entropy-source``
560------------------
561
562- Path
563- Default: /dev/urandom
564
565Entropy source file to use.
566
567.. _setting-expand-alias:
568
569``expand-alias``
570----------------
571
572- Boolean
573- Default: no
574- Since: 4.1.0
575
576If this is enabled, ALIAS records are expanded (synthesised to their
577A/AAAA).
578
579If this is disabled (the default), ALIAS records will not expanded and
580the server will will return NODATA for A/AAAA queries for such names.
581
582**note**: :ref:`setting-resolver` must also be set for ALIAS
583expansion to work!
584
585**note**: In PowerDNS Authoritative Server 4.0.x, this setting did not
586exist and ALIAS was always expanded.
587
588.. _setting-forward-dnsupdate:
589
590``forward-dnsupdate``
591---------------------
592
593- Boolean
594- Default: no
595
596Forward DNS updates sent to a slave to the master.
597
598.. _setting-forward-notify:
599
600``forward-notify``
601------------------
602
603- IP addresses, separated by commas
604
605IP addresses to forward received notifications to regardless of master
606or slave settings.
607
608.. note::
609 The intended use is in anycast environments where it might be
610 necessary for a proxy server to perform the AXFR. The usual checks are
611 performed before any received notification is forwarded.
612
613.. _setting-guardian:
614
615``guardian``
616------------
617
618- Boolean
619- Default: no
620
621Run within a guardian process. See :ref:`running-guardian`.
622
623.. _setting-include-dir:
624
625``include-dir``
626---------------
627
628- Path
629
630Directory to scan for additional config files. All files that end with
631.conf are loaded in order using ``POSIX`` as locale.
632
633.. _setting-launch:
634
635``launch``
636----------
637
638- Backend names, separated by commas
639
640Which backends to launch and order to query them in. Launches backends.
641In its most simple form, supply all backends that need to be launched.
642e.g.
643
644::
645
646 launch=bind,gmysql,remote
647
648If you find that you need to query a backend multiple times with
649different configuration, you can specify a name for later
650instantiations. e.g.:
651
652::
653
654 launch=gmysql,gmysql:server2
655
656In this case, there are 2 instances of the gmysql backend, one by the
657normal name and the second one is called 'server2'. The backend
658configuration item names change: e.g. ``gmysql-host`` is available to
659configure the ``host`` setting of the first or main instance, and
660``gmysql-server2-host`` for the second one.
661
ea4d3e1d
PD
662Running multiple instances of the bind backend is not allowed.
663
0e2063c3
PL
664.. _setting-load-modules:
665
666``load-modules``
667----------------
668
669- Paths, separated by commas
670
671If backends are available in nonstandard directories, specify their
672location here. Multiple files can be loaded if separated by commas. Only
673available in non-static distributions.
674
675.. _setting-local-address:
676
677``local-address``
678-----------------
679
680- IPv4 Addresses, separated by commas or whitespace
681- Default: 0.0.0.0
682
683Local IP address to which we bind. It is highly advised to bind to
684specific interfaces and not use the default 'bind to any'. This causes
685big problems if you have multiple IP addresses. Unix does not provide a
686way of figuring out what IP address a packet was sent to when binding to
687any.
688
b18fa400
PL
689.. _setting-log-timestamp:
690
691``log-timestamp``
692-----------------
693
694.. versionadded:: 4.1.0
695
696- Bool
697- Default: yes
698
699When printing log lines to stdout, prefix them with timestamps.
700Disable this if the process supervisor timestamps these lines already.
701
702.. note::
703 The systemd unit file supplied with the source code already disables timestamp printing
704
af68014f
CHB
705.. _setting-lua-record-exec-limit:
706
707``lua-record-exec-limit``
708-----------------------------
709
710- Integer
711- Default: 1000
712
713Limit LUA record scripts to ``lua-record-exec-limit`` instructions.
714Setting this to any value less than or equal to 0 will set no limit.
715
0e2063c3
PL
716.. _setting-non-local-bind:
717
718``non-local-bind``
719------------------
720
721- Boolean
722- Default: no
723
724Bind to addresses even if one or more of the
725:ref:`setting-local-address`'s do not exist on this server.
726Setting this option will enable the needed socket options to allow
727binding to non-local addresses. This feature is intended to facilitate
728ip-failover setups, but it may also mask configuration issues and for
729this reason it is disabled by default.
730
731.. _setting-lua-axfr-script:
732
733``lua-axfr-script``
734-------------------
735
736- String
737- Default: empty
738
739.. versionadded:: 4.1.0
740
84745505 741Script to be used to edit incoming AXFRs, see :ref:`modes-of-operation-axfrfilter`
0e2063c3
PL
742
743.. _setting-local-address-nonexist-fail:
744
745``local-address-nonexist-fail``
746-------------------------------
747
748- Boolean
749- Default: no
750
751Fail to start if one or more of the
752:ref:`setting-local-address`'s do not exist on this server.
753
754.. _setting-local-ipv6:
755
756``local-ipv6``
757--------------
758
759- IPv6 Addresses, separated by commas or whitespace
760- Default: '::'
761
762Local IPv6 address to which we bind. It is highly advised to bind to
763specific interfaces and not use the default 'bind to any'. This causes
764big problems if you have multiple IP addresses.
765
766.. _setting-local-ipv6-nonexist-fail:
767
768``local-ipv6-nonexist-fail``
769----------------------------
770
771- Boolean
772- Default: no
773
774Fail to start if one or more of the :ref:`setting-local-ipv6`
775addresses do not exist on this server.
776
777.. _setting-local-port:
778
779``local-port``
780--------------
781
782- Integer
783- Default: 53
784
785The port on which we listen. Only one port possible.
786
787.. _setting-log-dns-details:
788
789``log-dns-details``
790-------------------
791
792- Boolean
793- Default: no
794
795If set to 'no', informative-only DNS details will not even be sent to
796syslog, improving performance.
797
798.. _setting-logging-facility:
799
800``logging-facility``
801--------------------
802
803If set to a digit, logging is performed under this LOCAL facility. See :ref:`logging-to-syslog`.
804Do not pass names like 'local0'!
805
806.. _setting-loglevel:
807
808``loglevel``
809------------
810
811- Integer
812- Default: 4
813
e7e225a7
PL
814Amount of logging. Higher is more. Do not set below 3. Corresponds to "syslog" level values,
815e.g. error = 3, warning = 4, notice = 5, info = 6
0e2063c3
PL
816
817.. _setting-log-dns-queries:
818
819``log-dns-queries``
820-------------------
821
822- Boolean
823- Default: no
824
825Tell PowerDNS to log all incoming DNS queries. This will lead to a lot
826of logging! Only enable for debugging! Set :ref:`setting-loglevel`
827to at least 5 to see the logs.
828
829.. _setting-lua-prequery-script:
830
831``lua-prequery-script``
832-----------------------
833
834- Path
835
836Lua script to run before answering a query. This is a feature used
837internally for regression testing. The API of this functionality is not
838guaranteed to be stable, and is in fact likely to change.
839
840.. _setting-master:
841
842``master``
843----------
844
845- Boolean
846- Default: no
847
848Turn on master support. See :ref:`master-operation`.
849
850.. _setting-max-cache-entries:
851
852``max-cache-entries``
853---------------------
854
855- Integer
856- Default: 1000000
857
858Maximum number of entries in the query cache. 1 million (the default)
859will generally suffice for most installations. Starting with 4.1, the
860packet and query caches are distinct so you might also want to see
861``max-packet-cache-entries``.
862
863.. _setting-max-ent-entries:
864
865``max-ent-entries``
866-------------------
867
868- Integer
869- Default: 100000
870
871Maximum number of empty non-terminals to add to a zone. This is a
872protection measure to avoid database explosion due to long names.
873
874.. _setting-max-nsec3-iterations:
875
876``max-nsec3-iterations``
877------------------------
878
879- Integer
880- Default: 500
881
882Limit the number of NSEC3 hash iterations
883
884.. _setting-max-packet-cache-entries:
885
886``max-packet-cache-entries``
887----------------------------
888
889- Integer
890- Default: 1000000
891
892Maximum number of entries in the packet cache. 1 million (the default)
893will generally suffice for most installations. This setting has been
894introduced in 4.1, previous used the ``max-cache-entries`` setting for
895both the packet and query caches.
896
897.. _setting-max-queue-length:
898
899``max-queue-length``
900--------------------
901
902- Integer
903- Default: 5000
904
905If this many packets are waiting for database attention, consider the
906situation hopeless and respawn.
907
908.. _setting-max-signature-cache-entries:
909
910``max-signature-cache-entries``
911-------------------------------
912
913- Integer
914- Default: 2^64 (on 64-bit systems)
915
916Maximum number of signatures cache entries
917
918.. _setting-max-tcp-connection-duration:
919
920``max-tcp-connection-duration``
921-------------------------------
922
923- Integer
924- Default: 0
925
926Maximum time in seconds that a TCP DNS connection is allowed to stay
927open. 0 means unlimited. Note that exchanges related to an AXFR or IXFR
928are not affected by this setting.
929
930.. _setting-max-tcp-connections:
931
932``max-tcp-connections``
933-----------------------
934
935- Integer
936- Default: 20
937
938Allow this many incoming TCP DNS connections simultaneously.
939
940.. _setting-max-tcp-connections-per-client:
941
942``max-tcp-connections-per-client``
943----------------------------------
944
945- Integer
946- Default: 0
947
948Maximum number of simultaneous TCP connections per client. 0 means
949unlimited.
950
951.. _setting-max-tcp-transactions-per-conn:
952
953``max-tcp-transactions-per-conn``
954---------------------------------
955
956- Integer
957- Default: 0
958
959Allow this many DNS queries in a single TCP transaction. 0 means
960unlimited. Note that exchanges related to an AXFR or IXFR are not
961affected by this setting.
962
963.. _setting-module-dir:
964
965``module-dir``
966--------------
967
968- Path
969
970Directory for modules. Default depends on ``PKGLIBDIR`` during
971compile-time.
972
973.. _setting-negquery-cache-ttl:
974
975``negquery-cache-ttl``
976----------------------
977
978- Integer
979- Default: 60
980
981Seconds to store queries with no answer in the Query Cache. See ref:`query-cache`.
982
983.. _setting-no-config:
984
985``no-config``
986-------------
987
988- Boolean
989- Default: no
990
991Do not attempt to read the configuration file.
992
993.. _setting-no-shuffle:
994
995``no-shuffle``
996--------------
997
998- Boolean
999- Default: no
1000
1001Do not attempt to shuffle query results, used for regression testing.
1002
1003.. _setting-overload-queue-length:
1004
1005``overload-queue-length``
1006-------------------------
1007
1008- Integer
1009- Default: 0 (disabled)
1010
1011If this many packets are waiting for database attention, answer any new
1012questions strictly from the packet cache.
1013
1014.. _setting-reuseport:
1015
1016``reuseport``
1017-------------
1018
1019- Boolean
1020- Default: No
1021
1022On Linux 3.9 and some BSD kernels the ``SO_REUSEPORT`` option allows
1023each receiver-thread to open a new socket on the same port which allows
1024for much higher performance on multi-core boxes. Setting this option
1025will enable use of ``SO_REUSEPORT`` when available and seamlessly fall
1026back to a single socket when it is not available. A side-effect is that
1027you can start multiple servers on the same IP/port combination which may
1028or may not be a good idea. You could use this to enable transparent
1029restarts, but it may also mask configuration issues and for this reason
1030it is disabled by default.
1031
e97cb679 1032.. _setting-rng:
d4033dc3 1033
e97cb679
AT
1034``rng``
1035-------
1036
1037- String
1038- Default: auto
1039
1040Specify which random number generator to use. Permissible choises are
1041 - auto - choose automatically
1042 - sodium - Use libsodium ``randombytes_uniform``
1043 - openssl - Use libcrypto ``RAND_bytes``
1044 - getrandom - Use libc getrandom, falls back to urandom if it does not really work
1045 - arc4random - Use BSD ``arc4random_uniform``
1046 - urandom - Use ``/dev/urandom``
1047 - kiss - Use simple settable deterministic RNG. **FOR TESTING PURPOSES ONLY!**
1048
1049.. note::
1050 Not all choises are available on all systems.
1051
0e2063c3
PL
1052.. _setting-security-poll-suffix:
1053
1054``security-poll-suffix``
1055------------------------
1056
1057- String
1058- Default: secpoll.powerdns.com.
1059
1060Domain name from which to query security update notifications. Setting
1061this to an empty string disables secpoll.
1062
1063.. _setting-server-id:
1064
1065``server-id``
1066-------------
1067
1068- String
1069- Default: The hostname of the server
1070
1071This is the server ID that will be returned on an EDNS NSID query.
1072
1073.. _setting-only-notify:
1074
1075``only-notify``
1076---------------
1077
1078- IP Ranges, separated by commas or whitespace
1079- Default: 0.0.0.0/0, ::/0
1080
1081For type=MASTER zones (or SLAVE zones with slave-renotify enabled)
1082PowerDNS automatically sends NOTIFYs to the name servers specified in
1083the NS records. By specifying networks/mask as whitelist, the targets
1084can be limited. The default is to notify the world. To completely
1085disable these NOTIFYs set ``only-notify`` to an empty value. Independent
1086of this setting, the IP addresses or netmasks configured with
1087:ref:`setting-also-notify` and ``ALSO-NOTIFY`` domain metadata
1088always receive AXFR NOTIFYs.
1089
22928c2f
PL
1090IP addresses and netmasks can be excluded by prefixing them with a ``!``.
1091To notify all IP addresses apart from the 192.168.0.0/24 subnet use the following::
1092
1093 only-notify=0.0.0.0/0, ::/0, !192.168.0.0/24
1094
0e2063c3
PL
1095.. note::
1096 Even if NOTIFYs are limited by a netmask, PowerDNS first has to
1097 resolve all the hostnames to check their IP addresses against the
1098 specified whitelist. The resolving may take considerable time,
1099 especially if those hostnames are slow to resolve. If you do not need to
1100 NOTIFY the slaves defined in the NS records (e.g. you are using another
1101 method to distribute the zone data to the slaves), then set
1102 :ref:`setting-only-notify` to an empty value and specify the notification targets
1103 explicitly using :ref:`setting-also-notify` and/or
1104 :ref:`metadata-also-notify` domain metadata to avoid this potential bottleneck.
1105
1106.. _setting-out-of-zone-additional-processing:
1107
1108``out-of-zone-additional-processing``
1109-------------------------------------
1110
1111- Boolean
1112- Default: yes
1113
1114Do out of zone additional processing. This means that if a malicious
1115user adds a '.com' zone to your server, it is not used for other domains
1116and will not contaminate answers. Do not enable this setting if you run
1117a public DNS service with untrusted users.
1118
1119The docs had previously indicated that the default was "no", but the
1120default has been "yes" since 2005.
1121
1122.. _setting-outgoing-axfr-expand-alias:
1123
1124``outgoing-axfr-expand-alias``
1125------------------------------
1126
1127- Boolean
1128- Default: no
1129
1130If this is enabled, ALIAS records are expanded (synthesised to their
1131A/AAAA) during outgoing AXFR. This means slaves will not automatically
1132follow changes in those A/AAAA records unless you AXFR regularly!
1133
1134If this is disabled (the default), ALIAS records are sent verbatim
1135during outgoing AXFR. Note that if your slaves do not support ALIAS,
1136they will return NODATA for A/AAAA queries for such names.
1137
1138.. _setting-prevent-self-notification:
1139
1140``prevent-self-notification``
1141-----------------------------
1142
1143- Boolean
1144- Default: yes
1145
1146PowerDNS Authoritative Server attempts to not send out notifications to
1147itself in master mode. In very complicated situations we could guess
1148wrong and not notify a server that should be notified. In that case, set
1149prevent-self-notification to "no".
1150
1151.. _setting-query-cache-ttl:
1152
1153``query-cache-ttl``
1154-------------------
1155
1156- Integer
1157- Default: 20
1158
1159Seconds to store queries with an answer in the Query Cache. See :ref:`query-cache`.
1160
1161.. _setting-query-local-address:
1162
1163``query-local-address``
1164-----------------------
1165
1166- IPv4 Address
1167- Default: 0.0.0.0
1168
1169The IP address to use as a source address for sending queries. Useful if
1170you have multiple IPs and PowerDNS is not bound to the IP address your
1171operating system uses by default for outgoing packets.
1172
1173.. _setting-query-local-address6:
1174
1175``query-local-address6``
1176------------------------
1177
1178- IPv6 Address
1179- Default: '::'
1180
1181Source IP address for sending IPv6 queries.
1182
1183.. _setting-query-logging:
1184
1185``query-logging``
1186-----------------
1187
1188- Boolean
1189- Default: no
1190
1191Boolean, hints to a backend that it should log a textual representation
1192of queries it performs. Can be set at runtime.
1193
1194.. _setting-queue-limit:
1195
1196``queue-limit``
1197---------------
1198
1199- Integer
1200- Default: 1500
1201
1202Maximum number of milliseconds to queue a query. See :doc:`performance`.
1203
1204.. _setting-receiver-threads:
1205
1206``receiver-threads``
1207--------------------
1208
1209- Integer
1210- Default: 1
1211
1212Number of receiver (listening) threads to start. See :doc:`performance`.
1213
1214.. _setting-recursive-cache-ttl:
1215
1216``recursive-cache-ttl``
1217-----------------------
1218
1219- Integer
1220- Default: 10
1221- Removed in: 4.1.0
1222
1223Seconds to store recursive packets in the :ref:`packet-cache`.
1224
1225.. _setting-recursor:
1226
1227``recursor``
1228------------
1229
1230- IP Address
1231
1232.. deprecated:: 4.1.0
1233
1234If set, recursive queries will be handed to the recursor specified here.
1235
1236.. _setting-resolver:
1237
1238``resolver``
1239------------
1240
1241- IP Addresses with optional port, separated by commas
1242- Added in: 4.1.0
1243
1244Use these resolver addresses for ALIAS and the internal stub resolver.
1245If this is not set, ``/etc/resolv.conf`` is parsed for upstream
1246resolvers.
1247
1248.. _setting-retrieval-threads:
1249
1250``retrieval-threads``
1251---------------------
1252
1253- Integer
1254- Default: 2
1255
1256Number of AXFR slave threads to start.
1257
ac340505
KD
1258.. _setting-send-signed-notify:
1259
1260``send-signed-notify``
1261----------
1262
1263- Boolean
1264- Default: yes
1265
1266If yes, outgoing NOTIFYs will be signed if a TSIG key is configured for the zone.
1267If there are multiple TSIG keys configured for a domain, PowerDNS will use the
1268first one retrieved from the backend, which may not be the correct one for the
f3a29133 1269respective slave. Hence, in setups with multiple slaves with different TSIG keys
ac340505
KD
1270it may be required to send NOTIFYs unsigned.
1271
0e2063c3
PL
1272.. _setting-setgid:
1273
1274``setgid``
1275----------
1276
1277- String
1278
1279If set, change group id to this gid for more security. See :doc:`security`.
1280
1281.. _setting-setuid:
1282
1283``setuid``
1284----------
1285
1286- String
1287
1288If set, change user id to this uid for more security. See :doc:`security`.
1289
1290.. _setting-slave:
1291
1292``slave``
1293---------
1294
1295- Boolean
1296- Default: no
1297
1298Turn on slave support. See :ref:`slave-operation`.
1299
1300.. _setting-slave-cycle-interval:
1301
1302``slave-cycle-interval``
1303------------------------
1304
1305- Integer
1306- 60
1307
1308On a master, this is the amounts of seconds between the master checking
1309the SOA serials in its database to determine to send out NOTIFYs to the
1310slaves. On slaves, this is the number of seconds between the slave
1311checking for updates to zones.
1312
1313.. _setting-slave-renotify:
1314
1315``slave-renotify``
1316------------------
1317
1318- Boolean
1319- Default: no
1320
1321This setting will make PowerDNS renotify the slaves after an AXFR is
1322*received* from a master. This is useful when using when running a
1323signing-slave.
1324
1325.. _setting-signing-threads:
1326
1327``signing-threads``
1328-------------------
1329
1330- Integer
1331- Default: 3
1332
1333Tell PowerDNS how many threads to use for signing. It might help improve
1334signing speed by changing this number.
1335
1336.. _setting-soa-expire-default:
1337
1338``soa-expire-default``
1339----------------------
1340
1341- Integer
1342- Default: 604800
1343
1344Default :ref:`types-soa` expire.
1345
1346.. _setting-soa-minimum-ttl:
1347
1348``soa-minimum-ttl``
1349-------------------
1350
1351- Integer
1352- Default: 3600
1353
1354Default :ref:`types-soa` minimum ttl.
1355
1356.. _setting-soa-refresh-default:
1357
1358``soa-refresh-default``
1359-----------------------
1360
1361- Integer
1362- Default: 10800
1363
1364Default :ref:`types-soa` refresh.
1365
1366.. _setting-soa-retry-default:
1367
1368``soa-retry-default``
1369---------------------
1370
1371- Integer
1372- Default: 3600
1373
1374Default :ref:`types-soa` retry.
1375
1376.. _setting-socket-dir:
1377
1378``socket-dir``
1379--------------
1380
1381- Path
1382
1383Where the controlsocket will live. The default depends on
1384``LOCALSTATEDIR`` during compile-time (usually ``/var/run`` or
1385``/run``). See :ref:`control-socket`.
1386
1387This path will also contain the pidfile for this instance of PowerDNS
1388called ``pdns.pid`` by default. See :ref:`setting-config-name`
1389and :doc:`Virtual Hosting <guides/virtual-instances>` how this can differ.
1390
b8013977
KM
1391.. _setting-supermaster:
1392
1393``supermaster``
d4033dc3 1394---------------
b8013977
KM
1395
1396- Boolean
1397- Default: no
1398
1399.. versionadded:: 4.2.0
1400
d4033dc3 1401Turn on supermaster support. See :ref:`supermaster-operation`.
b8013977 1402
0e2063c3
PL
1403.. _setting-tcp-control-address:
1404
1405``tcp-control-address``
1406-----------------------
1407
1408- IP Address
1409
1410Address to bind to for TCP control.
1411
1412.. _setting-tcp-control-port:
1413
1414``tcp-control-port``
1415--------------------
1416
1417- Integer
1418- Default: 53000
1419
1420Port to bind to for TCP control.
1421
1422.. _setting-tcp-control-range:
1423
1424``tcp-control-range``
1425---------------------
1426
1427- IP Ranges, separated by commas or whitespace
1428
1429Limit TCP control to a specific client range.
1430
1431.. _setting-tcp-control-secret:
1432
1433``tcp-control-secret``
1434----------------------
1435
1436- String
1437
1438Password for TCP control.
1439
1440.. _setting-tcp-fast-open:
1441
1442``tcp-fast-open``
1443-----------------
1444
1445- Integer
1446- Default: 0 (Disabled)
1447
1448.. versionadded:: 4.1.0
1449
1450Enable TCP Fast Open support, if available, on the listening sockets.
1451The numerical value supplied is used as the queue size, 0 meaning
1452disabled.
1453
1454.. _setting-tcp-idle-timeout:
1455
1456``tcp-idle-timeout``
1457--------------------
1458
1459- Integer
1460- Default: 5
1461
1462Maximum time in seconds that a TCP DNS connection is allowed to stay
1463open while being idle, meaning without PowerDNS receiving or sending
1464even a single byte.
1465
1466.. _setting-traceback-handler:
1467
1468``traceback-handler``
1469---------------------
1470
1471- Boolean
1472- Default: yes
1473
1474Enable the Linux-only traceback handler.
1475
1476.. _setting-trusted-notification-proxy:
1477
1478``trusted-notification-proxy``
1479------------------------------
1480
1481- String
1482
1483IP address of incoming notification proxy
1484
1485.. _setting-udp-truncation-threshold:
1486
1487``udp-truncation-threshold``
1488----------------------------
1489
1490- Integer
1491- Default: 1680
1492
1493EDNS0 allows for large UDP response datagrams, which can potentially
1494raise performance. Large responses however also have downsides in terms
1495of reflection attacks. Up till PowerDNS Authoritative Server 3.3, the
1496truncation limit was set at 1680 bytes, regardless of EDNS0 buffer size
1497indications from the client. Beyond 3.3, this setting makes our
1498truncation limit configurable. Maximum value is 65535, but values above
14994096 should probably not be attempted.
1500
1501.. _setting-version-string:
1502
1503``version-string``
1504------------------
1505
1506- Any of: ``anonymous``, ``powerdns``, ``full``, String
1507- Default: full
1508
1509When queried for its version over DNS
1510(``dig chaos txt version.bind @pdns.ip.address``), PowerDNS normally
1511responds truthfully. With this setting you can overrule what will be
1512returned. Set the ``version-string`` to ``full`` to get the default
1513behaviour, to ``powerdns`` to just make it state
1514``served by PowerDNS - http://www.powerdns.com``. The ``anonymous``
1515setting will return a ServFail, much like Microsoft nameservers do. You
1516can set this response to a custom value as well.
1517
1518.. _setting-webserver:
1519
1520``webserver``
1521-------------
1522
1523- Boolean
1524- Default: no
1525
1526Start a webserver for monitoring. See :doc:`performance`".
1527
1528.. versionchanged:: 4.1.0
1529 It was necessary to enable the webserver to use the REST API, this is no longer the case.
1530
1531.. _setting-webserver-address:
1532
1533``webserver-address``
1534---------------------
1535
1536- IP Address
1537- Default: 127.0.0.1
1538
1539IP Address for webserver/API to listen on.
1540
1541.. _setting-webserver-allow-from:
1542
1543``webserver-allow-from``
1544------------------------
1545
1546- IP ranges, separated by commas or whitespace
be3e1477
RG
1547- Default: 127.0.0.1,::1
1548
1549.. versionchanged:: 4.1.0
1550
d1594faf 1551 Default is now 127.0.0.1,::1, was 0.0.0.0/0,::/0 before.
0e2063c3
PL
1552
1553Webserver/API access is only allowed from these subnets.
1554
1555.. _setting-webserver-password:
1556
1557``webserver-password``
1558----------------------
1559
1560- String
1561
1562The plaintext password required for accessing the webserver.
1563
1564.. _setting-webserver-port:
1565
1566``webserver-port``
1567------------------
1568
1569- Integer
1570- Default: 8001
1571
1572The port where webserver/API will listen on.
1573
1574.. _setting-webserver-print-arguments:
1575
1576``webserver-print-arguments``
1577-----------------------------
1578
1579- Boolean
1580- Default: no
1581
1582If the webserver should print arguments.
1583
1584.. _setting-write-pid:
1585
1586``write-pid``
1587-------------
1588
1589- Boolean
1590- Default: yes
1591
1592If a PID file should be written.
1593
1594.. _setting-xfr-max-received-mbytes:
1595
1596``xfr-max-received-mbytes``
1597---------------------------
1598
1599- Integer
1600- Default: 100
1601
1602Specifies the maximum number of received megabytes allowed on an
1603incoming AXFR/IXFR update, to prevent resource exhaustion. A value of 0
1604means no restriction.