De acordo com o 1998-03 rfc2308#section-7.1
, se a resolução não for bem-sucedida e os resultados em um SERVFAIL
(por exemplo, de um tempo limite), então MAY seja armazenado em cache, mas se for, NÃO DEVE seja armazenado em cache por mais de 5 minutos.
Na prática, parece que muitas vezes não é armazenado em cache, ou, se armazenado em cache, é armazenado em cache por um período de tempo puramente simbólico, como um único segundo.
-
Antes do BIND 9.9.6-S1 (lançado em 2014), aparentemente,
SERVFAIL
não foi armazenado em cache.Foi introduzido com commit
a878301
( 2014-09-04) .Por exemplo, no momento desta pergunta e em todas as versões do BIND lançadas antes de 2014, o resolvedor recursivo do BIND NÃO armazenou o cache
SERVFAIL
, se o acima commit e a documentação sobre a primeira introdução em 9.9.6-S1 deve ser acreditada. -
No último BIND, a configuração
servfail-ttl
padrão foi definida em1s
desde 2015 (a partir de 2016) e foi codificada permanentemente para um limite máximo de30s
(no lugar do teto obrigatório de RFC300s
).Veja cometer
90174e6
(2015-10 -17) .Durante 2014/2015, o padrão foi
10s
e o teto foi300s
, mas, conforme as citações abaixo, os números mais altos foram considerados excessivamente pessimistas.
Referências notáveis (com as respectivas citações) incluem:
-
link (2014 / 2016-01-07)
The outcome of caching SERVFAIL responses has included some situations where it was seen to be detrimental to the client experience, particularly when the causes of the SERVFAIL being presented to the client were transient and from a scenario where an immediate retry of the query would be a more appropriate action.
-
link (2003-01-11)
The second tactic is to claim that widespread DNS clients will do something Particularly Evil when they are unable to reach all DNS servers. The problem with this argument is that the claim is false. Any such client is clearly buggy, and will be unable to survive in the marketplace: consider what happens if the client's routers briefly go down, or if the client's network is temporarily flooded.
Em resumo, é improvável que o SERVFAIL
seja armazenado em cache, mas, mesmo se armazenado em cache, será no máximo um número de segundos com dígitos duplos ou até mesmo um único dígito.