Найти в Дзене

DIG: исследуем DNS в Linux

Утилита dig — это швейцарский нож для работы с DNS. Эта шпаргалка поможет вам использовать её не просто для пинга доменов, а для глубокой диагностики и написания надежных скриптов. Темы статьи: #LinuxApps #Diagnostics #Analysis #DNS Сегодня, мы изучим пока ещё новую для нас утилиту DIG (Domain Information Groper). Это отраслевой стандарт командной строки для опроса серверов доменных имен DNS. Исходные коды DIG: смотреть на GitLab В отличие от высокоуровневых инструментов (таких как веб-браузеры или утилиты ping), которые часто полагаются на внутренний резолвер и кэширование операционной системы, dig позволяет отправлять запросы непосредственно конкретным серверам имён. Это делает dig незаменимым инструментом, особенно, в тех случаях, когда необходима: Обсудим способы применения и «лучшие практики», использования приложения dig для анализа и диагностики служб DNS. Эти флаги критически важны, если вы пишете Bash-скрипты или парсите данные DNS программно. Идеально подходит, когда вам ну
Оглавление

Команда DIG (Domain Information Groper)

Утилита dig — это швейцарский нож для работы с DNS. Эта шпаргалка поможет вам использовать её не просто для пинга доменов, а для глубокой диагностики и написания надежных скриптов.

Обзор приложения DIG для анализа DNS в операционной системе Linux (Источник: Gemini).
Обзор приложения DIG для анализа DNS в операционной системе Linux (Источник: Gemini).

Темы статьи: #LinuxApps #Diagnostics #Analysis #DNS

Сегодня, мы изучим пока ещё новую для нас утилиту DIG (Domain Information Groper). Это отраслевой стандарт командной строки для опроса серверов доменных имен DNS.

Исходные коды DIG: смотреть на GitLab

В отличие от высокоуровневых инструментов (таких как веб-браузеры или утилиты ping), которые часто полагаются на внутренний резолвер и кэширование операционной системы, dig позволяет отправлять запросы непосредственно конкретным серверам имён. Это делает dig незаменимым инструментом, особенно, в тех случаях, когда необходима:

  1. диагностика проблем распространения DNS (propagation)
  2. проверка изменений в файлах DNS зон
  3. анализ безопасности DNS.

Обсудим способы применения и «лучшие практики», использования приложения dig для анализа и диагностики служб DNS.

Утилита DIG для изучения, анализа и диагностики служб доменных имён. Источник: Gemini
Утилита DIG для изучения, анализа и диагностики служб доменных имён. Источник: Gemini

1. Чистота вывода и автоматизация

Эти флаги критически важны, если вы пишете Bash-скрипты или парсите данные DNS программно.

Уровень 1: Быстрая визуальная проверка (+short)

Идеально подходит, когда вам нужен только IP-адрес.

⚠️ Внимание: Не используйте в строгих скриптах без осторожности. Этот флаг автоматически следует за CNAME, что может нарушить логику, если скрипт ожидает строго определённый тип записи.

-> dig google.com +short
# Вывод: 142.250.190.46

Уровень 2: Стандарт для скриптов (+noall +answer)

Рекомендуемая практика (Best Practice): метод убирает весь «шум» (заголовки, секцию вопроса, статистику), но сохраняет структуру столбцов (имя, TTL, класс, тип, IP). Это позволяет утилитам вроде awk надежно разбирать данные.

-> dig google.com +noall +answer
# Вывод: google.com. 195 IN A 142.250.190.46

Уровень 3: Парсинг через AWK

Пример того, как получить только IP, но сохранить контроль над обработкой ошибок (в отличие от +short):

-> dig google.com +noall +answer | awk '{print $5}'

2. Устранение неполадок и проверка распространения DNS

Используйте эти команды, чтобы обойти локальный кэш и увидеть «реальное» состояние DNS в мире.

Проверка без кэша (@server)

Запрос к конкретному авторитетному серверу или публичному резолверу (Google, Cloudflare) напрямую, минуя кэш вашего провайдера или ОС.

-> dig google.com @8.8.8.8
->
dig google.com @ns1.google.com # Прямой запрос к источнику

Трассировка от корня (+trace)

Выполняет рекурсивный поиск от корневых серверов (.) к домену верхнего уровня (.com) и далее к авторитетному серверу. Незаменимо, когда сайт «не открывается», и нужно понять, на каком этапе обрывается цепочка.

-> dig google.com +trace

Проверка согласованности зоны (+nssearch)

Опрашивает все авторитетные серверы имен (NS) для зоны, чтобы убедиться, что все они отдают одинаковый серийный номер SOA. Помогает найти рассинхронизацию между Master и Slave серверами.

-> dig google.com +nssearch

3. Основные типы записей

Синтаксис: dig <домен> <тип>

Таблица №1. Основные типы записей для использования с DNS. Источник: Gemini
Таблица №1. Основные типы записей для использования с DNS. Источник: Gemini

4. Продвинутые и массовые запросы

Массовая проверка из файла (-f)

Если у вас есть список доменов в файле domains.txt (по одному в строке):

-> dig -f domains.txt +short

Принудительный TCP режим (+tcp)

По умолчанию DNS использует протокол UDP. Если ответы приходят обрезанными (truncated) — часто бывает с длинными TXT-записями или DNSSEC — используйте этот флаг. Также полезно для проверки настроек брандмауэра.

-> dig google.com +tcp

5. Полезные ссылки

BIND 9

2. BIND 9 Administrator Reference Manual

BIND 9 Administrator Reference Manual — BIND 9 9.21.16-dev documentation

3. BIND 9 Best Practices - Recursive

kb.isc.org