
DNS-сервер имен действует как кэширующий сервер (рекурсия да) и полномочный сервер (имеет файл зоны "example.com") одновременно. Если я запрослю у этого сервера имен запись ресурса о "host.example.com", что произойдет? A). Сервер запрашивает корневую зону -> зона com > зона example.com. B). Сервер проверяет свой файл зоны и отвечает в соответствии с этим файлом зоны.
Проще говоря, какой из них имеет приоритет?
и еще один похожий вопрос: что имеет приоритет между файлом зоны и кэшем DNS?
решение1
Сервер с включенной рекурсией будет проверять свои собственные зоны перед тем, какРекурсивнозапрашивая илиПересылкана другой сервер (пересылка — это еще один способ передачи запросов на другой сервер).
Если бы DNS-сервер не проверял локальные зоны, в которых он является полномочным, рекурсивные запросы зацикливались бы бесконечно, поскольку запрос просто возвращался бы к вашему DNS-серверу (поскольку он является полномочным сервером для этого домена).
Обратите внимание, что рекурсия не имеет ничего общего с кэшированием. Некоторые DNS-серверы реализуют кэширование для ускорения поиска часто или недавно запрашиваемых доменов, но это не является неотъемлемой частью того, как работает процесс рекурсивного запроса.
Вот как работает рекурсия. Три красные стрелки появляются в порядке сверху вниз. Спросите root, где находится .com, затем спросите .com, где находится contoso.com, затем спросите contoso.com, где находится example.contoso.com, и отправьте этот ответ обратно клиенту.
Отдельно стоит отметить, что мы имеем дело с серверами Root и gTLD, и они занимают особое место в глобальной экосистеме Интернета. Они не допускают рекурсии, поскольку нагрузка на них была бы колоссальной.
В результате на изображении выше клиент запрашивает один запрос с локального DNS-сервера, который решает, что будет обрабатывать запрос рекурсивно (он выполнит всю работу по разрешению адреса и отправит обратно один ответ). Затем сервер итеративно запрашивает Root и сервер gTLD. Однако сам сервер dns.contoso.com может включить рекурсию, поэтому он может предоставлять ответы другим поддоменам contoso.com, таким как example1.example.contoso.com (авторитетный для dns.example.contoso.com), без дополнительных запросов со стороны локального DNS-сервера клиента.