1

У меня есть большие сомнения относительно DNS. Я смотрел несколько видео и читал о том, как работает DNS. Я думаю, что я не понял это, за исключением одного момента. Почему мне нужно указать в моей ОС win 7 или в моем Ubuntu поле DNS-сервер? Иногда он настроен как тот, который назначает мне мой провайдер, а иногда я провожу тестирование общедоступных DNS-серверов Google (8.8.8.8). Я не понимаю, что означают эти DNS-серверы.

Насколько я знаю, в операционной системе есть разрешающий сервер имен. Это тот, кто отвечает за запрос к серверам имен ROOT для получения серверов имен TLD, а затем к полномочным серверам имен для получения IP-адреса. Ips корневого сервера имен "жестко запрограммированы" в ОС. Так что я не понимаю, зачем мне нужны DNS-серверы провайдера или DNS-сервер Google, моя ОС может решить эту проблему самостоятельно!

Большое спасибо!

6 ответов6

6

Краткий ответ: вы решили не использовать DHCP, который автоматически настраивает IP-адреса серверов имен вашего интернет-провайдера (или дополнительный уровень кэширования DNS вашего домашнего маршрутизатора).

Объяснение:

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

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

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

  • Сервер имен вашего интернет-провайдера может фактически знать ответ, когда другой распознаватель задал тот же вопрос, экономя время и пропускную способность.

  • Даже если сервер имен вашего провайдера еще не знает ответа, он, вероятно, знает, где искать: .com. серверы имен. Он знает их адреса, когда решатель спросил о другом доменном имени .com.

  • Он может запомнить ответ в случае, если позже получит тот же запрос. "Время жизни" (TTL), связанное с определенным ответом, заставляет сервер через некоторое время забыть об этом, чтобы устаревшая информация не оставалась навсегда.

Серверы имен каждого провайдера имеют разные IP-адреса, поэтому IP-адреса DNS не могут быть жестко закодированы. Возможно, все рекурсивные DNS-серверы, управляемые интернет-провайдером, могут быть кластеризованы под одним IP-адресом с использованием anycast, как в Google Public DNS, но в этом нет никакого смысла, поскольку проблема автоматической настройки DNS уже решена с помощью таких протоколов, как DHCP и PPP.

DHCP и PPP позволяют настраивать не только IP-адрес клиента, но и адреса его DNS-сервера. Вам нужно только указать адрес DNS-сервера вручную, если вы специально не использовали DHCP.

6

Если я не ошибаюсь, корневые серверы имен НЕ "жестко закодированы" в любую операционную систему. Как известно, DNS используется для преобразования имен веб-сайтов (или имен серверов) в IP-адреса. Ваш сервер (или Windows-бокс или что-у-вас) НЕ сможет разрешить любые адреса веб-сайтов, если ваш ящик не получит свой DNS от DHCP-сервера, ИЛИ, если вы явно не указали своему серверу / компьютеру, какие DNS-серверы следует запрашивать.

В Linux это делается путем редактирования /etc/resolv.conf. В Windows это делается путем редактирования настроек сетевого адаптера.

3

Насколько я знаю, в операционной системе есть разрешающий сервер имен.

Это не по умолчанию (за исключением, если вы установили один.)

Так что я не понимаю, зачем мне нужны DNS-серверы провайдера или DNS-сервер Google, моя ОС может решить эту проблему самостоятельно!

Теоретически, вы можете установить свой собственный DNS-сервер и использовать его в локальной сети для разрешения всех доменных имен. Серверы Google и ISP могут сэкономить ваше время на разрешение имен, потому что у них есть большой кэш имен, которые они недавно разрешили. Они могут сэкономить ваши усилия при настройке вашего собственного сервера имен. Также следует заметить, что не так много простых (не технических) людей хотят устанавливать какие-либо серверы и т.д., Они просто хотят работать на компьютере.

3

Ваш внутренний распознаватель является клиентом запросов, который может запрашивать адреса в нескольких источниках, включая:

  • Ваш локальный файл hosts (/etc/hosts в Linux/UNIX)
  • DNS
  • WINS
  • mDNS (служба имен Zero Config)

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

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

Корневые серверы предоставляют только серверы для доменов верхнего уровня (доменов верхнего уровня), таких как .com .net, .uk и т.д. Как и большинство DNS-серверов в Интернете, они не предоставляют рекурсивные службы имен. Поскольку данные, которые они предоставляют, относительно статичны, они будут кэшироваться рекурсивными серверами имен, которые запрашивают их. Пока кэшированные данные действительны, рекурсивному серверу не нужно запрашивать корневые серверы для этого TLD.

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

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

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

2

Иерархия DNS разработана таким образом, чтобы ограничить количество запросов, отправляемых корневым серверам. Есть некоторые надежные и считающиеся безопасными серверами, которые обеспечивают разрешение DNS, такие как opendns http://www.opendns.com/- вы можете использовать их сервер, если вы беспокоитесь о безопасности.

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

2

Корневые серверы только "жестко запрограммированы" в сервер, выполняющий роль DNS-сервера - на вашем компьютере под управлением Windows 7 эти серверы не будут настроены (если только он не является DNS-сервером). Важно различать, что эти корневые серверы запрограммированы в механизме, обслуживающем DNS (например, BIND), а не в самой операционной системе.

Эти DNS-серверы ссылаются на корневые серверы, чтобы найти авторитетные серверы для искомого домена. Клиенты ссылаются на DNS-сервер, запрограммированный в своем сетевом адаптере или файлах /etc /hosts, и эти серверы ссылаются на корневые серверы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .