Gostaria de ver o valor do Time-To-Live (TTL) para um registro CNAME.
Eu tenho acesso ao dig (no Apple Mac OS X), o que me dá uma resposta assim:
% dig host.example.gov
<*SNIP*>
;; ANSWER SECTION:
host.example.gov. 43200 IN CNAME host1.example.gov.
host1.example.gov. 43200 IN A 192.168.16.10
O valor '43200' é o TTL para este registro DNS?
Sim, o número é o número de segundos restantes até que o registro expire (desde que não estejamos consultando o servidor de nomes autoritativo). Obviamente com um CNAME há um nível de redirecionamento, então o TTL para o registro A para o qual ele aponta neste caso também pode ser importante.
Se você esperar alguns segundos e executar o dig novamente em seu servidor de nomes local, verá que o número de TTL diminui pelo número de segundos que você esperou (aproximadamente). Quando atingir 0, ele será atualizado ou se o seu servidor de nomes atualizar a zona por algum motivo.
Como mencionado acima, há uma diferença entre o dig sendo executado em um servidor de nomes com uma entrada em cache e o servidor de nomes que é autoritário para essa entrada.
(nos exemplos que uso abaixo, uso os sinalizadores
+noauthority
+noquestion
&+nostats
apenas para manter a saída concisa).Observe a diferença entre as seguintes consultas:
Portanto, na consulta acima, estamos consultando um servidor de nomes com autoridade para stackoverflow.com. Se você notar a
flags
seção, preste atenção especial ao sinalizador aa que indica que esta é uma resposta autorizada (ou seja, não armazenada em cache).Na consulta acima, não temos um sinalizador aa , e o TTL continuará diminuindo à medida que consultamos e consultamos. Este é essencialmente o contador que eu estava falando anteriormente.
Se você estiver preso em uma caixa do Windows e tiver acesso apenas ao nslookup:
Is the value '43200' the TTL for this DNS record?
Sim - conforme informado a você pelo servidor que respondeu à sua consulta (se você estiver perguntando a um servidor de cache, ele retornará o tempo restante em seu cache).
Para ver o TTL definido no registro real, consulte o servidor de nomes autoritativo (
dig @some.dns.server host.example.gov
- Os servidores DNS autoritativos serão listados na seção Autoridade da saída de escavação)Verificação rápida para ver se você está perguntando ao NS autoritário: Se você executar
dig
novamente e o TTL mudar, provavelmente está atingindo um cache. Se permanecer o mesmo, você provavelmente está perguntando ao servidor autoritativo (ou a um que tenha quebrado o cache).Não consegui ver os servidores autoritativos na saída de escavação padrão, mas o seguinte
retornou-os, que poderiam então ser usados conforme descrito por voretaq7 para obter o valor real de TTL para o registro.
Atualização: continuei esquecendo como fazer isso e tendo que voltar, então escrevi um pequeno script para primeiro buscar o servidor de nomes autoritário e depois cavar usando-o