O que aciona o uso do tempo negativo para viver o valor do registro SOA do DNS?

8

Estou lendo o seguinte tutorial de DNS e tem este exemplo:

domain.com.  IN SOA ns1.domain.com. admin.domain.com. (
                                        12083   ; serial number
                                        3h      ; refresh interval
                                        30m     ; retry interval
                                        3w      ; expiry period
                                        1h      ; negative TTL
)

A descrição para o negative TTLvalor diz o seguinte:

1h: é o tempo que o servidor de nomes armazenará em cache um erro de nome se não conseguir encontrar o nome solicitado nesse arquivo.

Quais são as condições que podem acionar o servidor para armazenar em cache um erro de nome como este? Um exemplo seria realmente útil.

Ole
fonte

Respostas:

11

O intervalo de armazenamento em cache negativo no SOAentra em jogo quando um servidor autoritário indica que o registro solicitado não existe. Os casos específicos são:

  • Responde com um código de resposta de NXDOMAIN.
  • Responde com um NODATAestado sintético, mas apenas se forma onde um SOAregistro está presente. ( NOERRORrcode, 0 respostas, 1 SOAregistro na seção de autoridade + NSregistros opcionais )

É comum que o software de servidor imponha um valor máximo configurado localmente nesse valor, portanto, mesmo se você tiver um TTL negativo da 86400inexistência, não será necessariamente armazenado em cache por tanto tempo por servidores recursivos remotos.

Os casos são cobertos pela seção RFC 2308, se você quiser ler mais. Leia a seção 2 como uma cartilha e, em seguida, 5-6.

Andrew B
fonte
IIUC se eu solicitar "not.available.example.com" do servidor autoritário, ele será armazenado em cache pelo tempo negativo de vida?
Ole
Corrigir. Servidores recursivos completos armazenam em cache de maneira confiável a inexistência, mas o comportamento dos resolvedores de stub (como as bibliotecas de resolvedores de SO) varia. O Windows faz, por exemplo. Você encontrará "O nome não existe". na saída de ipconfig /displaydns, o que representa NXDOMAIN. Você encontrará instâncias de "Nenhum registro do tipo X" nessa saída também, o que corresponde a NODATA. A maioria dos sistemas baseados em UNIX não o fazem , porque eles não fazem cache, sem configuração adicional. ( nscdCom cache habilitado, servidor local recursiva e usando 127.0.0.1 para pesquisas de DNS, etc.)
Andrew B
Portanto, se estou imaginando o objetivo corretamente, é possível verificar se "not.available.example.com" realmente não estava disponível de acordo com o servidor recursivo completo? Em outras palavras, se eu não receber um endereço IP, posso consultar o servidor em algo como um ponto de extremidade / displaydns, e o resultado deve conter a confirmação de que o endereço realmente não existe?
Ole
ipconfig /displaydnsexiste para informar o conteúdo do cache do resolvedor de stub local. Nem mais nem menos. O que os administradores podem querer fazer com essas informações é aberto.
Andrew B
@Ole O objetivo é evitar consultas repetidas para o nome, uma vez que o servidor já tenha dito ao resolvedor que ele não existe. Assim como qualquer outro cache.
Barmar