Before proceding, you should check the release notes for your PDNS version, as specified in the name of the distribution file.
Named.conf parsing got a lot of work and many more bind configurations can now be parsed. Furthermore, error reporting was improved. Stability is looking good.
Bugs fixed:
Bind parser got confused by filenames with underscores and colons.
Bind parser got confused by spaces in quoted names
FreeBSD version now stops and starts when instructed to do so.
Wildcards were off by default, which violates standards. Now on by default.
--oracle was broken in zone2sql
Feature enhancements:
Linenumber counting goes on as it should when including files in named.conf
Added --no-config to enable users to start the pdns daemon without parsing the configuration file.
zone2sql now has --bare for unformatted output which can be used to generate insert statements for different database layouts
zone2sql now has --gpgsql, which is an alias for --mysql, to output in a format useful for the default Generic PgSQL backend
zone2sql is now documented.
Wildcard CNAMES do not work as they do with bind.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend
This version is now running on dns-eu1.powerdns.net and working very well for us. But please remain cautious before deploying!
Bugs fixed:
Webserver neglected to show log messages
TCP question/answer misscounted multiple questions over one socket. Fixed misnaming of counter
Packetcache now detects clock skew and times out entries
named.conf parser now reports errors with line number and offending token
Filenames in named.conf can now contain :
Feature enhancements:
The webserver now by default does not print out configuration statements, which might contain database backends. Use webserver-print-arguments to restore the old behaviour.
Generic PostgreSQL backend is now included. Still rather beta.
FreeBSD version does not stop when requested to do so.
Wildcard CNAMES do not work as they do with bind.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend
The main focus of this release is stability and TCP improvements. This is the first release PowerDNS-the-company actually considers for running on its production servers!
Major bugs fixed:
Zone2sql received a floating point division by zero error on named.confs with less than 100 domains.
Huffman encoder failed without specific error on illegal characters in a domain
Fixed huge memory leaks in TCP code.
Removed further filedescriptor leaks in guardian respawning code
Pipebackend was too chatty.
pdns_server neglected to close fds 0, 1 & 2 when daemonizing
Feature enhancements:
bindbackend can be instructed not to check the ctime of a zone by specifying bind-check-interval=0, which is also the new default.
pdns_server --list-modules lists all available modules.
Performance enhancements:
TCP code now only creates a new database connection for AXFR.
TCP connections timeout rather quickly now, leading to less load on the server.
FreeBSD version does not stop when requested to do so.
Wildcard CNAMES do not work as they do with bind.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend, gpgsqlbackend
A lot of new named.confs can now be parsed, zone2sql & bindbackend have gained features and stability.
Major bugs fixed:
Label compression was not always enabled, leading to large reply packets sometimes.
Database errors on TCP server lead to a nameserver reload by the guardian.
MySQL backend neglected to close its connection properly.
BindParser missparsed some IP addresses and netmasks.
Truncated answers were also truncated on the packetcache, leading to truncated TCP answers.
Feature enhancements:
Zone2sql and the bindbackend now understand the Bind $GENERATE{} syntax.
Zone2sql can optionally gloss over non-existing zones with --on-error-resume-next.
Zone2sql and the bindbackend now properly expand @ also on the righthand side of records.
Zone2sql now sets a default TTL.
DNS UPDATEs and NOTIFYs are now logged properly and sent the right responses.
Performance enhancements:
'Fancy records' are no longer queried for on ANY queries - this is a big speedup.
FreeBSD version does not stop when requested to do so.
Zone2sql refuses named.confs with less than 100 domains.
Wildcard CNAMES do not work as they do with bind.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend, gpgsqlbackend
The big news in this release is the BindBackend which is now capable of parsing many more named.conf Bind configurations. Furthermore, PDNS has succesfully parsed very large named.confs with large numbers of small domains, as well as small numbers of large domains (TLD).
Zonetransfers are now also much improved.
Major bugs fixed:
zone2sql leaked filedescriptors on each domain, used wrong Bison recursion leading to parser stack overflows. This limited the amount of domains that could be parsed to 1024.
zone2sql can now read all known zonefiles, with the exception of those containing $GENERATE
Guardian relaunching a child lost two filedescriptors
Don't die on a connection reset by peer during zonetransfer.
Webserver does not crash anymore on ringbuffer resize
Feature enhancements:
AXFR can now be disabled, and reenabled per IP address
--help accepts a parameter, will then show only help items with that prefix.
zone2sql now accepts a --zone-name parameter
BindBackend maturing - 9500 zones parsed in 3.5 seconds. No longer case sensitive.
Performance enhancements:
Implemented RFC-breaking AXFR format (which is the industry standard). Zonetransfers now zoom along at wirespeed (many megabits/s).
FreeBSD version does not stop when requested to do so.
BindBackend cannot parse zones with $GENERATE statements.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend, gpgsqlbackend
Major bugs fixed:
Database backend reload does not hang the daemon anymore
Buffer overrun in local socket address initialization may have caused binding problems
setuid changed the uid to the gid of the selected user
zone2sql doesn't coredump on invocation anymore. Fixed lots of small issues.
Don't parse configuration file when creating configuration file. This was a problem with reinstalling.
removed a lot of unnecessary gettimeofday calls
removed needless select(2) call in case of listening on only one address
removed 3 useless syscalls in the fast path
Usability improvements:
Fixed error checking in init.d script (show, mrtg)
Added 'uptime' to the mrtg output
removed further GNUisms from installer and init.d scripts for use on FreeBSD
Debian package and apt repository, thanks to Wichert Akkerman.
FreeBSD /usr/ports, thanks to Peter van Dijk (in progress).
Stability may be an issue as well as performance. This version has a tendency to log a bit too much which slows the nameserver down a lot.
Decreasing a ringbuffer on the website is a sure way to crash the daemon. Zone2sql, while improved, still has problems with a zone in the following format:
name IN A 1.2.3.4 IN A 1.2.3.5To fix, add 'name' to the second line.
Zone2sql does not close filedescriptors.
FreeBSD version does not stop when requested via the init.d script.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend, gpgsqlbackend
fully functioning bindbackend - will try to parse named.conf, but probably fail
This is the first public release of what is going to become PDNS 2.0. As such, it is not of production quality. Even PowerDNS-the-company does not run this yet.
Stability may be an issue as well as performance. This version has a tendency to log a bit too much which slows the nameserver down a lot.
Decreasing a ringbuffer on the website is a sure way to crash the daemon. Zone2sql is very buggy.
Features present in this document, but disabled or withheld from the current release:
gmysqlbackend, oraclebackend, gpgsqlbackend
fully functioning bindbackend - will not parse configuration files