DNSGlobe, утилита в терминале для отслеживания распространения DNS по миру

DNSGlobe, утилита в терминале для отслеживания распространения DNS по миру

DNSGlobe, TUI-утилита для проверки распространения DNS-записей в терминале. Запрашивает 34 общедоступных DNS-резолвера по всему миру параллельно, сравнивает их ответы и визуализирует результаты на мировой карте. Это терминальный аналог dnschecker.org и whatsmydns.net, но с режимом отслеживания: запустите проверку, и инструмент автоматически переопрашивает, пока запись не распространится везде.

Резолверы охватывают глобальные сети anycast (Google, Cloudflare, Quad9), Северную Америку, Европу, Россию, Ближний Восток, Восточную Азию и Южное полушарие, Telstra (Австралия), SafeSurfer (Новая Зеландия), UOL (Бразилия). Каждый резолвер запрашивается напрямую без кэша, с EDNS0 и TCP-fallback для обрезанных ответов, что показывает текущее состояние записи именно на этом сервере.

Ответы с одинаковыми записями группируются, например, round-robin DNS, где разные резолверы кэшируют разные IP из пула, считается одним согласованным ответом, а не множественными конфликтами. На терминалах шириной более 150 символов справа отображается мировая карта с точками для каждого резолвера, раскрашенными по статусу: зелёный (согласован), пурпурный (отличается), красный (ошибка), жёлтый (в процессе). Индикатор показывает, какой процент резолверов в большинстве; отличающиеся помечаются как DIFFERS.

Ключевые факты

  • Запускается в терминале с режимом watch, автоматически переопрашивает до полного распространения DNS-записи
  • Опрашивает одновременно 34 резолвера из разных регионов (включая Россию), каждый напрямую, без кэша
  • На широких терминалах отображает интерактивную мировую карту с цветовой индикацией статуса каждого резолвера
  • Может использоваться в скриптах с флагом --once для вывода результатов и выхода
  • Установка: brew install 514-labs/tap/dnsglobe (macOS/Linux) или cargo install dnsglobe

Почему это важно

При миграции DNS, смене провайдера или изменении записей нужно убедиться, что запись распространилась везде. Обычно это требует посещения нескольких веб-сайтов в браузере или выполнения множества одиночных команд dig для разных резолверов. DNSGlobe объединяет всё в один интерфейс терминала с автоматическим отслеживанием и визуализацией на карте, экономит время и снижает риск упустить проблему на каком-нибудь резолвере.

Кому это важно

DevOps-инженерам, системным администраторам, специалистам по инфраструктуре и разработчикам, регулярно работающим с DNS, при миграции доменов, смене авторитетных серверов, обновлении MX/CNAME/A-записей, проверке глобальной консистентности после изменений.

Как это применить

Установить: brew install 514-labs/tap/dnsglobe (Homebrew) или cargo install dnsglobe (из crates.io). Затем запустить dnsglobe (пустой интерфейс, вводить домен вручную) или dnsglobe example.com (немедленная проверка с режимом watch). Для интеграции в скрипты использовать dnsglobe --once example.com TXT (выводит результаты и выходит без интерактивного режима).

Можно ли доверять

Инструмент открыт (GitHub 514-labs/dnsglobe), использует прямые запросы к резолверам, которые были проверены на способность отвечать на внешние запросы. Список резолверов находится в файле src/resolvers.rs и доступен для проверки. Отсутствуют какие-либо скрытые зависимости или централизованные промежуточные серверы, только прямые запросы к публичным DNS-серверам.

Риски и подводные камни

Некоторые резолверы построены на anycast-сетях, поэтому фактический сервер, который отвечает, может быть географически близок к вам, а не в указанном регионе, в таблице указан домашний регион, а не реальный узел, обслужившего запрос. Многие крупные африканские ISP-резолверы отказывают в обслуживании запросов с внешних сетей и поэтому не включены в список. Интерпретация результатов требует понимания DNS, например, round-robin может выглядеть как несоответствие, если не знать, как инструмент группирует ответы.

«Каждый резолвер запрашивается напрямую (без кэша, EDNS0, TCP fallback для обрезанных ответов), поэтому вы видите текущее состояние записи именно на этом сервере.»

— DNSGlobe (GitHub 514-labs)