DNS делает итеративные запросы

DNS делает итеративные запросы

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

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

Спасибо

решение1

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

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

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

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

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

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

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

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

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

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

решение2

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

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

dig +norecurse netpas.co

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

Связанный контент