TTL ao consultar qualquer registro com dig

4

Esta pergunta vem do tópico . Quando faço isso, recebo os segundos restantes até que o registro A expire no servidor de nomes consultado:

dig stackexchange.com

No entanto, se eu fizer isso, recebo os valores de TTLs autorizados:

dig any stackexchange.com 

Então, eu não entendo porque quando eu faço dig any stackexchange.com eu recebo todos os valores TTL como se eu fizesse uma pergunta autoritária, quando eu fiz uma consulta recursiva.

    
por whitenoisedb 02.02.2015 / 23:33

2 respostas

6

Para ser breve, ambas as consultas que você mencionou na pergunta são consultas não autoritativas.

Os registros DNS de um domínio podem ser consultados em um servidor DNS em cache ou em um servidor DNS autoritativo. Portanto, quando você quiser consultar um servidor DNS em cache, poderá especificar o endereço IP do DNS ou, se não estiver especificado, o servidor DNS padrão que foi configurado em /etc/resolv.conf será usado.

Consulta não autorizada

$ dig stackexchange.com

ou

$ dig stackexchange.com @8.8.8.8

Nos dois casos acima, a consulta retorna uma resposta não autoritativa porque o DNS do seu ISP ou o DNS público do Google (8.8.8.8) não são autoritativos para stackexchange.com domain. Como você consultou um servidor de nomes não autoritativo, o valor TTL que ele fornece diminuirá para cada vez que você o consultar. Quando o valor de TTL expirar, o servidor de nomes de armazenamento em cache irá repetir a consulta do servidor DNS autoritativo.

Consulta autoritativa

Portanto, para obter uma resposta autoritativa, é necessário consultar o registro em um servidor DNS autoritativo, que pode ser encontrado com o método abaixo.

$ dig ns stackexchange.com
       ...
;; ANSWER SECTION:
stackexchange.com.  84894   IN  NS  cf-dns02.stackexchange.com.
stackexchange.com.  84894   IN  NS  cf-dns01.stackexchange.com.
       ...

A SECÇÃO ANSWER fornece os servidores de nomes oficiais para o domínio stackexchange.com , pelo que, se precisarmos de obter a resposta oficial,

$ dig stackexchange.com @cf-dns01.stackexchange.com.

Enquanto nós consultamos o servidor DNS autoritativo, os valores de TTL não serão alterados porque esses Nameservers são a principal fonte de informação e não expiram até que seu administrador a altere.

Como QUALQUER registro funciona

QUALQUER registro é como um curinga, você pode usá-lo para obter todos os registros armazenados em cache em um servidor DNS. Por exemplo, consultei stackexchange.com para QUALQUER registro e meu servidor DNS padrão responde como abaixo.

$ dig any stackexchange.com
    ....
;; ANSWER SECTION:
stackexchange.com.  86350   IN  SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600
stackexchange.com.  176 IN  A   198.252.206.140
stackexchange.com.  84338   IN  NS  cf-dns01.stackexchange.com.
stackexchange.com.  84338   IN  NS  cf-dns02.stackexchange.com.
    ....

Aqui, você pode ver que a resposta contém apenas informações sobre SOA , A e NS record. Mas, na verdade, existem mais registros para stackexchange.com que não estão armazenados em cache no meu servidor DNS padrão, uma vez que não o tenho consultado.

Agora estou consultando o MX record para meu servidor DNS padrão e a resposta é

$ dig MX stackexchange.com
    ....
;; ANSWER SECTION:
stackexchange.com.  300 IN  MX  10 aspmx3.googlemail.com.
stackexchange.com.  300 IN  MX  5 alt2.aspmx.l.google.com.
stackexchange.com.  300 IN  MX  5 alt1.aspmx.l.google.com.
stackexchange.com.  300 IN  MX  10 aspmx2.googlemail.com.
stackexchange.com.  300 IN  MX  1 aspmx.l.google.com.
    ....

Agora, eu novamente pesquise ANY record e agora você pode ver que a consulta de ANY também retornou MX records. E assim ANY record apenas fornecerá registros que só são armazenados em cache no seu servidor de nomes padrão.

$ dig any stackexchange.com
     ....
;; ANSWER SECTION:
stackexchange.com.  298 IN  MX  5 alt1.aspmx.l.google.com.
stackexchange.com.  298 IN  MX  10 aspmx2.googlemail.com.
stackexchange.com.  86084   IN  NS  cf-dns01.stackexchange.com.
stackexchange.com.  298 IN  MX  10 aspmx3.googlemail.com.
stackexchange.com.  298 IN  MX  1 aspmx.l.google.com.
stackexchange.com.  298 IN  MX  5 alt2.aspmx.l.google.com.
stackexchange.com.  86084   IN  NS  cf-dns02.stackexchange.com.
stackexchange.com.  243 IN  A   198.252.206.140
stackexchange.com.  86343   IN  SOA cf-dns01.stackexchange.com. dns.cloudflare.com. 2017456480 10000 2400 604800 3600
     ....

E, como você pode ver, os valores de TTL estão mudando para respostas não autoritativas.

    
por 04.02.2015 / 06:53
1

Você não está entendendo o campo TTL em consultas DNS. O TTL é um indicador para o cliente quanto tempo deve armazenar em cache os resultados antes de consultar novamente o servidor de nomes. A menos que você atualize seu servidor DNS com um valor diferente para o TTL, a resposta será sempre a mesma. É uma prática muito ruim reexaminar os servidores de nomes toda vez que você precisar resolver um nome de host para um IP.

    
por 03.02.2015 / 00:28