Допустим, я пытаюсь найти IP-адреса mail.yahoo.com , gmail.com и mail.google.com

Если я выполню:

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

Я получил:

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

Могу ли я убедиться, что, если я увижу запись CNAME , соответствующая ей запись A не появится перед CNAME соответствующей другой машине, или записью A для другого имени хоста?

Например, позвольте мне сосредоточиться на mail.yahoo.com (я просто хочу, чтобы IP или IP-адреса, которые разрешает mail.yahoo.com ):

Это вывод:

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.yahoo.com) - это первый столбец первой записи. Затем есть группа CNAMES мне действительно безразличны, а затем запись A с фактическим IP (о которой я забочусь).

Есть ли возможность вывести записи CNAMES или A из строя? Что-то вроде:

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

Или еще хуже (фактическая запись A сверху):

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.

Или хуже хуже (в исполнении dig мульти-разрешением, как показано на верхней части поста):

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

Заранее спасибо.

1 ответ1

0

Нет - порядок возврата результатов зависит от DNS-сервера, и вы не можете это контролировать, поэтому я не буду зависеть от порядка от конкретного DNS-сервера.

Я верю, и мои тесты до сих пор подтвердили это, что фактические запросы выполняются по порядку, в вашем случае, сначала google.com, и последний mail.google.com - потому что dig выполнит запросы в том порядке, в каком вы укажите в командной строке.

Из-за того, как настроен синтаксис командной строки, важен порядок. Таким образом, мой ответ. Если он не подходит к ним в указанном порядке, любые неглобальные модификаторы будут испорчены.

Со страницы руководства:

Реализация dig в BIND 9 поддерживает указание нескольких запросов в командной строке (в дополнение к поддержке опции -f batch file). Каждый из этих запросов может быть снабжен собственным набором флагов, опций и опций запроса.

В этом случае каждый аргумент запроса представляет отдельный запрос в синтаксисе командной строки, описанном выше. Каждый состоит из любых стандартных параметров и флагов, имени, которое нужно найти, необязательного типа и класса запроса и любых параметров запроса, которые должны быть применены к этому запросу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .