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

453
calveeen

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

Если это не так, будет ли разница между этими двумя методами.

1

1 ответ на вопрос

0
harrymc

В рекурсивном DNS-запросе клиент отправляет запрос только первому DNS-серверу. Сервер, если он не может ответить, отправит запрос следующему серверу и так далее, пока запрос не будет решен. Здесь DNS-клиент требует, чтобы DNS-сервер отвечал на запрос, поэтому на сервере лежит бремя разрешения запроса.

В итеративном DNS-запросе клиент отвечает за отправку запроса на последовательные серверы до тех пор, пока запрос не будет решен путем нажатия на сервер, который авторизован для доменного имени (или до ошибки или тайм-аута). Здесь бремя лежит на клиенте, чтобы решить запрос.

Я не думаю, что между ними существует большая разница в скорости, за исключением того, что DNS-сервер, который достаточно высок в иерархии, вероятно, будет иметь более быстрое подключение к Интернету, чем клиент.

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

Более подробно, это четыре наиболее распространенных ответа, которые может дать DNS-сервер:

  • Авторитетный - положительный ответ, возвращаемый клиенту с установленным битом Авторитетный ответ (AA).
  • Положительный - ответ, содержащий запись ресурса (RR) или список RR, соответствующих запросу.
  • Направление - ответ, содержащий список альтернативных серверов, которые клиент может использовать для определения имени. Этот тип ответа дается, если рекурсия не поддерживается.
  • Отрицательный - этот ответ означает, что уполномоченный сервер сообщил, что имя (или тип записи) не существует в пространстве имен DNS.

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

Я вижу, будет ли локальный DNS-сервер в итерационной версии содержать больше промежуточных записей DNS, что позволяет DNS обходить корневые серверы, например? calveeen 5 лет назад 0
Насколько я знаю, клиенты могут хранить кеши результатов, но не DNS-серверов. Я не знаю ни одного клиента, который кэширует DNS-серверы, и мне кажется, что клиент всегда будет начинать с запроса к определенному сетевому DNS-серверу и не будет пытаться функционировать в качестве DNS-сервера. harrymc 5 лет назад 0