Por quanto tempo um DNS timeout é armazenado em cache?

3

Se nenhum dos servidores de toda a zona puder ser contatado, por quanto tempo esse fato será armazenado em cache?

    
por cnst 16.02.2013 / 00:30

4 respostas

1

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 em 1s desde 2015 (a partir de 2016) e foi codificada permanentemente para um limite máximo de 30s (no lugar do teto obrigatório de RFC 300s ).

    Veja cometer 90174e6 (2015-10 -17) .

    Durante 2014/2015, o padrão foi 10s e o teto foi 300s , 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.

    
por 08.01.2017 / 02:41
2

No BIND 9.11, uma resposta SERVFAIL é armazenada em cache por 1 segundo por padrão.

Do Manual de Referência do Administrador BIND:

servfail-ttl

Sets the number of seconds to cache a SERVFAIL response due to DNSSEC validation failure or other general server failure. If set to 0, SERVFAIL caching is disabled. The SERVFAIL cache is not consulted if a query has the CD (Checking Disabled) bit set; this allows a query that failed due to DNSSEC validation to be retried without waiting for the SERVFAIL TTL to expire.

The maximum value is 30 seconds; any higher value will be silently reduced. The default is 1 second.

Isso é implementado de acordo com RFC 2308 , embora na prática os tempos limites especificados especificados sejam considerados problemáticos, daí porque o padrão atual.

    
por 07.01.2017 / 00:37
1

De acordo com o link

RFC 2182 claims that DNS failures are not cached; that claim is false.

    
por 16.02.2013 / 02:28
-1

O tempo limite não será armazenado em cache. Ainda não tem TTL.

    
por 16.02.2013 / 00:56