This is the second release in the 4.1 train.
This is a bug-fix only release, with fixes to the LDAP and MySQL backends, the pdnsutil tool, and PDNS internals.
Changes since 4.1.1:
Backport: forbid label compression in alias wire format¶
References: #6028, pull request 6260
Include unistd.h for chroot(2) et al. (Florian Obser)¶
References: pull request 6077
Auth: fix out of bounds exception in caa processing, fixes #6089¶
References: pull request 6103
Add the missing <sys/time.h> include to mplexer.hh for struct timeval¶
References: #6040, pull request 6041
Auth: init openssl and libsodium before chrooting in pdnsutil¶
References: #6125, pull request 6129
Auth: always bind the results array after executing a mysql statement¶
References: #6115, pull request 6134
Ldap: fix getdomaininfo() to set this as di.backend (Grégory Oestreicher)¶
References: pull request 6048
Ldapbackend: fix listing zones incl. axfr (Chris Hofstaedtler)¶
References: #6060, #6097, pull request 6122
Ixfr: correct behavior of dealing with dns name with multiple records (Leon Xu)¶
References: pull request 6172
This is the first release in the 4.1 train.
The full release notes can be read on the blog.
The 4.1 release is a major upgrade for the Authoritative Server featuring many improvements and speedups:
Recursor passthrough removal: This will impact many installations, and we realize this may be painful, but it is necessary. Previously, the PowerDNS Authoritative Server contained a facility for sending recursion desired queries to a resolving backend, possibly after first consulting its local cache. This feature (‘recursor=’) was frequently confusing and also delivered inconsistent results, for example when a query ended up referring to a CNAME that was outside of the Authoritative Server’s knowledge. To read more about this please see the blog post mentioned above or read the migration guide.
Changes since 4.1.0-rc3:
Remove deprecated SOA-EDIT values: INCEPTION and INCEPTION-WEEK.¶
References: pull request 6004
Make the /cryptokeys endpoint consistently use CryptoKey objects.¶
References: #5862, pull request 5964
Report remote IP when SOA query comes back with empty question section.¶
References: #5974, pull request 5976
Deny cache flush, zone retrieve and notify if the API is read-only.¶
References: pull request 6007
Fix hang when PATCHing zone during rectify.¶
References: pull request 5968
This is the third release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
This release features various bug fixes and some improvements to
pdnsutil.
Make it possible to disable DNSSEC via the API, this is equivalent
to doing pdnsutil disable-dnssec.¶
References: #5910, #5909, pull request 5936
Add add-meta command to pdnsutil that can be used to append
to existing metadata without clobbering it.¶
References: #5853, pull request 5883
Better support for deleting entries in NetmaskTree and NetmaskGroup.¶
References: pull request 5616
Throw exception for metadata endpoint with wrong zone. Before, We would happily accept this POST.¶
References: pull request 5935
Warn if records in a zone are occluded.¶
References: #5948, #3059, #5949, pull request 5879
Use _exit() when we really really want to exit, for example
after a fatal error. This stops us dying while we die. A call to
exit() will trigger destructors, which may paradoxically stop
the process from exiting, taking down only one thread, but harming
the rest of the process.¶
References: pull request 5917
Fix messages created by pdnsutil generate-tsig-key.¶
References: #5849, pull request 5884
Add back missing output details to rectifyZone.¶
References: #5903, pull request 5928
Use 302 redirects in the webserver for ringbuffer reset or resize. With the current 301 redirect it is only possible to reset or resize once. Every next duplicate action is replaced by the destination cached in the browser.¶
References: pull request 5905
This is the second release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
This release has several performance improvements, stability and correctness fixes.
Rectify zones via the API. (Nils Wisiol)
References: #5712, #3417, pull request 5779
Add PKCS#11 support to packages on Operating Systems that support it.¶
References: pull request 5665
Add support for Botan 2.x and drop support for Botan 1.10 (the latter thanks to Kees Monshouwer).¶
References: #5797, #2250, #5734, #5889, pull request 5498
Fix issues when b2b-migrating from the BIND backend to a database:
References: #5807, #5115, pull request 5810
Add support for new record types to the LDAP backend.¶
References: pull request 5584
Add log-timestamp option. This option can be used to disable printing timestamps to stdout, this is useful when using systemd-journald or another supervisor that timestamps stdout by itself. As the logs will not have 2 timestamps.¶
References: pull request 5842
Stop doing individual RRSIG queries during outbound AXFR. (Kees Monshouwer)¶
References: #5767, pull request 5838
Improve trailing dot handling internally which lead to a segfault in pdnsutil before.¶
References: #5673, pull request 5684
Treat requestor’s payload size lower than 512 as equal to 512. Before, we did not follow RFC 6891 section 6.2.3 correctly.¶
References: pull request 5678
Correctly purge entries from the caches after a transfer. Since the QC/PC split up, we only removed entries for the AXFR’d domain from the packet cache, not the query cache. We also did not remove entries in case of IXFR.¶
References: #5767, pull request 5766
When throwing because of bogus content in the tinydns database, report the offending name+type so the admin can find the offending record.¶
References: pull request 5791
For zone PATCH requests, add new X-PDNS-Old-Serial and
X-PDNS-New-Serial response headers with the zone serials before
and after the changes.¶
References: pull request 5696
Make default options singular and use defaults in Cryptokey API-endpoint¶
References: pull request 5704
Remove printing of DS records from pdnsutil export-zone-dnskey …. This was not only inconsistent behaviour but also done incorrectly.¶
References: #5719, pull request 5729
Make bindbackend startTransaction to return false when it has failed. (Aki Tuomi)¶
References: pull request 5702
Log the needed size when a MySQL result was truncated.¶
References: #5675, pull request 5820
Remove “” around secpoll result which fixes pdns_control show
security-status not working.¶
References: #5692, pull request 5710
Make the auth also publish CDS/CDNSKEY records for inactive keys, as this is needed to roll without double sigs.¶
References: #5721, pull request 5722
Fix a crash when getting a public GOST key if the private one is not set.¶
References: pull request 5734
Ignore SOA-EDIT for PRESIGNED zones.¶
References: pull request 5815
This is the first release candidate of the PowerDNS Authoritative Server in the 4.1 release train.
Add TCP management options described in section 10 of RFC 7766.¶
References: pull request 4624
Add TCP Fast Open support.¶
References: #5129, pull request 5137
Hash the entire query in the packet cache, split caches. This makes the authoritative server pass the EDNS compliance test.
Add cache hit/miss statistics (Kees Monshouwer).
¶References: #4204, pull request 5132, pull request 5258
Add an adjustable statistics interval (@phonedph1).¶
References: #3781, pull request 5271, pull request 5190
Add option to set a global lua-axfr-script (Kees Monshouwer).¶
References: pull request 5316
Allow forwarding of NOTIFY messages using forward-notify (@DrRemorse).¶
References: pull request 1701, pull request 4965, pull request 4964
Add API endpoints for Domain metadata (Christian Kröger).¶
References: pull request 5038, pull request 4093
Implement CryptoKey in the API (Wolfgang Studier, @MrM0nkey, Tudor Soroceanu, Benjamin Zengin).¶
References: #706, pull request 4106
calidns: add –increment and –want-recursion flags.¶
References: pull request 5339
Allow the use of a Lua script to validate DNS Update requests (Aki Tuomi).¶
References: pull request 4058
Send a notification to all slave servers after every dnsupdate (Kees Monshouwer, Florian Obser).¶
References: #4821, pull request 5263, pull request 5321, pull request 5264
Support “native” zones in the BIND backend.¶
References: #1284, pull request 5115
Many improvements and additions to the LDAP backend (Grégory Oestreicher).¶
References: #3358, pull request 4477
Support 2-character country codes and the MaxMind cities database in the GeoIP backend (Aki Tuomi).¶
References: #5255, #4122, pull request 5270, pull request 5269, pull request 5266
Add function to the MyDNS backend to allow backend-to-backend migrations (Aki Tuomi).¶
References: pull request 5043
Support the SMIMEA RRType.¶
References: pull request 5379
Remove recursion. See Migrating from using recursion on the Authoritative Server to using a Recursor for migration strategies (Kees Monshouwer).¶
References: #4238, #4616, #4315, #3337, #2606, #2380, pull request 4752
Remove the experimental Lua Policy Engine (Aki Tuomi).¶
References: pull request 5468
Revamp and clean label compression code. Speeds up large packet creation by ~40%.¶
References: pull request 4373
Apply non-local-bind to query-local-address and query-local-address6 when possible.¶
References: #4299, pull request 4332
A number of fixes and improvements that are difficult to untangle:
DNSResourceRecord from the hot path of packet assembly.References: pull request 4492, pull request 4467
Improve cleaning, remove an unnecessary lock and improve performance of the packetcache (Kees Monshouwer).¶
References: #4503, pull request 4504
Improve SOA records caching (Kees Monshouwer).¶
References: pull request 4485
Make sure AXFR only deletes records from a SLAVE domain in a multi backend setup (Kees Monshouwer).¶
References: pull request 4829
Tidy up UeberBackend (Christian Hofstaedtler).¶
References: pull request 4908
Improve API performance by instantiating only one DNSSECKeeper per request.¶
References: pull request 4944
Incremental backoff for failed slave checks.
When a SOA record for a slave domain can’t be retrieved, use an increasing interval between checking the domain again. This prevents hammering down on already busy servers.
¶References: #349, #602, pull request 4953
Remove d_place from DNSResourceRecord (Christian Hofstaedtler).¶
References: pull request 4549
Add an option to allow AXFR of zones with a different (higher/lower) serial (Kees Monshouwer).¶
References: pull request 5169
Use the resolver setting for the stub resolver, use resolv.conf as fallback.¶
References: #4655, pull request 5112
Re-implement the AXFR Filter with LuaContext (Aki Tuomi).¶
References: pull request 5250
Allow control socket to listen on IPv6 (@Gibheer).¶
References: pull request 5387
Fix typo in two log messages (Ruben Kerkhof).¶
References: pull request 5523
Update YaHTTP (to fix a warning reported by Coverity).¶
References: pull request 5542
Clarify how we check the return value of std::string::find() (reported by Coverity).¶
References: pull request 5541
Wrap the webserver’s and Resolver::tryGetSOASerial objects into smart pointers.¶
References: pull request 5543
SSql: Use unique_ptr for statements (Aki Tuomi).¶
References: pull request 4692
Fix libatomic detection on ppc64 (Sander Hoentjen).¶
References: pull request 5599
Switch the default webserver’s ACL to “127.0.0.1, ::1”.¶
References: pull request 5588
NOTIMP is only appropriate for an unsupported opcode (Kees Monshouwer).¶
References: pull request 5611
Catch DNSName exception in the Zoneparser.¶
References: pull request 5641
Listen on 127.0.0.1 during regression tests (@tcely).¶
References: pull request 5583
Enable the webserver when api is ‘yes’ (Christian Hofstaedtler).¶
References: #4290, pull request 4408
Prevent sending nameservers list and zone-level NS in rrsets in the API (Christian Hofstaedtler).¶
References: #4132, pull request 4751
Forbid mixing CNAMEs and other RRSets in the API (Christan Hofstaedtler).¶
References: #5305, pull request 5389
Prevent duplicate records in single RRset (Christian Hofstaedtler).¶
References: pull request 4195
Implement subcommand printing all KSK DS records in pdnsutil (Jonas Wielicki).¶
References: #4005, pull request 4007
¶Allow setting the account of a zone via pdnsutil (Tuxis Internet Engineering).
References: pull request 4584
Print “$ORIGIN .” on pdnsutil list-zone, so the output can be used in pdnsutil load-zone (Tuxis Internet Engineering).¶
References: pull request 4719
pdnsutil: clarify error message when set-presigned fails with DNSSEC disabled (Peter Thomassen).¶
References: pull request 4478
pdnsutil: Validate names with address records to be valid hostnames (Håkan Lindqvist).¶
References: pull request 3913
Correct pdnsutil help output for add-zone-key.¶
References: pull request 5118
Check for valid hostnames in SRV, NS and MX records.¶
References: #512, pull request 5062
Disable ALIAS expansion by default.¶
References: #5119, pull request 5182
Make the zone parser adhere to RFC 2308 with regards to implicit TTLs.
Existing zone files may now be interpreted differently. Specifically, where we previously used the SOA minimum field for the default TTL if none was set explictly, or no $TTL was set, we now use the TTL from the previous line.
¶References: pull request 5094
mydnsbackend: Initialize d_query_stmt (Aki Tuomi).¶
References: pull request 5605
Enable setting custom pgsql connection parameters, like TLS parameters (Tarjei Husøy).¶
References: pull request 4711
Use pkg-config to detect PostgreSQL libraries.¶
References: #5193, #2358, pull request 5121, pull request 5221
Use BIGSERIAL for records.id in the gpgsql backend (Arsen Stasic).¶
References: pull request 5426
Ship ldapbackend schema files in tarball (Christian Hofstaedtler).¶
References: pull request 5509
Add ability to have service record for apex record and any other static record (Aki Tuomi).¶
References: pull request 5548
Report query statistics as full numbers, not scientific notation in the webserver.¶
References: #1844, pull request 5116
Schema changes for MySQL / MariaDB and PostgreSQL to for storage requirements of various versions (Kees Monshouwer).¶
References: pull request 5518
Fix compilation on systems with Boost < 1.54¶
References: pull request 4424
Fix possible variable shadowing (Kees Monshouwer, Christian Hofstaedtler).¶
References: #4546, pull request 4548, pull request 4560
Fix getaddrinfo() returning address in triplicate.¶
References: pull request 4855
Turn exception in a qthread into an error instead of a crash.¶
References: pull request 5117
Remove duplicate dns2_tolower() function and move ascii-related function to one file (Thiago Farina).¶
References: pull request 5249, pull request 5212
Make copying locks impossible.¶
References: pull request 5209
Properly truncate trailing bits of EDNS Client Subnet masks.¶
References: pull request 5320
Fix regressions in the AXFR rectification code (Kees Monshouwer, Arthur Gautier).¶
References: pull request 5161, pull request 5083
Zero the port when creating a netmask from a ComboAddress.¶
References: pull request 5408
Drop (broken) support for packet-specific SOA replies from backends (Christian Hofstaedtler).¶
References: pull request 5512
Fix validation at the exact RRSIG inception or expiration time¶
References: pull request 5525
Lookups one level (or more) below apex did confuse getAuth() for qytpe DS (Kees Monshouwer).¶
References: pull request 5519
First and last SOA in an AXFR must be identical (Kees Monshouwer).¶
References: pull request 5633
Make the URL in zone info absolute (Christian Hofstaedtler).¶
References: #4524, pull request 4526
Avoid creating fake DNSPacket objects just for calling getAuth() from API code (Christian Hofstaedtler).¶
References: pull request 5516
Check if the API is read-only on crypto keys methods.¶
References: pull request 5589
Fix getSOA() in luabackend (@zilopbg).¶
References: pull request 5556
Avoid undefined behaviour in Clang vs. GCC when printing DS records in pdnsutil.¶
References: pull request 4740
In pdnsutil create-slave-zone, actually add all slaves.¶
References: #5124, pull request 5125
Fix off-by-one in dnsreplay –packet-limit¶
References: pull request 5303
Fix that pdnsutil edit-zone complains about auth=1 problems on all data.¶
References: pull request 5610
Do not corrupt data supplied by other backends in getAllDomains (Christian Hofstaedtler).¶
References: #4328, pull request 4650
Make statement actually unique (Christian Hofstaedtler).¶
References: #4928, pull request 4929
Reconnect to the server if the My/Pg connection has been closed.¶
References: #5005, #3824, pull request 5245
Add missing query for last key insert id in the goracle backend (Aki Tuomi).¶
References: pull request 5506
Fix ldap-strict autoptr feature.¶
References: #3165, pull request 4922
Fix an erroneous ‘.’ in “.ip6.arpa” (@shantikulkarni).¶
References: #5091, pull request 5340
Apply weights consistently during GeoIP lookups (Aki Tuomi).¶
References: #4704, pull request 5267
Fix two problems with remotebackend (Aki Tuomi):
References: pull request 4997
Don’t copy data around in the Remote Backend when sending and receiving in the Unix Connector.¶
References: #5306, pull request 5308