Утилиты DNS host и dig | Компьютерные сети 2025 - 23

ruticker 04.03.2025 23:47:56

Текст распознан YouScriptor с канала Andrey Sozykin

распознано с видео на ютубе сервисом YouScriptor.com, читайте дальше по ссылке Утилиты DNS host и dig | Компьютерные сети 2025 - 23

Привет, я Андрей Сазыкин. Это практика по курсу "Компьютерные сети". Сегодня мы научимся использовать команды `host` и `dig` для того, чтобы отправлять запросы к DNS. Ранее мы использовали в основном утилиту `nslookup`, которая по умолчанию установлена в Windows. Однако `nslookup` использовать не всегда удобно, и её одно время объявляли устаревшей. Однако впоследствии это объявление было отменено. В Linux, кроме `nslookup`, можно использовать команды `host` и `dig`. Давайте рассмотрим, как это делать. Для демонстрации я использую подсистему Windows для Linux. Вот инструкция по установке, она есть в описании видео. В Linux, так же как и в Windows, можно использовать утилиту `nslookup` для отправки DNS запросов. Давайте отправим запрос: вот IP адрес сервера `hub.com`. То же самое можно сделать и с помощью утилиты `host`. Вывод утилиты `host` содержит меньше диагностической информации. Нет информации о сервере, от которого получена информация, является ли ответ заслуживающим доверия или нет. Если всё, что вам нужно, это получить IP адрес, то команду `host` использовать удобнее, особенно если вы хотите потом автоматически обрабатывать результат. В выводе команды `host` мы видим, что доменное имя `hub.com` имеет вот такой IP адрес, и почта для сервера `hub.com` обслуживается вот таким сервером (единственный сервер, приоритет 10). Давайте сделаем запрос с помощью команды `host` к доменному имени `wazn.ru`. Здесь мы можем видеть, что `wazn.ru` — это alias или каноническое имя для имени `asazn.ru`, а доменное имя `asazn.ru` имеет вот такой адрес. Здесь получилось, что утилита `host` отправила два запроса: первый определил псевдоним, а второй определил IP адрес для доменного имени. Если мы хотим явно указать утилите `host`, какой тип записи мы хотим запросить, то указываем в команде `-t NS hub.com`. Видим, что `hub.com` — name сервер и три названия серверов. Таким образом, вывод команды `host` более лаконичный, чем команды `nslookup`. Теперь давайте посмотрим, как работает утилита `dig` (это сокращение от Domain Information Groper). Давайте отправим запрос с помощью `dig` для доменного имени `hub.com`. Вот так выглядит ответ команды `dig hub.com`, и здесь ответ содержит гораздо больше информации, чем `host` и `nslookup`. Поэтому команда `dig` больше подходит для администраторов, она может понять, что происходит в системе доменных имён, и её можно использовать для диагностики. В выводе команды `dig` есть та информация, которую раньше мы могли смотреть только с помощью Wireshark, например, заголовки DNS ответа, различные секции DNS пакета. Секция запроса (question) — что было в исходном запросе: доменное имя `hub.com`, класс записи IN, тип записи A. Секция ответа тоже одна строчка: доменное имя `hub.com`, время жизни 542 секунды, класс записи IN, тип записи A, IP версия 4. В конфигурационных файлах DNS чаще всего записи прописываются именно таким образом, поэтому вывод `dig` удобен и понятен для администраторов. В конце есть диагностическая информация: время запроса, какой DNS сервер отправил информацию и какой протокол транспортного уровня использовался (протокол UDP). Давайте рассмотрим более сложный пример использования утилиты `dig`. Например, запросим адреса серверов имён для зоны `yandex.ru`. Ответ достаточно большой, в нём есть несколько секций. Вот исходная секция: мы запрашиваем для доменного имени запись типа NS. Это секция с ответом: есть две записи `yandex.ru`, запись типа NS — доменное имя `ns2.yandex.ru`, и вторая запись также типа NS — `ns1.yandex.ru`. Также здесь мы видим, что в ответе есть секция дополнительных записей. Это те записи, которые мы явно не запрашивали, но которые могут нам понадобиться. Что здесь за записи? Для доменного имени `ns1.yandex.ru` есть запись об его IP версия 4 адресе и IP версия 6 адресе. То же самое сделано для записи `ns2.yandex.ru`: адрес IP версия 4, адрес IP версия 6. Почему DNS сервер включил эти записи? Скорее всего, если мы спрашиваем, какие именно серверы обслуживают доменную зону `yandex.ru`, то наверняка мы захотим знать не только их доменные имена, но и IP адреса. Поэтому нам, скорее всего, придётся отправить DNS запрос на IP адрес для каждого из этих имён, и DNS сервер сразу включил вот такую информацию, чтобы мы её дополнительно не запрашивали. Давайте посмотрим, как выглядит эта дополнительная секция в Wireshark. Вот наш исходный запрос. Давайте посмотрим, что в нём содержится: только один запрос для сервера Яндекс. Мы хотим получить запись типа NS, и вот ответ. В заголовке количество запросов — один, количество ответов — два (это два доменных имени, которые обслуживают доменную зону `yandex.ru`), и количество дополнительных записей — пять (это записи с IP версия 4 и IP версия 6 адресами сервера `ns1.yandex.ru`, то же самое для сервера `ns2.yandex.ru`, и дополнительная информация с опциями). Итак, теперь вы знаете, как использовать для работы с DNS не только утилиту `nslookup`, но и команды `host` и `dig`. Команда `host` полезна тем, что её вывод максимально короткий, там содержится только полезная информация, а команда `dig`, наоборот, содержит дополнительную информацию, её удобно использовать для диагностики работы с DNS. В выводе `dig` много информации из пакетов DNS из разных секций, которую мы раньше могли смотреть только в Wireshark. На этом практическое занятие закончилось. Спасибо, что смотрели! До свидания!

Назад

Залогинтесь, что бы оставить свой комментарий

Copyright © StockChart.ru developers team, 2011 - 2023. Сервис предоставляет широкий набор инструментов для анализа отечественного и зарубежных биржевых рынков. Вы должны иметь биржевой аккаунт для работы с сайтом. По вопросам работы сайта пишите support@ru-ticker.com