Что такое «рекурсивный DNS-запрос»? [закрыто]

15

Может кто-нибудь объяснить вкратце, что означает «рекурсивный DNS-запрос» и как его можно считать плохим ?

LanceBaynes
источник
Я знал, кто написал это только из названия. Я не знаю, почему вы продолжаете публиковать здесь материалы по DNS, но это совсем не относится к Unix / Linux. Лично я думаю, что это достойный вопрос, но здесь он не по теме, и я не думаю, что у нас есть другой сайт в сети, который этого хочет
Майкл Мрозек
Это действительно оффтоп здесь? Учитывая, что 90% мировых DNS-серверов работают на Unix / Linux? Возможно, вопрос можно было бы перефразировать: «Как я могу настроить свой DNS-сервер для ответа на рекурсивные запросы и почему я должен избегать этого?» но действительно ли это "оффтоп"? Просто любопытно.
таращиться
Возможно, это можно было бы считать более подходящим для security.stackexchange.com, но я не вижу никакой реальной причины прямо отвергать его здесь ...
Шадур

Ответы:

25

TL; DR : рекурсивные запросы являются частью работы Интернета и DNS, но не все DNS-серверы должны получать рекурсивные запросы, и когда те, которые не отвечают, отвечают, у вас могут возникнуть проблемы.

Более длинная версия:

Рекурсия, см .: Смотрите в разделе Рекурсия.

Рекурсивный запрос DNS происходит, когда DNS-сервер, который вы запросили адрес, скажем, unix.stackexchange.com, не знает сам ответ, поэтому он должен проверить с другим сервером.

Обычно так работает DNS - DNS-сервер вашего интернет-провайдера не имеет постоянных запоминаний доменных записей в Интернете по очевидным причинам, поэтому следующий обмен происходит под капотом:

  1. Вы: Эй, браузер, покажи мне http://unix.stackexchange.com

  2. Браузер: Конечно! ... Хм. Я на самом деле не знаю, что это за IP-адрес.

    Эй, ОС, ты можешь сказать мне, где найти unix.stackexchange.com?

  3. ОС: Конечно ...

    Хм. Это не в моем собственном файле hosts. Дай мне просто проверить конфигурацию моего резольвера ...

    Эй, DNS-сервер провайдера, подскажите, где найти unix.stackexchange.com?

  4. DNS-сервер интернет-провайдера: Конечно!

    ... хммм Этого нет в моем списке авторитетных доменов, и сейчас у меня нет этого ответа в кеше.

    Эй, корневые серверы Интернета, можете ли вы сказать мне, кто является уполномоченным для stackexchange.com?

  5. Корневые серверы Интернета: Конечно! Согласно нашим записям, вы хотите ns1.serverfault.com, ns2.serverfault.com или ns3.serverfault.com.

  6. DNS-сервер интернет-провайдера: Спасибо, интернет-серверы!

    Привет, ns2.serverfault.com, вы можете сказать мне, где найти unix.stackexchange.com?

  7. ns2.serverfault.com : Конечно! Это адрес 64.34.119.12

  8. DNS-сервер провайдера : Отлично, спасибо!

    OS, номер, который вы ищете, 64.34.119.12.

  9. ОПЕРАЦИОННЫЕ СИСТЕМЫ: Отлично, спасибо!

    Браузер, вам нужен адрес 64.34.119.12

  10. Браузер: Отлично, спасибо!

    Ладно, сейчас захожу на страницу.

  11. Вы: Yay, спасибо Браузер!

Теперь имейте в виду, что на самом деле здесь запрашиваются два типа серверов имен - авторитетные DNS-серверы (так называемые «корневые» серверы, которые сообщают DNS-серверу вашего провайдера, где найти DNS-сервер SE.com, и авторитетный DNS-сервер SE.com). ) и повторение или пересылка DNS-серверов (DNS-сервер вашего провайдера).

Обычно прежний тип не должен отвечать на рекурсивные запросы, особенно не из-за пределов собственного домена. Небольшие интернет-провайдеры иногда экономят на расходах, так как их основной полномочный сервер имен является тем же сервером, что и их основной перенаправляющий сервер имен, но это несколько небезопасная политика, особенно если вы не настраиваете сервер на отказ от рекурсивных запросов из-за пределов вашего собственного диапазона IP-адресов.

Дальнейшее чтение здесь, в Википедии .

Shadur
источник
Насколько я знаю, корневые серверы должны направлять вас к .comсерверам, а оттуда рекурсивный сервер провайдера будет указывать на сервер SE.com.
Ханан Н.
Да, но я решил, что буду держать это хотя бы / несколько / упрощенно, но понятно.
Шадур
Я думаю, что вы забыли шаг 12 .: Майкл Мрозек: «Привет, ЛэнсБэйнс, я знал, кто написал это только из названия ...»
Алоис Махдал
Отлично! Ответ был выписан1
Валентин Байрами
5

Если имеется 2 DNS-сервера, DNS-A является полномочием для домена-a, а DNS-B является полномочием для домена-b, и кто-то отправляет DNS-запрос DNS-A для поиска домена-b. DNS-A будет затем рекурсивно отправлять запрос в DNS-B для поиска домена b. По сути, рекурсивный запрос - это когда DNS-сервер от имени клиента, отправившего запрос, преследует след DNS, чтобы выполнить запрос.

Это хорошо, если вы размещаете DNS-сервер в сети, например, в офисе, и все машины в этом офисе будут использовать DNS-сервер для всех поисков. Это плохо, если вы разрешаете кому-либо делать рекурсивные запросы DNS. Это также плохо, если вы размещаете DNS-сервер, который должен выполнять запросы только для определенного домена. Если кто-то запрашивает поиск другого домена, DNS-сервер должен возвращать ошибку, а не делать рекурсию.

Джон Лин
источник