Что на самом деле делает публичный сервер имен?

822
David Bryant

Я пытаюсь понять назначение публичных DNS-серверов имен (общедоступных, например, не SOA; например, 8.8.8.8).

Я выполнил dig +traceкоманду, и, насколько я могу судить, сервер имен используется только при поиске SOA корневого домена .. После этого запрашивается SOA каждого домена в иерархии.

Я предполагаю, что публичные серверы имен используются для:

  • идентифицируя SOA корневого домена, чтобы их не нужно было жестко кодировать на клиентах.
  • децентрализация процесса и кеширование. Таким образом, если SOA домена выходит из строя, клиенты могут управлять другим сервером.
  • снижение нагрузки на SOA. Если другой сервер знает записанное, нет необходимости запрашивать SOA.

У меня 3 вопроса:

  • Верны ли мои предположения?

  • Если это действительно единственное, что делает сервер имен, если мне не нужно кэширование и я хочу выполнить рекурсивный запрос самостоятельно, могу ли я прекратить использование серверов имен?

  • Может / SOA отказывается отвечать на запросы от определенного сервера имен, если он выполняет слишком много запросов?
4
Ваш вопрос трудно понять из-за неправильного использования некоторых технических терминов. Например, я не думаю, что вы используете «SOA» правильно, особенно в последнем предложении. bortzmeyer 5 лет назад 0

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

7
Mike Scott

Ваше предположение неверно. +traceОпция сообщает рыть для запроса серверов SOA для каждого домена; это не нормальное поведение. Обычный поиск DNS будет использовать ваш сконфигурированный DNS-сервер, такой как общедоступный рекурсивный DNS-сервер, для всех своих поисков.

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

Как общедоступный сервер знает ответ, если это не SOA? David Bryant 5 лет назад 0
@DavidBryant Публичный сервер получает его от SOA, если у него нет кэшированного результата. Вот что делают рекурсивные DNS-серверы. Но ваш клиент ничего не получает от SOA. Mike Scott 5 лет назад 0
Спасибо за разъяснения. Последний вопрос: я заметил, что когда я отправляю большое количество запросов в секунду общедоступным серверам имен, я начинаю получать ответы `REFUSED` /` SERVFAIL` или просто откровенно неправильные ответы, такие как `NXDOMAIN` для существующих доменов. Это результат запрета публичного сервера или SOA, запрещающего общедоступный сервер? (учитывая, что публичный сервер не кеширует ответы и запрашивает SOA каждый раз) David Bryant 5 лет назад 0
Скорее всего, это будет общедоступный сервер, ограничивающий ваш доступ. Mike Scott 5 лет назад 0
Независимо от того, сколько раз вы запрашиваете DNS-сервер, он никогда не должен отправлять `NXDOMAIN` для существующих доменов. Если DNS-сервер делает это, то этот DNS-сервер неисправен. kasperd 5 лет назад 3
5
Anaksunaman

Как небольшое дополнение к ответу Майка Скотта ...

Основные цели публичных серверов имен (как вы их определили):

  1. Не позволяйте людям запускать свои собственные серверы имен.

  2. Помогите (потенциально) ускорить процесс разрешения доменов.

Несколько замечаний относительно ваших «трех предположений»

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

  • Общедоступные серверы имен могут (возможно) помочь с децентрализацией и кэшированием. Аналогичным образом, они могут потенциально обеспечить устойчивость всей системы DNS. Но это побочные преимущества.

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

0
bortzmeyer

Общедоступный распознаватель (будьте осторожны с термином «сервер имен»: есть два типа серверов имен: распознаватели и авторитетные, и они почти не имеют ничего общего) - это просто распознаватель, такой как ваш провайдер или тот, который вы запускаете сами в вашей сети. Как и любой сервис, они могут быть быстрее или медленнее, чем сервис по умолчанию, более или менее надежными, иметь некоторые дополнительные хорошие или плохие функции, но они не делают ничего конкретного.

Похожие вопросы