Before migrating to PDNS a few things should be considered.
If PDNS receives a question for which it is not authoritative, it can't go out on the net to figure out an answer. However, because many installations are expected to be both authoritative and recursing, PDNS can use a separate recursing backend to provide non-authoritative answers. See Chapter 11 for more details.
Only the PostgreSQL backend has, of version 1.99.9, the ability to act as a slave.
Wildcard CNAMEs are a controversial non-standard feature of Bind and perhaps other nameservers. As yet, PDNS does not support these because of this controversy - discussion with IETF people has shown that it is not guaranteed that CNAME wildcard records will always work well.
However, as this is a popular feature, it will be added soon.
Zone2sql parses Bind named.conf files and zonefiles and outputs SQL on standard out, which can then be fed to your database.
Zone2sql understands the Bind master file extension '$GENERATE' and will also honour '$ORIGIN' and '$TTL'.
For backends supporting slave operation (currently only the PostgreSQL backend), there is also an option to keep slave zones as slaves, and not convert them to native operation.
By default, zone2sql outputs code suitable for the mysqlbackend, but it can also generate SQL for the Generic PostgreSQL and Oracle backends. The following commands are available:
Output in a bare format, suitable for further parsing. The output is formatted as follows:
domain_id<TAB>'qname'<TAB>'qtype'<TAB>'content'<TAB>prio<TAB>ttl
Output in format suitable for the default configuration of the Generic PostgreSQL backend.
List options.
Output in format suitable for the default configuration of the MySQL backend. Default.
Parse this named.conf to find locations of zones.
Ignore missing files during parsing. Dangerous.
Output in format suitable for the default configuration of the Generic Oracle backend.
Maintain slave status of zones listed in named.conf as being slaves. The default behaviour is to convert all zones to native operation.
Supply a value for the first domain_id generated. Defaults at 0.
For Oracle and PostgreSQL output, wrap each domain in a transaction for higher speed and integrity.
Be verbose during conversion.
Parse only this zone file. Conflicts with --named-conf parameter.
When parsing a single zone without $ORIGIN statement, set this as the zone name.