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-timeoutdisabled 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.