A.6. Bind zone file backend

The BindBackend started life as a demonstration of the versatility of PDNS but quickly gained in importance when there appeared to be demand for a Bind 'workalike'.

The BindBackend parses a Bind-style named.conf and extracts information about zones from it. It makes no attempt to honour other configuration flags, which you should configure (when available) using the PDNS native configuration.

--help=bind

Outputs all known parameters related to the bindbackend

bind-example-zones

Loads the 'example.com' zone which can be queried to determine if PowerDNS is functioning without configuring database backends.

bind-config=

Location of the Bind configuration file to parse.

bind-check-interval=

How often to check for zone changes. See 'Operation' section.

bind-enable-huffman

Enable Huffman compression on zone data. Currently saves around 20% of memory actually used, but slows down operation somewhat.

A.6.1. Operation

On launch, the BindBackend first parses the named.conf to determine which zones need to be loaded. These will then be parsed and made available for serving, as they are parsed. So a named.conf with 100.000 zones may take 20 seconds to load, but after 10 seconds, 50.000 zones will already be available. While a domain is being loaded, it is not yet available, to prevent incomplete answers.

Reloading is currently done only when a request for a zone comes in, and then only after bind-check-interval seconds have passed after the last check. If a change occurred, access to the zone is disabled, the file is reloaded, access is restored, and the question is answered. For regular zones, reloading is fast enough to answer the question which lead to the reload within the DNS timeout.

If bind-check-interval is specified as zero, no checks will be performed.

A.6.2. Performance

The BindBackend does not benefit from the packet cache as it is fast enough on its own. Furthermore, on most systems, there will be no benefit in using multiple CPUs for the packetcache, so a noticeable speedup can be attained by specifying distributor-threads=1 in pdns.conf.

A.6.3. Master/slave configuration

Currently disabled in prereleases. But see Chapter 12.