1

Я хотел бы спросить, можно ли настроить клиент в Windows или Linux для выполнения итеративных запросов вместо рекурсивных.

Я только нашел статьи об отключении рекурсии на DNS-сервере.

Спасибо

2 ответа2

3

Я понятия не имею, что может быть итеративный запрос DNS.

Запрос, отправленный на DNS-сервер, может установить флаг "запрошена рекурсия". В Humanspeak это все равно, что сказать «каков адрес [вещи], и если вы не знаете, пожалуйста, поищите его для меня». Сервер может отрицать это и просто вернуть эквивалент "я не знаю и не спрашивал", или он может ответить «Я спросил вокруг, и это [это]» или «Я спросил вокруг, и был сказал, что это [это] ", или" я знаю это, это [это], и я на самом деле авторитет для этого адреса ".

Нерекурсивный запрос - это просто «каков адрес [вещи], но если вы не знаете, просто скажите». Сервер может уже узнать ответ от предыдущего рекурсивного запроса и в любом случае вернуть его, а может и нет, но в любом случае он ничего не запросит.

Предполагая, что сервер, назовем его S, удовлетворяет запрос на рекурсию, он примет имя - скажем, «www.example.com» - и начнет с самого правого компонента, для которого у него есть информация.

Это может быть вообще ничто, и в этом случае S отправляет запрос корневым серверам, список которых он либо кэшировал, либо был задан в виде жестко заданного или предварительно настроенного списка. Один из корневых серверов получит запрос на «www.example.com, рекурсия запрошена»; корневые серверы не работают, но вернут следующую лучшую вещь, которую они знают: серверы имен для «.com» вместе с их адресами.
Попробуйте запустить dig www.google.com @c.root-servers.net

Затем S запрашивает у одного из них «www.example.com, рекурсия запрошена». Они также не будут возвращаться, но вернут следующую лучшую вещь: серверы имен для "example.com" вместе с их адресами (снова пропуская, где они это получают - ищите "склеенные записи").
Попробуйте запустить dig www.google.com @k.gtld-servers.net

Затем S запрашивает у одного из них «www.example.com, рекурсия запрошена». Им не нужно повторяться, потому что они знают ответ, поэтому они отправят его обратно вместе с флагом "авторитетный ответ".
Попробуйте запустить dig www.google.com @ns3.google.com (обратите внимание на флаг "aa"; вот список флагов ответов).

Затем S отправит окончательный ответ обратно клиенту без флага "aa", потому что S не является авторитетным, то есть он должен был спросить.

В некотором отношении "рекурсивный" запрос обрабатывается "итеративно" S. Если клиент хочет сделать это напрямую, ему потребуется предварительно сконфигурированный список корневых серверов (который он может обновить, задавая их), и он должен кэшируйте результаты для других локальных программ для повторного использования. Что в основном означает, что вы будете использовать рекурсивный сервер кэширования (только потому, что он ни для кого не является полномочным) на локальном хосте.

Итак ... вы можете уточнить свой вопрос? Как вы думаете, что вы хотите сделать?

1

Когда вы отправляете DNS-запрос на сервер, вы можете настроить его на итеративный режим. По этому запросу он будет игнорировать настройку DNS-сервера.

Например, вы можете попробовать это под dig или nslookup

dig +norecurse netpas.co

Если DNS-сервер кэшировал запись, вы получите запись A. Или предложение, для которого DNS-сервер вам нужно попробовать дальше.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .