
Digamos que estou tentando pesquisar os IPs mail.yahoo.com
egmail.com
mail.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 CNAME
registro, o A
registro correspondente a ele não aparecerá antes de um registro CNAME
correspondente a outra máquina ou de um A
registro para outro nome de host?
Por exemplo, deixe-me focar mail.yahoo.com
(eu só quero que o IP ou IPs mail.yahoo.com
resolvam):
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 CNAMES
realmente não me importo e, em seguida, um A
registro com o IP real (com o qual me importo).
Existe a possibilidade de os registros ficarem CNAMES
fora A
de 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 A
registro 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 dig
execuçã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.