Как решается сервер имен, если он из того же домена?


Насколько я понимаю, если я перейду к example.com , сначала мой компьютер запросит корневые серверы имен о серверах имен .com TLD, и ему будет предоставлен IP-адрес серверов имен .com TLD. Как только у него появятся серверы имен ДВУ .com, он запросит один из этих серверов ДВУ о example.com, и ему присваиваются (авторитетные) серверы имен example.com домен. Тогда мой компьютер запросит это example.com авторитетные серверы имен домена для любой записи, которую он хочет (A, MX и т.д.), и он получит IP-адрес. Теперь он может, наконец, начать общаться с сервером, с которым он хотел поговорить.

Все это прекрасно. Но моя проблема в том, что я вижу, что многие серверы имен принадлежат самому домену. Например, google.com серверы имен являются ns1.google.com, ns2.google.com, и т.д. Но это рекурсивно: для того, чтобы найти ns1.google.com, нужно знать google.com IP-адрес сервера имен.

Я знаю, что явно что-то упускаю или что-то неправильно понял, но я не знайте, что это такое.

Author: TRiG, 2020-07-17

3 answers

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

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

Записи клея - это записи DNS, созданные регистратором домена. Запись предоставляет полный ответ, когда сервер имен ДВУ возвращает ссылка на авторитетный сервер имен для домена. Например, доменное имя"example.net "имеет серверы имен"ns1.example.net ""ns2.example.net ". Чтобы разрешить доменное имя, DNS будет запрашивать по порядку: корневой сервер, сервер имен ДВУ и авторитетный сервер имен. Однако, имея авторитетные серверы имен внутри самого домена, эти серверы имен невозможно найти без посторонней помощи. Это называется "круговой ссылкой". Создание связующей записи, записи A, обслуживаемой ДВУ сервер имен, избегает циклических ссылок и позволяет как разрешать DNS-имена, так и перечислять серверы имен внутри самого домена.

Поэтому, чтобы просмотреть запись A example.com в вашем случае, ваш преобразователь DNS сначала отправится на сервер имен .com, он запросит серверы имен для example.com, и он получит не только ns1.example.com и ns2.example.com, но и IP-адреса этих серверов имен, чтобы ваш преобразователь знал, какие IP-адреса использовать для выполнения дальнейших DNS-запросов на этом сервере. домен.

 12
Author: Maximillian Laumeister, 2020-07-17 20:40:58

Это достигается за счет того, что называется "клейкой записью".

DNS-сервер имеет как NS, так и соответствующие записи A (и/или AAAA для IPv6) для записей NS и обслуживает их "приклеенными" к ответу NS.

Таким образом, даже если вы запросите только записи NS, DNS ответит как серверами NS, так и их IP-адресами.

 4
Author: NuTTyX, 2020-07-18 15:52:16

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

В настройках потребителя это обычно означает, что адреса DNS-серверов извлекаются с DHCP-сервера вместе с IP-адресом, маской сети и маршрутом по умолчанию. Серверы обычно используют более управляемые конфигурации, но дело в том, что любые система, которая выполняет поиск DNS, отправляет запрос непосредственно на IP-адрес (v4 или v6, или на оба, так как DNS-серверы IPv4 и IPv6 могут отвечать на запросы с адресами из любого семейства.)

Когда запрос на запись DNS передается на "локальный" DNS-сервер (который может быть не настолько локальным, если он принадлежит Google 8.8.8.8 или тому подобное), Предполагая, что у него еще нет кэшированного ответа, он будет выполнять все рекурсивные запросы и т. Д. вы описываете, чтобы придумать авторитетный ответ на запрос. Но ваша способность выполнять запросы DNS "загружается" с помощью прямой IP-адресации (без записей DNS), именно для того, чтобы избежать создания циклической зависимости от самой себя.

Что касается того, как серверы знают, с какими IP-адресами обращаться, хорошо процитировать IANA на " Настройка корневых серверов":

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

 0
Author: FeRD, 2020-07-18 18:19:53