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.