Основные инструменты DNS FreeBSD

В FreeBSD есть несколько инструментов для проверки информации DNS. Поскольку большинство серверов DNS работают по протоколу передачи дейтаграмм пользователя (User Datagram Protocol, UDP – глава 6), вы не можете применить telnet и непосредственно обратиться к серверу, как в случае с электронной почтой и веб-сервисом (о них речь пойдет позже). Доступ к информации DNS можно получить только с помощью host(l) и dig(l).

Команда host(1)

Для быстрого получения IP-адреса хоста применяйте команду host(l). Например, адрес веб-страницы моего издателя можно получить так:

#           host www.nostarch.com

www.nostarch.com has address 72.32.92.4

Это, пожалуй, самый простой вид запроса к DNS: «Вот тебе имя хоста, верни его IP-адрес». Другие, на первый взгляд, довольно простые запросы могут привести к более сложному результату:

#           host www.cnn.com

О www.cnn.com is an alias for cnn.com. © cnn.com has address 64.236.24.20 cnn.com has address 64.236.24.28

© cnn.com mail is handled by 10 atlmail5.turner.com. cnn.com mail is handled by 20 nycmail2.turner.com.

Этот пример показывает, что один и тот же хост может иметь несколько псевдонимов – в данном случае имя www.cnn.com в действительности является псевдонимом хоста cnn.com О.

На самом деле, у хоста cnn.com восемь отдельных IP-адресов © (в примере они не показаны). Здесь мы также видим почтовые серверы, которые занимаются обработкой электронной почты для cnn.com ©.

Введя в веб-броузере адрес http://www.nostarch.com, пользователь, фактически, направляет веб-броузер на машину с именем www.nostarch.com за ее веб-страницей по умолчанию. Броузер отправляется по единственному IP-адресу, указанному для этой машины. Когда запрашивается адрес http://www.cnn.com, распознаватель выбирает один из IP-адресов этой машины и передает его броузеру. Подобным образом почтовые серверы отправляют электронную почту одному из хостов, идентифицированных как серверы обработки почты данного домена. Приложениям требуется не только IP-адрес, но IP-адрес имеет очень большое значение. Не найдя компьютер, на котором находится веб-страница, вы не получите эту страницу!

Углубляемся в детали

Команда host(l) довольно полезна, но она, безусловно, не предоставляет подробную информацию. Кроме того, вы не знаете, откуда взялись данные – из кэша на локальной машине, или же сервер имен добыл их на сервере, ответственном за этот домен. Программа dig(l) – это стандартная программа для нахождения подробной информации DNS. (Другой инструмент, nslookup(l), долго был популярен, но устарел и сейчас практически не используется.) У dig есть множество ключей, которые позволяют выявлять различные неполадки, связанные со службой имен. Здесь рассмотрены основные возможности этой программы.

Базовая форма ее вызова включает имя «dig» и имя хоста. Например, чтобы найти сведения о веб-сервере моего издателя, можно ввести такую команду:

# dig www.nostarch.com

О ; «>> DIG 9.3.2-Р1 <<» www.nostarch.com © ;; global options: printcmd © ;; Got answer:

;; -»HEADER«- opcode: QUERY, ©status: NOERROR, id: 33643 ;; flags: gr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2 © ;; QUESTION SECTION: ;www.nostarch.com.          IN A

© ;; ANSWER SECTION:

www.nostarch.com.               2550 IN A              72.32.92.4

© ;; AUTHORITY SECTION:

nostarch.com.                   2550 IN NS ns2.laughingsguid.net.

nostarch.com.                   2550 IN NS ns1.laughingsguid.net.

© ;; ADDITIONAL SECTION:

ns1.laughingsguid.net. 171750 IN A                     72.3.155.219

ns2.laughingsguid.net. 171750 IN A                     72.32.93.189

;; Query time: 58 msec ;; SERVER: 198.22.63.8#53(198.22.63.8) ;; WHEN: Mon Nov 20 18:43:22 2006 ;; MSG SIZE rcvd: 135

Как много строк! Но обычно с помощью программы dig(l) ищут источник проблем, а в этом случае лучше узнать больше, чем меньше. Проанализируем информацию.

Прежде всего, строки, начинающиеся точкой с запятой, являются комментариями, которые не имеют прямого отношения к ответу, но могут содержать немаловажную информацию. Например, первая строка сообщает версию программы dig О. Во второй строке представлены ключи, которые применяет dig ©. Поскольку в командной строке ключи не были указаны, dig выполняется с ключами по умолчанию.

Далее следует первый фрагмент интересующей нас информации: откуда программа dig получила ответ ©. Элемент status © содержит важное слово N0ERR0R, подтверждающее, что запрос был выполнен без ошибок. Если слова N0ERR0R нет, то что-то не так. Типичные ошибки: NXD0MAIN (домен не существует) или SERVFAIL (сервер имен знает о существовании этого домена, но не имеет никакой информации о нем).

Раздел QUESTION

В разделе QUESTION © приводится фактический запрос, выполненный программой dig. В данном примере раздел запроса выглядит так:

;www.nostarch.com.              IN       A

Первая строка начинается точкой с запятой, то есть перед нами комментарий. Это текст запроса к службе DNS в формальном представлении. Сначала dig подтверждает, что была запрошена информация об имени www.nostarch.com, но что означает IN A? DNS может обслуживать различные системы имен, а не только IP-адреса и имена хостов в стиле Интернета. Комбинация символов IN указывает, что это система имен Интернета – все имена доменов принадлежат к классу IN. Завершается запрос описанием его типа – в данном случае запрашивался адрес (А). У нас есть имя хоста, и мы хотим получить его адрес. Тип PTR (pointer – ссылка) мог бы означать запрос на обратное разрешение имени в DNS (когда имеется IP-адрес и по нему требуется получить имя хоста). При работе с dig вам будут встречаться и другие типы запросов.

Раздел ANSWER

Раздел ANSWER © содержит полученную информацию.

www.nostarch.com.         2550 IN        А      72.32.92.4

Мы запросили информацию для хоста www.nostarch.com, поэтому первым указано имя. Далее следует число 2550 – это время жизни (Time- To-Live, TTL) данной информации. Наш локальный сервер имен может удерживать эту информацию в кэше в течение последующих 2250 секунд (примерно 42 минуты). По истечении этого времени локальный сервер имен удалит запись из кэша. Если кто-то еще раз запросит эту же информацию, локальный сервер DNS отправится за новым ответом. Пара символов IN означает данные Интернета, а А – что это адрес. В конце указан IP-адрес хоста www.nostarch.com – 72.32.92.4.

Раздел AUTHORITY

Для получения IP-адреса www.nostarch.com необходимо пройти по цепочке авторитетных серверов имен. В разделе AUTHORITY © перечислены серверы имен, ответственные за домен, – в нашем случае nsl.laugh- ingsquid.net и ns2.laughingsquid.net. Информация о www.nostarch.com будет находиться в кэше в течение 2550 секунд. И снова это адреса Интернета (IN).

Раздел ADDITIONAL

Наконец, в разделе ADDITIONAL © dig перечисляет IP-адреса всех хостов, представленных вместе с интересующим нас хостом. Программа dig определила авторитетные серверы имен для домена nostarch.com, но нам могут потребоваться IP-адреса этих серверов, чтобы в будущем выполнять DNS-запросы на получение информации о домене nostarch.com. Информация об авторитетных серверах имен получена, но обратите внимание на значение TTL – оно намного больше, чем то же значение в оригинальном запросе. Этот ответ будет храниться в кэше 171 750 секунд (48 часов). По истечении этого времени ваш локальный сервер имен удалит эти записи из кэша и снова обратится к корневому серверу имен за информацией об авторитетных серверах DNS для домена nostarch.com.

Запустите dig несколько раз с разными доменами и проанализируйте ее вывод.

Источник: ЛукасМ. FreeBSD. Подробное руководство, 2-е издание. – Пер. с англ. – СПб.: Символ- Плюс, 2009. – 864 е., ил.

Похожие посты:

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий