]> git.ipfire.org Git - thirdparty/pdns.git/blame - docs/settings.rst
realign ucontext stack after #6719
[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
28080ce6
PL
288:doc:`pdnsutil secure-zone <manpages/pdnsutil.1>` or using the :doc:`Zone API endpoint <http-api/endpoint-zones>`
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
28080ce6
PL
384:doc:`pdnsutil secure-zone <manpages/pdnsutil.1>` or using the :doc:`Zone API endpoint <http-api/endpoint-zones>`
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
547.. _setting-entropy-source:
548
549``entropy-source``
550------------------
551
552- Path
553- Default: /dev/urandom
554
555Entropy source file to use.
556
557.. _setting-expand-alias:
558
559``expand-alias``
560----------------
561
562- Boolean
563- Default: no
564- Since: 4.1.0
565
566If this is enabled, ALIAS records are expanded (synthesised to their
567A/AAAA).
568
569If this is disabled (the default), ALIAS records will not expanded and
570the server will will return NODATA for A/AAAA queries for such names.
571
572**note**: :ref:`setting-resolver` must also be set for ALIAS
573expansion to work!
574
575**note**: In PowerDNS Authoritative Server 4.0.x, this setting did not
576exist and ALIAS was always expanded.
577
578.. _setting-forward-dnsupdate:
579
580``forward-dnsupdate``
581---------------------
582
583- Boolean
584- Default: no
585
586Forward DNS updates sent to a slave to the master.
587
588.. _setting-forward-notify:
589
590``forward-notify``
591------------------
592
593- IP addresses, separated by commas
594
595IP addresses to forward received notifications to regardless of master
596or slave settings.
597
598.. note::
599 The intended use is in anycast environments where it might be
600 necessary for a proxy server to perform the AXFR. The usual checks are
601 performed before any received notification is forwarded.
602
603.. _setting-guardian:
604
605``guardian``
606------------
607
608- Boolean
609- Default: no
610
611Run within a guardian process. See :ref:`running-guardian`.
612
613.. _setting-include-dir:
614
615``include-dir``
616---------------
617
618- Path
619
620Directory to scan for additional config files. All files that end with
621.conf are loaded in order using ``POSIX`` as locale.
622
623.. _setting-launch:
624
625``launch``
626----------
627
628- Backend names, separated by commas
629
630Which backends to launch and order to query them in. Launches backends.
631In its most simple form, supply all backends that need to be launched.
632e.g.
633
634::
635
636 launch=bind,gmysql,remote
637
638If you find that you need to query a backend multiple times with
639different configuration, you can specify a name for later
640instantiations. e.g.:
641
642::
643
644 launch=gmysql,gmysql:server2
645
646In this case, there are 2 instances of the gmysql backend, one by the
647normal name and the second one is called 'server2'. The backend
648configuration item names change: e.g. ``gmysql-host`` is available to
649configure the ``host`` setting of the first or main instance, and
650``gmysql-server2-host`` for the second one.
651
652.. _setting-load-modules:
653
654``load-modules``
655----------------
656
657- Paths, separated by commas
658
659If backends are available in nonstandard directories, specify their
660location here. Multiple files can be loaded if separated by commas. Only
661available in non-static distributions.
662
663.. _setting-local-address:
664
665``local-address``
666-----------------
667
668- IPv4 Addresses, separated by commas or whitespace
669- Default: 0.0.0.0
670
671Local IP address to which we bind. It is highly advised to bind to
672specific interfaces and not use the default 'bind to any'. This causes
673big problems if you have multiple IP addresses. Unix does not provide a
674way of figuring out what IP address a packet was sent to when binding to
675any.
676
b18fa400
PL
677.. _setting-log-timestamp:
678
679``log-timestamp``
680-----------------
681
682.. versionadded:: 4.1.0
683
684- Bool
685- Default: yes
686
687When printing log lines to stdout, prefix them with timestamps.
688Disable this if the process supervisor timestamps these lines already.
689
690.. note::
691 The systemd unit file supplied with the source code already disables timestamp printing
692
0e2063c3
PL
693.. _setting-non-local-bind:
694
695``non-local-bind``
696------------------
697
698- Boolean
699- Default: no
700
701Bind to addresses even if one or more of the
702:ref:`setting-local-address`'s do not exist on this server.
703Setting this option will enable the needed socket options to allow
704binding to non-local addresses. This feature is intended to facilitate
705ip-failover setups, but it may also mask configuration issues and for
706this reason it is disabled by default.
707
708.. _setting-lua-axfr-script:
709
710``lua-axfr-script``
711-------------------
712
713- String
714- Default: empty
715
716.. versionadded:: 4.1.0
717
718Script to be used to edit incoming AXFRs, see :ref:_modes-of-operation-axfrfilter`
719
720.. _setting-local-address-nonexist-fail:
721
722``local-address-nonexist-fail``
723-------------------------------
724
725- Boolean
726- Default: no
727
728Fail to start if one or more of the
729:ref:`setting-local-address`'s do not exist on this server.
730
731.. _setting-local-ipv6:
732
733``local-ipv6``
734--------------
735
736- IPv6 Addresses, separated by commas or whitespace
737- Default: '::'
738
739Local IPv6 address to which we bind. It is highly advised to bind to
740specific interfaces and not use the default 'bind to any'. This causes
741big problems if you have multiple IP addresses.
742
743.. _setting-local-ipv6-nonexist-fail:
744
745``local-ipv6-nonexist-fail``
746----------------------------
747
748- Boolean
749- Default: no
750
751Fail to start if one or more of the :ref:`setting-local-ipv6`
752addresses do not exist on this server.
753
754.. _setting-local-port:
755
756``local-port``
757--------------
758
759- Integer
760- Default: 53
761
762The port on which we listen. Only one port possible.
763
764.. _setting-log-dns-details:
765
766``log-dns-details``
767-------------------
768
769- Boolean
770- Default: no
771
772If set to 'no', informative-only DNS details will not even be sent to
773syslog, improving performance.
774
775.. _setting-logging-facility:
776
777``logging-facility``
778--------------------
779
780If set to a digit, logging is performed under this LOCAL facility. See :ref:`logging-to-syslog`.
781Do not pass names like 'local0'!
782
783.. _setting-loglevel:
784
785``loglevel``
786------------
787
788- Integer
789- Default: 4
790
791Amount of logging. Higher is more. Do not set below 3
792
793.. _setting-log-dns-queries:
794
795``log-dns-queries``
796-------------------
797
798- Boolean
799- Default: no
800
801Tell PowerDNS to log all incoming DNS queries. This will lead to a lot
802of logging! Only enable for debugging! Set :ref:`setting-loglevel`
803to at least 5 to see the logs.
804
805.. _setting-lua-prequery-script:
806
807``lua-prequery-script``
808-----------------------
809
810- Path
811
812Lua script to run before answering a query. This is a feature used
813internally for regression testing. The API of this functionality is not
814guaranteed to be stable, and is in fact likely to change.
815
816.. _setting-master:
817
818``master``
819----------
820
821- Boolean
822- Default: no
823
824Turn on master support. See :ref:`master-operation`.
825
826.. _setting-max-cache-entries:
827
828``max-cache-entries``
829---------------------
830
831- Integer
832- Default: 1000000
833
834Maximum number of entries in the query cache. 1 million (the default)
835will generally suffice for most installations. Starting with 4.1, the
836packet and query caches are distinct so you might also want to see
837``max-packet-cache-entries``.
838
839.. _setting-max-ent-entries:
840
841``max-ent-entries``
842-------------------
843
844- Integer
845- Default: 100000
846
847Maximum number of empty non-terminals to add to a zone. This is a
848protection measure to avoid database explosion due to long names.
849
850.. _setting-max-nsec3-iterations:
851
852``max-nsec3-iterations``
853------------------------
854
855- Integer
856- Default: 500
857
858Limit the number of NSEC3 hash iterations
859
860.. _setting-max-packet-cache-entries:
861
862``max-packet-cache-entries``
863----------------------------
864
865- Integer
866- Default: 1000000
867
868Maximum number of entries in the packet cache. 1 million (the default)
869will generally suffice for most installations. This setting has been
870introduced in 4.1, previous used the ``max-cache-entries`` setting for
871both the packet and query caches.
872
873.. _setting-max-queue-length:
874
875``max-queue-length``
876--------------------
877
878- Integer
879- Default: 5000
880
881If this many packets are waiting for database attention, consider the
882situation hopeless and respawn.
883
884.. _setting-max-signature-cache-entries:
885
886``max-signature-cache-entries``
887-------------------------------
888
889- Integer
890- Default: 2^64 (on 64-bit systems)
891
892Maximum number of signatures cache entries
893
894.. _setting-max-tcp-connection-duration:
895
896``max-tcp-connection-duration``
897-------------------------------
898
899- Integer
900- Default: 0
901
902Maximum time in seconds that a TCP DNS connection is allowed to stay
903open. 0 means unlimited. Note that exchanges related to an AXFR or IXFR
904are not affected by this setting.
905
906.. _setting-max-tcp-connections:
907
908``max-tcp-connections``
909-----------------------
910
911- Integer
912- Default: 20
913
914Allow this many incoming TCP DNS connections simultaneously.
915
916.. _setting-max-tcp-connections-per-client:
917
918``max-tcp-connections-per-client``
919----------------------------------
920
921- Integer
922- Default: 0
923
924Maximum number of simultaneous TCP connections per client. 0 means
925unlimited.
926
927.. _setting-max-tcp-transactions-per-conn:
928
929``max-tcp-transactions-per-conn``
930---------------------------------
931
932- Integer
933- Default: 0
934
935Allow this many DNS queries in a single TCP transaction. 0 means
936unlimited. Note that exchanges related to an AXFR or IXFR are not
937affected by this setting.
938
939.. _setting-module-dir:
940
941``module-dir``
942--------------
943
944- Path
945
946Directory for modules. Default depends on ``PKGLIBDIR`` during
947compile-time.
948
949.. _setting-negquery-cache-ttl:
950
951``negquery-cache-ttl``
952----------------------
953
954- Integer
955- Default: 60
956
957Seconds to store queries with no answer in the Query Cache. See ref:`query-cache`.
958
959.. _setting-no-config:
960
961``no-config``
962-------------
963
964- Boolean
965- Default: no
966
967Do not attempt to read the configuration file.
968
969.. _setting-no-shuffle:
970
971``no-shuffle``
972--------------
973
974- Boolean
975- Default: no
976
977Do not attempt to shuffle query results, used for regression testing.
978
979.. _setting-overload-queue-length:
980
981``overload-queue-length``
982-------------------------
983
984- Integer
985- Default: 0 (disabled)
986
987If this many packets are waiting for database attention, answer any new
988questions strictly from the packet cache.
989
990.. _setting-reuseport:
991
992``reuseport``
993-------------
994
995- Boolean
996- Default: No
997
998On Linux 3.9 and some BSD kernels the ``SO_REUSEPORT`` option allows
999each receiver-thread to open a new socket on the same port which allows
1000for much higher performance on multi-core boxes. Setting this option
1001will enable use of ``SO_REUSEPORT`` when available and seamlessly fall
1002back to a single socket when it is not available. A side-effect is that
1003you can start multiple servers on the same IP/port combination which may
1004or may not be a good idea. You could use this to enable transparent
1005restarts, but it may also mask configuration issues and for this reason
1006it is disabled by default.
1007
1008.. _setting-security-poll-suffix:
1009
1010``security-poll-suffix``
1011------------------------
1012
1013- String
1014- Default: secpoll.powerdns.com.
1015
1016Domain name from which to query security update notifications. Setting
1017this to an empty string disables secpoll.
1018
1019.. _setting-server-id:
1020
1021``server-id``
1022-------------
1023
1024- String
1025- Default: The hostname of the server
1026
1027This is the server ID that will be returned on an EDNS NSID query.
1028
1029.. _setting-only-notify:
1030
1031``only-notify``
1032---------------
1033
1034- IP Ranges, separated by commas or whitespace
1035- Default: 0.0.0.0/0, ::/0
1036
1037For type=MASTER zones (or SLAVE zones with slave-renotify enabled)
1038PowerDNS automatically sends NOTIFYs to the name servers specified in
1039the NS records. By specifying networks/mask as whitelist, the targets
1040can be limited. The default is to notify the world. To completely
1041disable these NOTIFYs set ``only-notify`` to an empty value. Independent
1042of this setting, the IP addresses or netmasks configured with
1043:ref:`setting-also-notify` and ``ALSO-NOTIFY`` domain metadata
1044always receive AXFR NOTIFYs.
1045
1046.. note::
1047 Even if NOTIFYs are limited by a netmask, PowerDNS first has to
1048 resolve all the hostnames to check their IP addresses against the
1049 specified whitelist. The resolving may take considerable time,
1050 especially if those hostnames are slow to resolve. If you do not need to
1051 NOTIFY the slaves defined in the NS records (e.g. you are using another
1052 method to distribute the zone data to the slaves), then set
1053 :ref:`setting-only-notify` to an empty value and specify the notification targets
1054 explicitly using :ref:`setting-also-notify` and/or
1055 :ref:`metadata-also-notify` domain metadata to avoid this potential bottleneck.
1056
1057.. _setting-out-of-zone-additional-processing:
1058
1059``out-of-zone-additional-processing``
1060-------------------------------------
1061
1062- Boolean
1063- Default: yes
1064
1065Do out of zone additional processing. This means that if a malicious
1066user adds a '.com' zone to your server, it is not used for other domains
1067and will not contaminate answers. Do not enable this setting if you run
1068a public DNS service with untrusted users.
1069
1070The docs had previously indicated that the default was "no", but the
1071default has been "yes" since 2005.
1072
1073.. _setting-outgoing-axfr-expand-alias:
1074
1075``outgoing-axfr-expand-alias``
1076------------------------------
1077
1078- Boolean
1079- Default: no
1080
1081If this is enabled, ALIAS records are expanded (synthesised to their
1082A/AAAA) during outgoing AXFR. This means slaves will not automatically
1083follow changes in those A/AAAA records unless you AXFR regularly!
1084
1085If this is disabled (the default), ALIAS records are sent verbatim
1086during outgoing AXFR. Note that if your slaves do not support ALIAS,
1087they will return NODATA for A/AAAA queries for such names.
1088
1089.. _setting-prevent-self-notification:
1090
1091``prevent-self-notification``
1092-----------------------------
1093
1094- Boolean
1095- Default: yes
1096
1097PowerDNS Authoritative Server attempts to not send out notifications to
1098itself in master mode. In very complicated situations we could guess
1099wrong and not notify a server that should be notified. In that case, set
1100prevent-self-notification to "no".
1101
1102.. _setting-query-cache-ttl:
1103
1104``query-cache-ttl``
1105-------------------
1106
1107- Integer
1108- Default: 20
1109
1110Seconds to store queries with an answer in the Query Cache. See :ref:`query-cache`.
1111
1112.. _setting-query-local-address:
1113
1114``query-local-address``
1115-----------------------
1116
1117- IPv4 Address
1118- Default: 0.0.0.0
1119
1120The IP address to use as a source address for sending queries. Useful if
1121you have multiple IPs and PowerDNS is not bound to the IP address your
1122operating system uses by default for outgoing packets.
1123
1124.. _setting-query-local-address6:
1125
1126``query-local-address6``
1127------------------------
1128
1129- IPv6 Address
1130- Default: '::'
1131
1132Source IP address for sending IPv6 queries.
1133
1134.. _setting-query-logging:
1135
1136``query-logging``
1137-----------------
1138
1139- Boolean
1140- Default: no
1141
1142Boolean, hints to a backend that it should log a textual representation
1143of queries it performs. Can be set at runtime.
1144
1145.. _setting-queue-limit:
1146
1147``queue-limit``
1148---------------
1149
1150- Integer
1151- Default: 1500
1152
1153Maximum number of milliseconds to queue a query. See :doc:`performance`.
1154
1155.. _setting-receiver-threads:
1156
1157``receiver-threads``
1158--------------------
1159
1160- Integer
1161- Default: 1
1162
1163Number of receiver (listening) threads to start. See :doc:`performance`.
1164
1165.. _setting-recursive-cache-ttl:
1166
1167``recursive-cache-ttl``
1168-----------------------
1169
1170- Integer
1171- Default: 10
1172- Removed in: 4.1.0
1173
1174Seconds to store recursive packets in the :ref:`packet-cache`.
1175
1176.. _setting-recursor:
1177
1178``recursor``
1179------------
1180
1181- IP Address
1182
1183.. deprecated:: 4.1.0
1184
1185If set, recursive queries will be handed to the recursor specified here.
1186
1187.. _setting-resolver:
1188
1189``resolver``
1190------------
1191
1192- IP Addresses with optional port, separated by commas
1193- Added in: 4.1.0
1194
1195Use these resolver addresses for ALIAS and the internal stub resolver.
1196If this is not set, ``/etc/resolv.conf`` is parsed for upstream
1197resolvers.
1198
1199.. _setting-retrieval-threads:
1200
1201``retrieval-threads``
1202---------------------
1203
1204- Integer
1205- Default: 2
1206
1207Number of AXFR slave threads to start.
1208
1209.. _setting-setgid:
1210
1211``setgid``
1212----------
1213
1214- String
1215
1216If set, change group id to this gid for more security. See :doc:`security`.
1217
1218.. _setting-setuid:
1219
1220``setuid``
1221----------
1222
1223- String
1224
1225If set, change user id to this uid for more security. See :doc:`security`.
1226
1227.. _setting-slave:
1228
1229``slave``
1230---------
1231
1232- Boolean
1233- Default: no
1234
1235Turn on slave support. See :ref:`slave-operation`.
1236
1237.. _setting-slave-cycle-interval:
1238
1239``slave-cycle-interval``
1240------------------------
1241
1242- Integer
1243- 60
1244
1245On a master, this is the amounts of seconds between the master checking
1246the SOA serials in its database to determine to send out NOTIFYs to the
1247slaves. On slaves, this is the number of seconds between the slave
1248checking for updates to zones.
1249
1250.. _setting-slave-renotify:
1251
1252``slave-renotify``
1253------------------
1254
1255- Boolean
1256- Default: no
1257
1258This setting will make PowerDNS renotify the slaves after an AXFR is
1259*received* from a master. This is useful when using when running a
1260signing-slave.
1261
1262.. _setting-signing-threads:
1263
1264``signing-threads``
1265-------------------
1266
1267- Integer
1268- Default: 3
1269
1270Tell PowerDNS how many threads to use for signing. It might help improve
1271signing speed by changing this number.
1272
1273.. _setting-soa-expire-default:
1274
1275``soa-expire-default``
1276----------------------
1277
1278- Integer
1279- Default: 604800
1280
1281Default :ref:`types-soa` expire.
1282
1283.. _setting-soa-minimum-ttl:
1284
1285``soa-minimum-ttl``
1286-------------------
1287
1288- Integer
1289- Default: 3600
1290
1291Default :ref:`types-soa` minimum ttl.
1292
1293.. _setting-soa-refresh-default:
1294
1295``soa-refresh-default``
1296-----------------------
1297
1298- Integer
1299- Default: 10800
1300
1301Default :ref:`types-soa` refresh.
1302
1303.. _setting-soa-retry-default:
1304
1305``soa-retry-default``
1306---------------------
1307
1308- Integer
1309- Default: 3600
1310
1311Default :ref:`types-soa` retry.
1312
1313.. _setting-socket-dir:
1314
1315``socket-dir``
1316--------------
1317
1318- Path
1319
1320Where the controlsocket will live. The default depends on
1321``LOCALSTATEDIR`` during compile-time (usually ``/var/run`` or
1322``/run``). See :ref:`control-socket`.
1323
1324This path will also contain the pidfile for this instance of PowerDNS
1325called ``pdns.pid`` by default. See :ref:`setting-config-name`
1326and :doc:`Virtual Hosting <guides/virtual-instances>` how this can differ.
1327
1328.. _setting-tcp-control-address:
1329
1330``tcp-control-address``
1331-----------------------
1332
1333- IP Address
1334
1335Address to bind to for TCP control.
1336
1337.. _setting-tcp-control-port:
1338
1339``tcp-control-port``
1340--------------------
1341
1342- Integer
1343- Default: 53000
1344
1345Port to bind to for TCP control.
1346
1347.. _setting-tcp-control-range:
1348
1349``tcp-control-range``
1350---------------------
1351
1352- IP Ranges, separated by commas or whitespace
1353
1354Limit TCP control to a specific client range.
1355
1356.. _setting-tcp-control-secret:
1357
1358``tcp-control-secret``
1359----------------------
1360
1361- String
1362
1363Password for TCP control.
1364
1365.. _setting-tcp-fast-open:
1366
1367``tcp-fast-open``
1368-----------------
1369
1370- Integer
1371- Default: 0 (Disabled)
1372
1373.. versionadded:: 4.1.0
1374
1375Enable TCP Fast Open support, if available, on the listening sockets.
1376The numerical value supplied is used as the queue size, 0 meaning
1377disabled.
1378
1379.. _setting-tcp-idle-timeout:
1380
1381``tcp-idle-timeout``
1382--------------------
1383
1384- Integer
1385- Default: 5
1386
1387Maximum time in seconds that a TCP DNS connection is allowed to stay
1388open while being idle, meaning without PowerDNS receiving or sending
1389even a single byte.
1390
1391.. _setting-traceback-handler:
1392
1393``traceback-handler``
1394---------------------
1395
1396- Boolean
1397- Default: yes
1398
1399Enable the Linux-only traceback handler.
1400
1401.. _setting-trusted-notification-proxy:
1402
1403``trusted-notification-proxy``
1404------------------------------
1405
1406- String
1407
1408IP address of incoming notification proxy
1409
1410.. _setting-udp-truncation-threshold:
1411
1412``udp-truncation-threshold``
1413----------------------------
1414
1415- Integer
1416- Default: 1680
1417
1418EDNS0 allows for large UDP response datagrams, which can potentially
1419raise performance. Large responses however also have downsides in terms
1420of reflection attacks. Up till PowerDNS Authoritative Server 3.3, the
1421truncation limit was set at 1680 bytes, regardless of EDNS0 buffer size
1422indications from the client. Beyond 3.3, this setting makes our
1423truncation limit configurable. Maximum value is 65535, but values above
14244096 should probably not be attempted.
1425
1426.. _setting-version-string:
1427
1428``version-string``
1429------------------
1430
1431- Any of: ``anonymous``, ``powerdns``, ``full``, String
1432- Default: full
1433
1434When queried for its version over DNS
1435(``dig chaos txt version.bind @pdns.ip.address``), PowerDNS normally
1436responds truthfully. With this setting you can overrule what will be
1437returned. Set the ``version-string`` to ``full`` to get the default
1438behaviour, to ``powerdns`` to just make it state
1439``served by PowerDNS - http://www.powerdns.com``. The ``anonymous``
1440setting will return a ServFail, much like Microsoft nameservers do. You
1441can set this response to a custom value as well.
1442
1443.. _setting-webserver:
1444
1445``webserver``
1446-------------
1447
1448- Boolean
1449- Default: no
1450
1451Start a webserver for monitoring. See :doc:`performance`".
1452
1453.. versionchanged:: 4.1.0
1454 It was necessary to enable the webserver to use the REST API, this is no longer the case.
1455
1456.. _setting-webserver-address:
1457
1458``webserver-address``
1459---------------------
1460
1461- IP Address
1462- Default: 127.0.0.1
1463
1464IP Address for webserver/API to listen on.
1465
1466.. _setting-webserver-allow-from:
1467
1468``webserver-allow-from``
1469------------------------
1470
1471- IP ranges, separated by commas or whitespace
be3e1477
RG
1472- Default: 127.0.0.1,::1
1473
1474.. versionchanged:: 4.1.0
1475
1476 Default is now 127.0.0.1,::1, was 0.0.0.0,::/0 before.
0e2063c3
PL
1477
1478Webserver/API access is only allowed from these subnets.
1479
1480.. _setting-webserver-password:
1481
1482``webserver-password``
1483----------------------
1484
1485- String
1486
1487The plaintext password required for accessing the webserver.
1488
1489.. _setting-webserver-port:
1490
1491``webserver-port``
1492------------------
1493
1494- Integer
1495- Default: 8001
1496
1497The port where webserver/API will listen on.
1498
1499.. _setting-webserver-print-arguments:
1500
1501``webserver-print-arguments``
1502-----------------------------
1503
1504- Boolean
1505- Default: no
1506
1507If the webserver should print arguments.
1508
1509.. _setting-write-pid:
1510
1511``write-pid``
1512-------------
1513
1514- Boolean
1515- Default: yes
1516
1517If a PID file should be written.
1518
1519.. _setting-xfr-max-received-mbytes:
1520
1521``xfr-max-received-mbytes``
1522---------------------------
1523
1524- Integer
1525- Default: 100
1526
1527Specifies the maximum number of received megabytes allowed on an
1528incoming AXFR/IXFR update, to prevent resource exhaustion. A value of 0
1529means no restriction.