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