Serve stale when fetch limits are hit
See also #2066 (closed) and #2303 (closed)
Serve stale has been improved a lot by updating configuration defaults, adding options stale-refresh-time
and stale-answer-client-timeout
. Basically there are now two modes:
- Resolve the query, fallback to stale data (
stale-answer-client-timeout
disabled or positive value). - Prefer stale data in cache, then refresh the data in cache (
stale-answer-client-timeout 0
).
In case 1, BIND will still not return stale data to the client when fetch limits are hit. This is an indication that the upstream (forwarder, or authoritative server) are under attack, and chances are slim we will get a useful response. In this case, we should also return stale data.