We use PDNS to fetch zone from our customer's master server and serve
then our our name server. The problem is, if a big customer's master
server is not available, PDNS is busy doing frehsness checks for the
respective domains (e.g. 200000 domains). Thus will also cause problems
for other customer zones because PDNs is busy checking the non
responsive zones (a slave check takes several hours).
We would need some measure to suspend the checking of the zones form the
broken master. We had basically 2 ideas:
a) update the domains table not only on successful freshness checks, but
also on failed ones (e.g. writing the timestamp of the failed check into
a column last_failure). This can be used in the sql query to skit the
respective zones for a while, e.g. 30 minutes.
b) in PDNS kep a list of health of the master servers (PI addresses),
ie. count the number of timeouts and the time of the last timeout. If
the count > X, then SOA checks against this IP will be skipped for Y
minutes. After Y minutes the cound wil be reset.
Before we start coding, do you have any inputs of preferred methods to
solve this issue?
Pdns-users mailing list