Назад | Перейти на главную страницу

Команда dig в Linux возвращает разные результаты

Запуск команды dig для конкретного домена возвращает предыдущие сведения о сервере имен. Например;

domain.com.     41068   IN  NS  ns1.nameserver1.com.

Теперь, если я запустил команду dig +nssearch host.example.com, за которым следует команда `dig domain.com ', я получаю другой результат.

domain.com.     41068   IN  NS  chad.ns.cloudflare.com.

РЕДАКТИРОВАТЬ

Детали сервера имен были изменены, однако выполнение команд в одном и том же временном окне дает разные результаты.

кеширование

Сервер имен, который ваша система использует в качестве преобразователя (/etc/resolv.conf) должен кэшировать ответы DNS.

Используя +nssearch switch вы обойдете кэшированные записи с вашего преобразователя (который на жаргоне сервера имен также называется рекурсивным сервером имен) и напрямую запросите авторитетный DNS-сервер (-ы), и вы получите записи, которые не поступают из кеша.
Как сказано в руководстве:

+[no]recurse Переключите установку бита RD (желаемая рекурсия) в запросе. Этот бит установлен по умолчанию, что означает, что dig обычно отправляет рекурсивные запросы. Рекурсия автоматически отключается при использовании параметров запроса + nssearch или + trace.
+[no]nssearch Если этот параметр установлен, dig пытается найти авторитетные серверы имен для зоны, содержащей искомое имя, и отобразить запись SOA, которая есть у каждого сервера имен для этой зоны.

Дополнительная сложность может заключаться в том, что ваш преобразователь является не отдельным сервером, а кластером рекурсивных DNS-серверов, каждый из которых имеет разные кэшированные и / или свежие записи.