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

Reply via email to