Comando de excavación: ¿Se garantiza que la salida estará ordenada?

Comando de excavación: ¿Se garantiza que la salida estará ordenada?

Digamos que estoy intentando buscar las IP mail.yahoo.comygmail.commail.google.com

Si ejecuto:

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

Yo obtengo:

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

¿Puedo asegurarme de que si veo un CNAMEregistro, el Aregistro correspondiente no aparecerá antes que el CNAMEcorrespondiente a otra máquina o un Aregistro para otro nombre de host?

Por ejemplo, permítanme centrarme en mail.yahoo.com(solo quiero que la IP o las IP mail.yahoo.comse resuelvan en):

Esta es la salida:

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

El nombre de host que estoy buscando ( mail.yahoo.com) es la primera columna de la primera entrada. Luego hay un montón de CNAMEScosas que realmente no me importan, y luego un Aregistro con la IP real (que sí me importa).

¿Existe la posibilidad de que los registros CNAMESo Ase estropeen? 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

O peor aún (el Aregistro real arriba):

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.

O lo peor de lo peor (en una ejecución multiresolución dig, como la que se muestra en la parte superior de la publicación):

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

Gracias de antemano.

Respuesta1

No, el orden del resultado devuelto depende del servidor DNS y usted no tiene control sobre eso, por lo que no dependería del orden de un servidor DNS en particular.

Creo, y mis pruebas hasta ahora lo han confirmado, que las consultas reales se realizan en orden, en su caso, primero google.com y último mail.google.com; eso se debe a que dig ejecutará las consultas en el orden que usted especificar en la línea de comando.

Debido a cómo está configurada la sintaxis de la línea de comandos, el orden es importante. De ahí mi respuesta. Si no se acercara a ellos en el orden especificado, cualquier modificador no global se arruinaría.

Desde la página de manual:

La implementación BIND 9 de dig admite la especificación de múltiples consultas en la línea de comando (además de admitir la opción de archivo por lotes -f). Cada una de esas consultas se puede proporcionar con su propio conjunto de indicadores, opciones y opciones de consulta.

En este caso, cada argumento de consulta representa una consulta individual en la sintaxis de línea de comandos descrita anteriormente. Cada uno consta de cualquiera de las opciones e indicadores estándar, el nombre que se buscará, un tipo y clase de consulta opcional y cualquier opción de consulta que deba aplicarse a esa consulta.

información relacionada