PowerDNS is een DNS server met een database als back-end waardoor het beheer van een groot aantal DNS entries op een gemakkelijke manier kan plaats vinden. Ondersteuning voor onder andere MySQL, Oracle en PostgreSQL is aanwezig. Daarnaast kan je met behulp van Perl elke gewenste koppeling in elkaar klussen. Het programma wordt bijvoorbeeld gebruikt voor het E164.info domein voor het regelen van al het DNS verkeer. Sinds vandaag is versie 2.9.20 beschikbaar met de volgende aankondiging:
Besides adding OpenDBX, this release is mostly about fixing problems and speeding up the recursor. This release has been made possible by XS4ALL and True. Thanks!
Furthermore, we are very grateful for the help of Andrew Pinski, who hacks on gcc, and of Joaquín M López Muñoz, the author of boost::multi_index_container. Without their near-realtime help this release would've been delayed a lot. Thanks!
Bugs fixed in the recursor:
Improvements to the recursor:
- Possible stability issues in the recursor on encountering errors (commit 532, commit 533)
- Memory leaks in recursor fixed (commit 534, commit 572). In a test 800 million real life DNS packets have been sent to the recursor, representing several days of traffic from a major ISP, memory use was high (500MB), but stable.
- Prune all data in PowerDNS - previously per-nameserver and per-query performance statistics were kept around forever (commit 535)
- IPv6 additional processing was broken. Reported by Lionel Elie Mamane, who also provided a fix. The problem was fixed differently in the end. commit 562.
- pdns_recursor did not shuffle answers since 2.9.19, leading to problems sending mail to the Hotmail servers. Reported in ticket 54, fixed in commit 567.
- If a single nameserver had multiple IP addresses listed, PowerDNS would only use one of them. Noted by Mark Martin, fixed in commit 570, who depends on a domain with 4 nameserver IP addresses of which 2 are broken.
Bugs fixed in the authoritative nameserver:
- Commits 535, 540, 541, 542, 543, 544, 545, 547 and 548, 574 all speed up the recursor by a large factor, without altering the DNS algorithm.
- Move recursor to the incredible boost::multi_index_container (commit 580). This brings a huge improvement in cache pruning times.
- commit 549 and commit 550 work around gcc bug 24704 if requested, which speeds up the recursor a lot, but involves a dirty hack. Enable with ./configure --enable-gcc-skip-locking. No guarantees!
Improvements to the authoritative nameserver:
- PowerDNS would no longer allow a '/' in domain names, fixed by commit 537, reported in ticket 48.
- Parameters to pdns_control notify-host were not checked, leading to possible crashes. Reported in ticket 24, fixed in commit 565.
- On some compilers, processing of NAPTR records could cause the server to crash. Reported by Bernd Froemel in ticket 29, fixed in commit 538.
- Backend errors could make the whole nameserver exit under some circumstances, notably using the LDAP backend. Fixed in commit 583, reported in ticket 62.
- Referrals were subtly broken by recent CNAME/Wildcard improvements, fixed in commit 539. Fix and other improvements sponsored by True.
- PowerDNS would try to insert records it has no knowledge about in slave zones, which did not work. Reported in ticket 60, fixed in commit 566. A superior fix would be to implement the relevant unknown record standard.
- Pipebackend did not properly propagate the ABI version to its children, fixed in commit 546, reported by email@example.com in ticket 45.
- OpenDBX backend added (commit 559, commit 560, commit 561) by Norbert Sendetzky. From the website: " The OpenDBX backend enables it to fetch DNS information from every DBMS supported by the OpenDBX library and combines the power of one of the best DNS server implementations with the flexibility of the OpenDBX library. " OpenDBX adds some other features like database failover. Thanks Norbert!
- LDAP fixes as reported in ticket 37, fixed in commit 558, which maked pdns_control notify work.
- Arjo Hooimeijer added support for soa-refresh-default, soa-retry-default, soa-expire-default, which were previously hardcoded. commit 563 and fallout in commit 573 (thanks to Wolfram Schlich).
- Fixes for g++ 4.1. Compiling with 4.1 realizes notable speedups. commit 568, commit 569.
- PowerDNS now reports if it is running in 32 or 64 bit mode, useful for bi-arch users that need to know if they are benefitting from their great processor. commit 571.
- dnsscope compiles again, commit 551, commit 564 (FreeBSD 64-bit time_t).
- dnsreplay_mindex compiles again, fixed by commit 572. Its performance, and the performance of the recursor was improved by commit 559.
- Build scripts were added, mostly for internal use but we know some PowerDNS users build their own packages too. commit 553, commit 554, commit 555, commit 556, commit 557.
- bootstrap script was not included in release. Thanks to Stefan Arentz for noticing. Fixed in commit 574.