Диагностика DNS начинается с определения проверяемого уровня. Инструменты системного резолвера учитывают локальные файлы и политику, а dig и nslookup отправляют DNS-запросы и могут напрямую обращаться к конкретному серверу.
DNS · Урок 6
Инструменты DNS
Узнайте, как сравнивать системное разрешение имён и прямые DNS-запросы с помощью getent, resolvectl и dig.
Проверка системного резолвера
Используйте обычный системный путь службы имён хостов:
$ getent ahosts www.example.com
На хосте с systemd-resolved проверьте серверы отдельных соединений, поисковые домены и состояние протоколов:
$ resolvectl status
$ resolvectl query www.example.com
Приложение всё равно может использовать собственную библиотеку резолвера или прокси, поэтому при расхождении результатов воспроизведите запрос через само приложение.
Какая команда задействует настроенный системный путь службы имён?
Запросы с помощью dig
Укажите имя и тип записи:
$ dig www.example.com A
$ dig www.example.com AAAA
$ dig example.com MX
Вывод показывает ответивший сервер, статус, флаги, вопрос, ответ, авторитетные и дополнительные данные, время запроса и сведения о транспорте. Параметр +short удобен для сценариев, но скрывает доказательства, необходимые для диагностики.
Какой запрос запрашивает записи IPv6-адресов?
Выбор сервера
Явно укажите резолвер или авторитетный сервер:
$ dig @192.0.2.53 www.example.com A
Чтобы отличить кеш от авторитетного источника, сравнивайте настроенный рекурсивный резолвер, второй одобренный резолвер и каждый авторитетный сервер. Статус NOERROR может не содержать запрошенного ответа; NXDOMAIN означает, что запрошенное имя не существует, а SERVFAIL — что сервер не смог завершить запрос.
Может ли при NOERROR раздел ответа быть пустым?
Проверка рекурсии и авторитетности
Флаг rd в запросе требует рекурсии; ra в ответе сообщает, что сервер её предоставляет. aa означает авторитетность ответа. Запрашивайте авторитетный сервер с +norecurse, чтобы не спутать рекурсивный кеш с данными обслуживаемой зоны.
Команда dig +trace NAME выполняет собственный итеративный обход, начиная с корневых подсказок. Её результат может отличаться от производственного резолвера, потому что она обходит его кеш, пересылку, политику, проверку DNSSEC и сетевое расположение.
Что означает флаг ответа aa?
Проверка обратных запросов и TCP
Используйте -x, чтобы создать обратный PTR-запрос:
$ dig -x 192.0.2.25
При исследовании усечения, передачи зон или различий межсетевого экрана проверьте DNS через TCP:
$ dig +tcp @192.0.2.53 example.com SOA
Современный DNS может использовать UDP или TCP на порту 53; там, где они необходимы, нужно разрешить оба транспорта. Флаг усечения в UDP-ответе побуждает соответствующие стандарту клиенты повторить запрос через подходящий транспорт.
Что изменяет dig +tcp?
Урок завершён
Вы завершили Инструменты DNS
Теперь вы можете выбирать инструмент DNS в соответствии с исследуемым уровнем разрешения имён.
Использовать
getentдля настроенного пути системного резолвера.Вызывать
digс явно указанными типами записей и серверами.Совместно интерпретировать статус, флаги, разделы и ответивший сервер.
Отделять рекурсивный кеш от авторитетных данных.
Проверять обратные запросы и оба необходимых транспорта DNS.
Сохраните прогресс
Создайте бесплатный аккаунт, чтобы сохранить этот урок и продолжить на любом устройстве.
Создать бесплатный аккаунт