3. From PowerDNS Authoritative Server 3.1 to 3.2

[Note]Note

If you are coming from 2.9.x, please also read Section 1, “From PowerDNS Authoritative Server 2.9.x to 3.0” and Section 2, “From PowerDNS Authoritative Server 3.0 to 3.1”.

Previously, on Linux, if the PowerDNS Authoritative Server was configured to bind to the IPv6 address ::, the server would answer questions that came in via IPv6 *and* IPv4.

As of 3.2, binding to :: on Linux now does the same thing as binding to :: on other operating systems: perform IPv6 service. To continue the old behaviour, use 'local-address=0.0.0.0' and 'local-ipv6=::'.

3.2 again involves some SQL schema changes, to make sure 'ordername' is ordered correctly for NSEC generation. For MySQL:

alter table records modify ordername    VARCHAR(255) BINARY;
drop index orderindex on records;
create index recordorder on records (domain_id, ordername);
		

You can test the BINARY change with the new and experimental 'pdnssec test-schema' command. For PostgreSQL, there are no real schema changes, but our indexes turned out to be inefficient, especially given the changed ordername queries in 3.2. Changes:

drop index orderindex;
create index recordorder on records (domain_id, ordername text_pattern_ops);
		

Additionally, with 3.2 supporting empty non-terminals (see Section 8.5, “Rules for filling out fields in database backends”), your frontend may need some changes.

Due to a bug, in 3.1 and earlier releases, the pipebackend would default to a 1000 second timeout for responses from scripts, instead of the intended and documented 1000 milliseconds (1 second). In 3.2, pipe-timeout is in fact in milliseconds. To avoid some surprise, the default is now 2000 (2 seconds). If you have slow pipebackend scripts, make sure to increase pipe-timeout.

Some configuration settings (that did not do anything, anyway) have been removed. You need to remove them from your configuration to start pdns_server. They are: lazy-recursion, use-logfile, logfile.