Comando Dig: A saída tem garantia de classificação?

Comando Dig: A saída tem garantia de classificação?

Digamos que estou tentando pesquisar os IPs mail.yahoo.comegmail.commail.google.com

Se eu executar:

dig @8.8.8.8 +nocomments +noquestion \
    +noauthority +noadditional +nostats +nocmd \
    gmail.com mail.yahoo.com mail.google.com

Eu recebo:

gmail.com.                       299    IN  A       173.194.123.21
gmail.com.                       299    IN  A       173.194.123.22
mail.yahoo.com.                    0    IN  CNAME   login.yahoo.com.
login.yahoo.com.                   0    IN  CNAME   ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com.        0    IN  CNAME   ats.member.g02.yahoodns.net.
ats.member.g02.yahoodns.net.       0    IN  CNAME   any-ats.member.a02.yahoodns.net.
any-ats.member.a02.yahoodns.net.  17    IN  A       98.139.21.169
mail.google.com.                   0    IN  CNAME   googlemail.l.google.com.
googlemail.l.google.com.         243    IN  A       173.194.123.21
googlemail.l.google.com.         243    IN  A       173.194.123.22

Posso garantir que, se eu vir um CNAMEregistro, o Aregistro correspondente a ele não aparecerá antes de um registro CNAMEcorrespondente a outra máquina ou de um Aregistro para outro nome de host?

Por exemplo, deixe-me focar mail.yahoo.com(eu só quero que o IP ou IPs mail.yahoo.comresolvam):

Esta é a saída:

mail.yahoo.com.                    0    IN  CNAME   login.yahoo.com.
login.yahoo.com.                   0    IN  CNAME   ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com.        0    IN  CNAME   ats.member.g02.yahoodns.net.
ats.member.g02.yahoodns.net.       0    IN  CNAME   any-ats.member.a02.yahoodns.net.
any-ats.member.a02.yahoodns.net.  17    IN  A       98.139.21.169

O nome do host que estou procurando ( mail.yahoo.com) é a primeira coluna da primeira entrada. Depois, há um monte de coisas com as quais CNAMESrealmente não me importo e, em seguida, um Aregistro com o IP real (com o qual me importo).

Existe a possibilidade de os registros ficarem CNAMESfora Ade ordem? Algo como:

ats.login.lgg1.b.yahoo.com.        0    IN  CNAME   ats.member.g02.yahoodns.net. #(!)BAD
ats.member.g02.yahoodns.net.       0    IN  CNAME   any-ats.member.a02.yahoodns.net. #(!)BAD
mail.yahoo.com.                    0    IN  CNAME   login.yahoo.com.
login.yahoo.com.                   0    IN  CNAME   ats.login.lgg1.b.yahoo.com.
any-ats.member.a02.yahoodns.net.  17    IN  A       98.139.21.169

Ou ainda pior (o Aregistro real no topo):

any-ats.member.a02.yahoodns.net.  17    IN  A       98.139.21.169
mail.yahoo.com.                    0    IN  CNAME   login.yahoo.com.
login.yahoo.com.                   0    IN  CNAME   ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com.        0    IN  CNAME   ats.member.g02.yahoodns.net.
ats.member.g02.yahoodns.net.       0    IN  CNAME   any-ats.member.a02.yahoodns.net.

Ou o pior dos piores (em uma digexecução multi-resolução, como a mostrada no topo do post):

ats.member.g02.yahoodns.net.       0    IN  CNAME   any-ats.member.a02.yahoodns.net.
any-ats.member.a02.yahoodns.net.  17    IN  A       98.139.21.169
mail.google.com.                   0    IN  CNAME   googlemail.l.google.com.  # This one I want
gmail.com.                       299    IN  A       173.194.123.21            # This one I want
gmail.com.                       299    IN  A       173.194.123.22            # This one I want
mail.yahoo.com.                    0    IN  CNAME   login.yahoo.com.          # This one I want
login.yahoo.com.                   0    IN  CNAME   ats.login.lgg1.b.yahoo.com.
ats.login.lgg1.b.yahoo.com.        0    IN  CNAME   ats.member.g02.yahoodns.net.
googlemail.l.google.com.         243    IN  A       173.194.123.21
googlemail.l.google.com.         243    IN  A       173.194.123.22

Agradeço antecipadamente.

Responder1

Não - a ordem do resultado retornado depende do servidor DNS, e você não tem controle sobre isso, então eu não dependeria da ordem de um servidor DNS específico.

Eu acredito e meus testes até agora confirmaram isso, que as consultas reais são feitas em ordem, no seu caso, primeiro google.com e por último mail.google.com - isso porque dig executará as consultas na ordem que você especifique na linha de comando.

Devido à forma como a sintaxe da linha de comando é configurada, a ordem é importante. Assim, minha resposta. Se não os abordasse na ordem especificada, quaisquer modificadores não globais seriam prejudicados.

Na página de manual:

A implementação BIND 9 de dig suporta a especificação de múltiplas consultas na linha de comando (além de suportar a opção -f arquivo em lote). Cada uma dessas consultas pode ser fornecida com seu próprio conjunto de sinalizadores, opções e opções de consulta.

Neste caso, cada argumento de consulta representa uma consulta individual na sintaxe da linha de comando descrita acima. Cada um consiste em qualquer uma das opções e sinalizadores padrão, o nome a ser pesquisado, um tipo e classe de consulta opcional e quaisquer opções de consulta que devam ser aplicadas a essa consulta.

informação relacionada