]> git.ipfire.org Git - thirdparty/pdns.git/blame - docs/upgrading.rst
Merge pull request #11081 from nvaatstra/docker-unprivileged
[thirdparty/pdns.git] / docs / upgrading.rst
CommitLineData
0e2063c3
PL
1Upgrade Notes
2=============
3
4Before proceeding, it is advised to check the release notes for your
5PowerDNS version, as specified in the name of the distribution file.
6
7Please upgrade to the PowerDNS Authoritative Server 4.0.0 from 3.4.2+.
8See the `3.X <https://doc.powerdns.com/3/authoritative/upgrading/>`__
9upgrade notes if your version is older than 3.4.2.
10
400b7df8 114.5.x to 4.6.0 or master
7f3563dd
PD
12------------------------
13
400b7df8
PD
14Automatic conversion of ``@`` signs in SOA
15^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
16
17Before version 4.5.0, PowerDNS would automatically replace ``@`` in the SOA RNAME with ``.``, making it easy for users to enter their hostmaster email address without having to think about syntax.
18However, this feature interacts badly with handling of presigned zones.
19In version 4.5.0, this feature was accidentally broken in the implementation of the zone cache.
20In 4.6.0, this automatic conversion is fully removed.
21If you still have ``@`` signs in any SOA RNAMEs, 4.6.0 will serve those out literally.
70dbd079 22You can find any stray ``@`` signs by running ``pdnsutil check-all-zones``.
400b7df8 23
6830fcce
PD
24New default NSEC3 parameters
25^^^^^^^^^^^^^^^^^^^^^^^^^^^^
26
27Following `draft-ietf-dnsop-nsec3-guidance (Guidance for NSEC3 parameter settings) <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-nsec3-guidance>`__, the default NSEC3PARAM settings (see :ref:`dnssec-operational-nsec-modes-params`) in pdnsutil are now `1 0 0 -` instead of `1 0 1 ab`.
28
04912725
PD
29SHA1 DSes
30^^^^^^^^^
31
32``pdnsutil show-zone`` and ``pdnsutil export-zone-ds`` no longer emit SHA1 DS records, unless ``--verbose`` is in use.
33
400b7df8
PD
344.4.x to 4.5.0
35--------------
36
37Automatic conversion of ``@`` signs in SOA
38^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39
40Before version 4.5.0, PowerDNS would automatically replace ``@`` in the SOA RNAME with ``.``, making it easy for users to enter their hostmaster email address without having to think about syntax.
41In version 4.5.0, this feature was accidentally broken in the implementation of the zone cache, and the replacement would only happen if the zone cache was disabled.
42Note that in 4.6.0, this automatic conversion is fully removed.
43If you still have ``@`` signs in any SOA RNAMEs, 4.5.0 will serve those out literally if the zone cache is enabled.
44
7f3563dd
PD
45Record type changes
46^^^^^^^^^^^^^^^^^^^
47
786ed0ff 48The in-database format of ``CSYNC``, ``IPSECKEY``, ``NID``, ``L32``, ``L64``, and ``LP`` records has changed from 'generic' format to its specialized format.
7f3563dd 49
71f1dd2c
PD
50Generation of the in-database format of ``SVCB`` and ``HTTPS`` received some important bug fixes.
51(For these two types, you can skip the :ref:`setting-upgrade-unknown-types` setting mentioned below, but we still recommend the re-transfer.)
52
53API users might notice that replacing records of the newly supported types leaves the old TYPExx records around, even if PowerDNS is not serving them.
7f3563dd
PD
54To fix this, enable :ref:`setting-upgrade-unknown-types` and replace the records; this will then delete those TYPExx records.
55Then, disable the setting again, because it has a serious performance impact on API operations.
56
57On secondaries, it is recommended to re-transfer, using ``pdns_control retrieve ZONE``, with :ref:`setting-upgrade-unknown-types` enabled, all zones that have records of those types, or ``TYPExx``, for numbers 45 and 62.
58Leave the setting on until all zones have been re-transferred.
59
be42a3b1 60Changed options
7064f5eb
PD
61^^^^^^^^^^^^^^^
62
be42a3b1
PL
63Renamed options
64~~~~~~~~~~~~~~~
65
7064f5eb
PD
66Various settings have been renamed.
67Their old names still work in 4.5.x, but will be removed in the release after it.
68
69* :ref:`setting-allow-unsigned-supermaster` is now :ref:`setting-allow-unsigned-autoprimary`
70* :ref:`setting-master` is now :ref:`setting-primary`
71* :ref:`setting-slave-cycle-interval` is now :ref:`setting-xfr-cycle-interval`
72* :ref:`setting-slave-renotify` is now :ref:`setting-secondary-do-renotify`
73* :ref:`setting-slave` is now :ref:`setting-secondary`
74* :ref:`setting-superslave` is now :ref:`setting-autosecondary`
2dc0dd0c 75* :ref:`setting-domain-metadata-cache-ttl` is now :ref:`setting-zone-metadata-cache-ttl`
7064f5eb 76
b69ea3b5 77Changed defaults
78~~~~~~~~~~~~~~~~
79
107c81db
PD
80- The default value of the :ref:`setting-consistent-backends` option has been changed from ``no`` to ``yes``.
81- The default value of the :ref:`setting-max-nsec3-iterations` option has been changed from ``500`` to ``100``.
82- The default value of the ``timeout`` parameter for :func:`ifportup` and :func:`ifurlup` functions has been changed from ``1`` to ``2`` seconds.
7a97147f
PD
83- The default value of the new :ref:`setting-zone-cache-refresh-interval` option is ``300``.
84
85Zone cache
86~~~~~~~~~~
87
88Version 4.5 introduces the zone cache.
89The default refresh interval (:ref:`setting-zone-cache-refresh-interval`) is 300, meaning that zones newly added to your backend may need a few minutes to appear.
90However, zones added using the API should not notice a delay.
91
92If your backend is dynamic in what zones it does or does not offer, and thus cannot easily provide a complete list of zones every few minutes, set the interval to 0 to disable the feature.
b69ea3b5 93
be42a3b1
PL
94Removed options
95~~~~~~~~~~~~~~~
96- :ref:`setting-local-ipv6` has been removed. IPv4 and IPv6 listen addresses should now be set with :ref:`setting-local-address`.
b85d2fb7 97- :ref:`setting-query-local-address6` has been removed. IPv4 and IPv6 addresses used for sending queries should now be set with :ref:`setting-query-local-address`.
be42a3b1 98
30285d45 99
d4638952
PL
1004.3.x to 4.4.0
101--------------
102
980049a4
PD
103Latency calculation changes
104^^^^^^^^^^^^^^^^^^^^^^^^^^^
105
4b60a6b4
PD
106It turned out that average latency calculations in earlier versions used integers instead of floating point variables, which led to the throwing away of any data points between 'the current average' and 1000ms above it, instead of having those data points affecting the average.
107In 4.3.2 and 4.4.0, we `started using floating point variables for this <https://github.com/PowerDNS/pdns/pull/9768/files>`__, which means the latency calculation is accurate now.
108Usually, this means you will see higher latency numbers after upgrading.
980049a4 109
142a0aff
PD
110MySQL character set detection
111^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
112
113Before 4.4.0, the gmysql backend told the MySQL (or MariaDB) client libraries to automatically detect the client character set and collation, based on the environment locale.
114(Look for 'autodetect' in https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html to know more).
115On some systems, this autodetection makes choices that are incompatible with MySQL Server 8 defaults.
116On all systems, this autodetection can make choices that vary depending on how PowerDNS is started.
117In other words, the autodetection provides unpredictable results.
118
119In 4.4.0, the autodetection has been removed.
120The MySQL/MariaDB client lib will now use its default settings, unless overridden in ``my.cnf``, for example::
121
122 [client]
123 default-character-set = latin1
124
125If you have trouble connecting to your database with 4.4.0 or up, you can override the character set in ``my.cnf``.
126
127Before upgrading, please check your database for any non-ASCII content.
128The interpretation of the non-ASCII bytes in those fields might change because of a different charset suddenly being used.
129
981c048f
PD
130Record type changes
131^^^^^^^^^^^^^^^^^^^
d4638952 132
c466b354 133The in-database format of the ``SVCB``, ``HTTPS`` and ``APL`` records has changed from 'generic' format to its specialized format.
981c048f 134
981c048f
PD
135API users might notice that replacing records of these types leaves the old TYPExx records around, even if PowerDNS is not serving them.
136To fix this, enable :ref:`setting-upgrade-unknown-types` and replace the records; this will then delete those TYPExx records.
137Then, disable the setting again, because it has a serious performance impact on API operations.
d4638952 138
7f3563dd 139On secondaries, it is recommended to re-transfer, using ``pdns_control retrieve ZONE``, with :ref:`setting-upgrade-unknown-types` enabled, all zones that have records of those types, or ``TYPExx``, for numbers 42, 64, 65.
c221a9cb 140Leave the setting on until all zones have been re-transferred.
7b12cd67 141
5326e0af
PD
142PostgreSQL configuration escaping
143^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
144
145We now correctly quote/escape Postgres connection parameters.
8fc33f55 146If you used single quotes (or some other form of escaping) around your Postgres password because it contained spaces, you now need to put your unmodified, unescaped, unquoted password in your configuration.
5326e0af 147
a03aaad7
PD
148New LMDB schema
149^^^^^^^^^^^^^^^
150
151An LMDB schema upgrade is mandatory.
548b4d38 152Please carefully read :ref:`setting-lmdb-schema-version` before upgrading to 4.4.x. The new schema version is version 3.
a03aaad7 153
e756d013
PD
154Removed features
155^^^^^^^^^^^^^^^^
156
af02f99b 157SOA autofilling (i.e. allowing incomplete SOAs in the database) and the API ``set-ptr`` feature, that both were deprecated in earlier releases, have now been removed. Please update your configuration and remove the following settings:
e8cd98a7
MS
158
159* :ref:`setting-default-soa-mail`
160* :ref:`setting-default-soa-name`
161* :ref:`setting-soa-expire-default`
162* :ref:`setting-soa-minimum-ttl`
163* :ref:`setting-soa-refresh-default`
164* :ref:`setting-soa-retry-default`
165
bc95dff3 166Replace them with :ref:`setting-default-soa-content`, but be aware that this will only be used at zone creation time.
e756d013
PD
167Please run ``pdnsutil check-all-zones`` to check for incomplete SOAs.
168
f8603612
PD
169The :ref:`setting-do-ipv6-additional-processing` setting was removed. IPv6 additional processing now always happens when IPv4 additional processing happens.
170
4b60a6b4
PD
1714.3.1 to 4.3.2
172--------------
173
174Latency calculation changes
175^^^^^^^^^^^^^^^^^^^^^^^^^^^
176
177It turned out that average latency calculations in earlier versions used integers instead of floating point variables, which led to the throwing away of any data points between 'the current average' and 1000ms above it, instead of having those data points affecting the average.
178In 4.3.2 and 4.4.0, we `started using floating point variables for this <https://github.com/PowerDNS/pdns/pull/9786/files>`__, which means the latency calculation is accurate now.
179Usually, this means you will see higher latency numbers after upgrading.
180
181To be very clear, there is no performance difference between 4.3.1 and 4.3.2.
182The only change is in the latency calculation, which was wrong in 4.3.1 and is correct in 4.3.2.
183This fix was backported to 4.3.2 from 4.4.0 so that users can fairly compare the performance of 4.3.2 and 4.4.0.
184
4d34a714
PD
1854.3.0 to 4.3.1
186--------------
187
188On RHEL/CentOS 8, the gmysql backend now uses ``mariadb-connector-c`` instead of ``mysql-libs``.
189This change was made because the default MySQL implementation for RHEL8 is MariaDB, and MariaDB and MySQL cannot be installed in parallel due to conflicting RPM packages.
190The mariadb client lib will connect to your existing MySQL servers without trouble.
191
5e58aee0
PD
192Unknown record encoding (`RFC 3597 <https://tools.ietf.org/html/rfc3597>`__) has become more strict as a result of the fixes for :doc:`PowerDNS Security Advisory 2020-05 <../security-advisories/powerdns-advisory-2020-05>`. Please use ``pdnsutil check-all-zones`` to review your zone contents.
193
1c52074d
PD
194The previous set of indexes for the gsqlite3 backend was found to be poor.
1954.3.1 ships a new schema, and a migration:
196
197.. literalinclude:: ../modules/gsqlite3backend/4.3.0_to_4.3.1_schema.sqlite3.sql
198
0870304c
AT
1994.2.x to 4.3.0
200--------------
201
68b63c08
PD
202NSEC(3) TTL changed
203^^^^^^^^^^^^^^^^^^^
204
205NSEC(3) records now use the negative TTL, instead of the SOA minimum TTL.
206See :ref:`the DNSSEC TTL notes <dnssec-ttl-notes>` for more information.
207
9ed258d5
PL
208Lua Netmask class methods changed
209^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
210
211Netmask class methods ``isIpv4`` and ``isIpv6`` have been deprecated in Lua, use :func:`Netmask.isIPv4` and :func:`Netmask.isIPv6` instead. In the C++ API, these methods have been removed.
212
213``socket-dir`` changed
214^^^^^^^^^^^^^^^^^^^^^^
215The default :ref:`setting-socket-dir` has changed to include ``pdns`` in the path.
216It is now whatever is passed to ``--with-socketdir`` during configure (``/var/run`` by default) plus ``pdns``.
217The systemd unit-file is updated to reflect this change and systemd will automatically create the directory with the proper permissions.
218The packaged sysV init-script also creates this directory.
219For other operating systems, update your init-scripts accordingly.
220
221Systemd service and permissions
222^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
223The systemd service-file that is installed no longer uses the ``root`` user to start.
224It uses the user and group set with the ``--with-service-user`` and ``--with-service-group`` switches during configuration, "pdns" by default.
225This could mean that PowerDNS cannot read its configuration or zone-file data.
226It is recommended to recursively ``chown`` directories used by PowerDNS::
227
228 # For Debian-based systems
229 chown -R root:pdns /etc/powerdns
230 chown -R pdns:pdns /var/lib/powerdns
231
232 # For CentOS and RHEL based systems
233 chown -R root:pdns /etc/pdns
234 chown -R pdns:pdns /var/lib/pdns
235
236Packages provided on `the PowerDNS Repository <https://repo.powerdns.com>`__ will ``chown`` directories created by them accordingly in the post-installation steps.
237
238New settings
239^^^^^^^^^^^^
240
cefba199
JS
241- The :ref:`setting-axfr-fetch-timeout` setting has been added.
242 This setting controls how long an inbound AXFR may be idle in seconds.
243 Its default is 10
244- The :ref:`setting-max-generate-steps` setting has been added.
245 This sets the maximum number of steps that will be performed when loading a BIND zone with the ``$GENERATE`` directive.
246 The default is 0, which is unlimited.
9ed258d5 247
be42a3b1
PL
248Deprecated settings
249^^^^^^^^^^^^^^^^^^^
9ed258d5 250
be42a3b1
PL
251- :ref:`setting-local-ipv6` has been deprecated and will be removed in 4.5.0. Both IPv4 and IPv6 listen addresses can now be set with :ref:`setting-local-address`. The default for the latter has been changed to ``0.0.0.0, ::``.
252
253Changed defaults
254^^^^^^^^^^^^^^^^
255- :ref:`setting-local-address` now defaults to ``0.0.0.0, ::``.
9ed258d5 256
47fff195
PD
257Schema changes
258^^^^^^^^^^^^^^
cefba199
JS
259- The new 'unpublished DNSSEC keys' feature comes with a mandatory schema change for all database backends (including BIND with a DNSSEC database).
260 See files named ``4.2.0_to_4.3.0_schema.X.sql`` for your database backend in our Git repo, tarball, or distro-specific documentation path.
261 For the LMDB backend, please review :ref:`setting-lmdb-schema-version`.
b66617ed
PD
262- If you are upgrading from beta2 or rc2, AND ONLY THEN, please read `pull request #8975 <https://github.com/PowerDNS/pdns/pull/8975>`__ very carefully.
263
47fff195
PD
264Implicit 5->7 algorithm upgrades
265^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
266
a4a8f6c8 267Since version 3.0 (the first version of the PowerDNS Authoritative Server that supported DNSSEC signing), we have automatically, silently, upgraded algorithm 5 (RSASHA1) keys to algorithm 7 (RSASHA1-NSEC3-SHA1) when the user enabled NSEC3. This has been a source of confusion, and because of that, we introduced warnings for users of this feature in 4.0 and 4.1. To see if you are affected, run ``pdnsutil check-all-zones`` from version 4.0 or up. In this release, the automatic upgrade is gone, and affected zones will break if no action is taken.
0870304c 268
320757b3
PD
269.. _ixfr-in-corruption-4.3.0:
270
271IXFR-in corruption
272^^^^^^^^^^^^^^^^^^
273
274A bug in PowerDNS versions before 4.2.2/4.3.0 would cause wrong deletion or addition of records if IXFR deltas came in very quickly (within the query cache timeout, which defaults to 20/60 seconds).
275If you have zones which use inbound IXFR (in other words, the ``IXFR`` metadata item for that zone is set to ``1``), we strongly suggest triggering a completely fresh transfer.
276You could accomplish that by deleting all records in the zone with an SQL query and waiting for a fresh transfer, or (1) disabling IXFR (2) forcing a fresh transfer using ``pdns_control retrieve example.com`` (3) enabling IXFR again.
277
5e58aee0
PD
2784.2.X to 4.2.3
279--------------
280
281Unknown record encoding (`RFC 3597 <https://tools.ietf.org/html/rfc3597>`__) has become more strict as a result of the fixes for :doc:`PowerDNS Security Advisory 2020-05 <../security-advisories/powerdns-advisory-2020-05>`. Please use ``pdnsutil check-all-zones`` to review your zone contents.
282
f87a4264
PD
2834.X.X to 4.2.2
284--------------
285
286.. _ixfr-in-corruption-4.2.2:
287
288IXFR-in corruption
289^^^^^^^^^^^^^^^^^^
290
291A bug in PowerDNS versions before 4.2.2/4.3.0 would cause wrong deletion or addition of records if IXFR deltas came in very quickly (within the query cache timeout, which defaults to 20/60 seconds).
292If you have zones which use inbound IXFR (in other words, the ``IXFR`` metadata item for that zone is set to ``1``), we strongly suggest triggering a completely fresh transfer.
293You could accomplish that by deleting all records in the zone with an SQL query and waiting for a fresh transfer, or (1) disabling IXFR (2) forcing a fresh transfer using ``pdns_control retrieve example.com`` (3) enabling IXFR again.
294
295
d3dfd71e
PD
2964.1.X to 4.2.0
297--------------
298
299- Superslave operation is no longer enabled by default, use :ref:`setting-superslave` to enable. This setting was called ``supermaster`` in some 4.2.0 prereleases.
367f9b40 300- The gsqlite3 backend, and the DNSSEC database for the BIND backend, have a new journal-mode setting. This setting defaults to `WAL <https://www.sqlite.org/wal.html>`_; older versions of PowerDNS did not set the journal mode, which means they used the SQLite default of DELETE.
4d39fb4b 301- Autoserial support has been removed. The ``change_date`` column has been removed from the ``records`` table in all gsql backends, but leaving it in is harmless.
a84c85c1 302- The :doc:`Generic PostgreSQL backend <backends/generic-postgresql>` schema has changed: the ``notified_serial`` column type in the ``domains`` table has been changed from ``INT DEFAULT NULL`` to ``BIGINT DEFAULT NULL``: ``ALTER TABLE domains ALTER notified_serial TYPE bigint USING CASE WHEN notified_serial >= 0 THEN notified_serial::bigint END;``
4b525a97 303- Rectification after API changes is now default (:ref:`setting-default-api-rectify`). If you do mutations in large zones, you may notice a slowdown.
d3dfd71e 304
5e58aee0
PD
3054.1.X to 4.1.14
306---------------
307
308Unknown record encoding (`RFC 3597 <https://tools.ietf.org/html/rfc3597>`__) has become more strict as a result of the fixes for :doc:`PowerDNS Security Advisory 2020-05 <../security-advisories/powerdns-advisory-2020-05>`. Please use ``pdnsutil check-all-zones`` to review your zone contents.
309
1346a21e
EW
3104.1.0 to 4.1.1
311--------------
312
313- The :doc:`Generic MySQL backend <backends/generic-mysql>` schema has
314 changed: the ``notified_serial`` column default in the ``domains``
315 table has been changed from ``INT DEFAULT NULL`` to ``INT UNSIGNED
316 DEFAULT NULL``:
317
318 - ``ALTER TABLE domains MODIFY notified_serial INT UNSIGNED DEFAULT NULL;``
319
0e2063c3
PL
3204.0.X to 4.1.0
321--------------
322
22544d28 323- Recursion has been removed, see the :doc:`dedicated migration guide <guides/recursion>`.
7a88a92f 324- ALIAS record expansion is disabled by default, use :ref:`setting-expand-alias` to enable.
bab2a886
EW
325- *Your LDAP schema might need to be updated*, because new record types
326 have been added (see below) and the ``dNSDomain2`` type has been
327 changed.
22544d28
PL
328- The :doc:`LDAP Backend <backends/ldap>` now supports additional Record types
329
330 - NSEC3
331 - NSEC3PARAM
332 - TLSA
333 - CDS
334 - CDNSKEY
335 - OPENPGPKEY
336 - TKEY
337 - URI
338 - CAA
0e2063c3
PL
339
340Changed options
341^^^^^^^^^^^^^^^
342
343- ``experimental-lua-policy-script`` option and the feature itself have
10200e92
PL
344 been completely dropped. We invite you to use `PowerDNS
345 dnsdist <https://dnsdist.org>`_ instead.
0e2063c3 346
621f5105
PL
347- As recursion has been removed from the Authoritative Server, the
348 ``allow-recursion``, ``recursive-cache-ttl`` and ``recursor`` options have
349 been removed as well.
350
c01b3507
PL
351- ``default-ksk-algorithms`` has been renamed to :ref:`setting-default-ksk-algorithm`
352 and only supports a single algorithm name now.
353
354- ``default-zsk-algorithms`` has been renamed to :ref:`setting-default-zsk-algorithm`
355 and only supports a single algorithm name now.
356
0e2063c3
PL
357Changed defaults
358~~~~~~~~~~~~~~~~
359
ef75af13
EW
360- The default value of :ref:`setting-webserver-allow-from` has been changed from ``0.0.0.0, ::/0`` to ``127.0.0.1, ::1``.
361
0e2063c3
PL
362Other changes
363^^^^^^^^^^^^^
364
365The ``--with-pgsql``, ``--with-pgsql-libs``, ``--with-pgsql-includes``
366and ``--with-pgsql-config`` ``configure`` options have been deprecated.
367``configure`` now attempts to find the Postgresql client libraries via
368``pkg-config``, falling back to detecting ``pg_config``. Use
369``--with-pg-config`` to specify a path to a non-default ``pg_config`` if
370you have Postgresql installed in a non-default location.
371
cb264691 372The ``--with-libsodium`` configure flag has changed from 'no' to 'auto'.
67f12ad9
PL
373This means that if libsodium and its development header are installed, it will be linked in.
374
d001d2e4
PL
375The improved :doc:`LDAP Backend <backends/ldap>` backend now requires Kerberos headers to be installed.
376Specifically, it needs `krb5.h` to be installed.
377
0e2063c3
PL
3784.0.X to 4.0.2
379--------------
380
381Changed options
382^^^^^^^^^^^^^^^
383
384Changed defaults
385~~~~~~~~~~~~~~~~
386
387- :ref:`setting-any-to-tcp` changed from ``no`` to ``yes``
388
3893.4.X to 4.0.0
390--------------
391
392Database changes
393^^^^^^^^^^^^^^^^
394
395No changes have been made to the database schema. However, several
396superfluous queries have been dropped from the SQL backend. Furthermore,
397the generic SQL backends switched to prepared statements. If you use a
398non-standard SQL schema, please review the new defaults.
399
400- ``insert-ent-query``, ``insert-empty-non-terminal-query``,
401 ``insert-ent-order-query`` have been replaced by one query named
402 ``insert-empty-non-terminal-order-query``
403- ``insert-record-order-query`` has been dropped,
404 ``insert-record-query`` now sets the ordername (or NULL)
405- ``insert-slave-query`` has been dropped, ``insert-zone-query`` now
406 sets the type of zone
407
408Changed options
409^^^^^^^^^^^^^^^
410
411Several options have been removed or renamed, for the full overview of
412all options, see :doc:`settings`.
413
414Renamed options
415~~~~~~~~~~~~~~~
416
417The following options have been renamed:
418
419- ``experimental-json-interface`` ==> :ref:`setting-api`
080108eb 420- ``experimental-api-readonly`` ==> ``api-readonly``
0e2063c3
PL
421- ``experimental-api-key`` ==> :ref:`setting-api-key`
422- ``experimental-dname-processing`` ==> :ref:`setting-dname-processing`
423- ``experimental-dnsupdate`` ==> :ref:`setting-dnsupdate`
424- ``allow-dns-update-from`` ==> :ref:`setting-allow-dnsupdate-from`
425- ``forward-dnsupdates`` ==> :ref:`setting-forward-dnsupdate`
426
427Changed defaults
428~~~~~~~~~~~~~~~~
429
430- :ref:`setting-default-ksk-algorithms`
431 changed from rsasha256 to ecdsa256
432- :ref:`setting-default-zsk-algorithms`
433 changed from rsasha256 to empty
434
435Removed options
436~~~~~~~~~~~~~~~
437
438The following options are removed:
439
440- ``pipebackend-abi-version``, it now a setting per-pipe backend.
441- ``strict-rfc-axfrs``
442- ``send-root-referral``
443
444API
445^^^
446
447The API path has changed to ``/api/v1``.
448
449Incompatible change: ``SOA-EDIT-API`` now follows ``SOA-EDIT-DNSUPDATE``
450instead of ``SOA-EDIT`` (incl. the fact that it now has a default value
451of ``DEFAULT``). You must update your existing ``SOA-EDIT-API`` metadata
452(set ``SOA-EDIT`` to your previous ``SOA-EDIT-API`` value, and
453``SOA-EDIT-API`` to ``SOA-EDIT`` to keep the old behaviour).
454
455Resource Record Changes
456^^^^^^^^^^^^^^^^^^^^^^^
457
458Since PowerDNS 4.0.0 the CAA resource record (type 257) is supported.
459Before PowerDNS 4.0.0 type 257 was used for a proprietary MBOXFW
460resource record, which was removed from PowerDNS 4.0. Hence, if you used
461CAA records with 3.4.x (stored in the DB with wrong type=MBOXFW but
462worked fine) and upgrade to 4.0, PowerDNS will fail to parse this
463records and will throw an exception on all queries for a label with
464MBOXFW records. Thus, make sure to clean up the records in the DB.
17f0bbcf
PL
465
466In version 3.X, the PowerDNS Authoritative Server silently ignored records that
467have a 'priority' field (like MX or SRV), but where one was not in the database.
468In 4.X, :doc:`pdnsutil check-zone <manpages/pdnsutil.1>` will complain about this.