Выполнение команды dig
против конкретного домена, возвращает предыдущие детали сервера имен. Например;
domain.com. 41068 IN NS ns1.nameserver1.com.
Теперь, если я выполняю команду dig +nssearch host.example.com
, сопровождаемый командой 'роют domain.com', я получаю другой результат.
domain.com. 41068 IN NS chad.ns.cloudflare.com.
dig domain.com
несколько раз это возвращает предыдущие детали сервера имен. Почему это?Править
Детали сервера имен были изменены, однако выполнив команды в том же окне времени, производит для различных результатов.
Сервер имен, который ваша система использует в качестве преобразователя ( /etc/resolv.conf
), должен кэшировать ответы DNS.
Используя переключатель + nssearch
, вы обходите кэшированные записи из вашего преобразователя (который на жаргоне сервера имен также называется рекурсивным сервером имен) и напрямую запрашиваете авторитетный DNS-сервер (-ы), и вы получаете записи, не взятые из кеша.
Как сказано в руководстве:
+ [no] recurse
Переключает установку бита RD (требуется рекурсия) в запросе. Этот бит установлен по умолчанию, что означает, что dig обычно отправляет рекурсивные запросы. Рекурсия автоматически отключается, когда Используются параметры запроса + nssearch или + trace.
+ [no] nssearch
Когда этот параметр установлен, dig пытается найти авторитетные серверы имен для зоны, содержащей имя поискал и отобразил запись SOA, которую каждый сервер имен имеет для zone.
Дополнительная сложность может заключаться в том, что ваш преобразователь является не отдельным сервером, а кластером рекурсивных DNS-серверов, каждый из которых имеет разные кэшированные и / или свежие записи.