PowerDNS/pdns — pull request #781 by cyclops1982 (2013-05-07 20:23:56+00:00)
Title: RFC2136 implementation

Hi,

This implementation adds RFC2136 capabilities to powerdns.
It includes "features" like:
- Permission checking based on IP and TSIG (on a per-domain basis via domainmetadata)
- Update of SOA serial after update, configurable via SOA-EDIT and SOA-EDIT-2136
- Documentation on which parameters are available and a small how-to for operation with ISC's DHCPD.
- Forwarding of updates to master if they are send to a slave. This also can be enabled or disabled.
- Purging of cache after processing of an update. At the moment, this purges the complete zone.
- This rfc2136 operation only works on the gsql backends. Other backends could start implementing this as well (see documentation!)
- The current implementation has a full set of tests, which should validate that we do the correct things.

Addition info on the last two points:
- There was a implementation that purged only parts of the zone (including NSEC records), but this was removed after the change to use replaceRRset, as this requires a change getBeforeAndAfter() which had quite a high impact.
- There was a implementation for the bindbackend, but it was removed as the impact to the bindbackend was quite high as well.

These two items are 'open' and could be added if there is enough interest.