Por que os servidores de nomes com autoridade e em cache retornam registros diferentes para QUALQUER tipo?

2

Por que os servidores de nomes com autoridade de registros DNS freqüentemente fornecem resultados diferentes dos servidores de nome em cache se registros "ANY" são solicitados?

Os servidores de nomes oficiais parecem consistentemente fornecer mais registros do que o cache - por exemplo, retornando registros MX ou TXT quando o servidor de nomes de cache só retornará esses registros se forem explicitamente solicitados.

Por exemplo, no sistema da minha casa (OS X), a diferença entre os dois comandos a seguir

$ dig -t ANY +noall +nottl +answer microsoft.com
$ dig -t ANY +noall +nottl +answer microsoft.com @ns1.msft.net

é que o primeiro só retorna os NS records; o segundo adiciona em MX , SOA e TXT . No entanto, em um sistema Linux separado, com uma configuração de DNS completamente diferente, os únicos registros "ausentes" são MX e SOA .

    
por ithinkihaveacat 06.02.2016 / 13:09

1 resposta

4

Você está escondendo a resposta de si mesmo com as opções dig que removem informações da saída, especificamente TTL, neste caso.

Se olharmos para a seção de respostas completa:

;; ANSWER SECTION:
microsoft.com.          3600    IN      A       23.96.52.53
microsoft.com.          3600    IN      A       191.239.213.197
microsoft.com.          3600    IN      A       104.40.211.35
microsoft.com.          3600    IN      A       104.43.195.251
microsoft.com.          3600    IN      A       23.100.122.175
microsoft.com.          172800  IN      NS      ns3.msft.net.
microsoft.com.          172800  IN      NS      ns4.msft.net.
microsoft.com.          172800  IN      NS      ns1.msft.net.
microsoft.com.          172800  IN      NS      ns2.msft.net.
microsoft.com.          3600    IN      SOA     ns1.msft.net. msnhst.microsoft.com. 2016020503 7200 600 2419200 3600
microsoft.com.          3600    IN      MX      10 microsoft-com.mail.protection.outlook.com.
microsoft.com.          3600    IN      TXT     "v=spf1 include:_spf-a.microsoft.com include:_spf-b.microsoft.com include:_spf-c.microsoft.com include:_spf-ssg-a.microsoft.com include:spf-a.hotmail.com ip4:147.243.128.24 ip4:147.243.128.26 ip4:147.243.1.153 ip4:147.243.1.47 ip4:147.243.1.48 -all"
microsoft.com.          3600    IN      TXT     "FbUF6DbkE+Aw1/wi9xgDi8KVrIIZus5v8L6tbIQZkGrQ/rVQKJi8CjQbBtWtE64ey4NJJwj5J65PIggVYNabdQ=="

Podemos ver que nem todos os registros têm o mesmo TTL, o que significa que eles serão despejados do cache do servidor de resolução de cache em momentos diferentes.

Isso em combinação com a forma como o tipo de consulta ANY foi definido significa que é bem possível (e válido) obter apenas o que resta no cache como resposta.

Como resultado desse comportamento, QTYPE * aka ANY não é confiável para uma listagem precisa de todos os registros, se houver servidores de armazenamento em cache envolvidos. É mais útil na solução de problemas (e, eu consideraria útil até mesmo se você tiver um bom entendimento do que significa ANY ).

    
por 06.02.2016 / 13:25