DNS и понимание корневых серверов

367
john

Во-первых, правильно ли это объяснение того, как работает DNS?

Когда мы посещаем сайт, скажем (www.example.com), мы проводим поиск, чтобы преобразовать доменное имя в IP-адрес. Итак, наш компьютер сначала просматривает свой внутренний DNS, чтобы увидеть, есть ли там имя хоста. Если имя хоста отсутствует, оно отправляется на корневые серверы имен (.). Теперь корневые серверы имен получают запрос и сообщают нам, что запрос находится на серверах TLD, и дают нам IP-адрес серверов TLD. Теперь, когда мы запрашиваем серверы TLD, серверы TLD содержат расширение таких веб-сайтов, как .com, .org, .net и т. Д. В этом случае серверы TLD перенаправляют нас на com-серверы, и мы получаем IP-адрес com-серверы. Когда мы запрашиваем com-серверы, в их списке есть «пример» и перенаправляют нас на DNS-серверы примера. Когда мы запрашиваем сервер example.com, мы получаем IP-адрес и получаем доступ к Интернету.

Мой вопрос, например ,.com, авторитетный сервер имен будет правильным сервером com? так как это тот, кто дает нам информацию?

0
Авторитетный сервер имен - это тот, который содержит записи. Это DNS-сервер для example.com. Кроме того, компьютеры не выполняют поиск в корне. У них настроен DNS-сервер, обычно ISP, и они запрашивают DNS-сервер ISP. Если требуется поиск в корне, сервер DNS провайдера делает это. Не твой компьютер. Было бы очень неэффективно и обременительно иметь отдельные компьютеры для выполнения корневых поисков. Appleoddity 5 лет назад 0
Скажем, на моих DNS-серверах вообще нет кэшированных данных. Итак, он собирается перейти к корню, затем к TLD, затем к com-серверам и, наконец, к серверам "example.com". «Официальный сервер имен - это тот, который хранит записи». Согласно этому утверждению, будут ли полномочные серверы имен ком-серверами? john 5 лет назад 0
Почему это было бы неэффективно? Это будет очень много времени? john 5 лет назад 0
DNS-серверы, на которых размещен домен example.com, являются официальными. Корневой сервер делегирует .com второму набору DNS-серверов. Эти DNS-серверы .com делегируют .example.com другому набору DNS-серверов, которые обычно являются серверами, которые вы указали бы при регистрации домена. Это официальные DNS-серверы - те, которые вы указываете при регистрации домена. Смотрите здесь: https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/reviewing-dns-concepts, это неэффективно, потому что существует система кэширования на месте по очень конкретной причине не перегружать интернет DNS. Appleoddity 5 лет назад 0
Например, вы не единственный клиент вашего интернет-провайдера, запрашивающий google.com. Чрезвычайно неэффективно отправлять ваш компьютер или DNS-серверы корневым серверам для рекурсивного поиска. Во-первых, у вас нет прямого подключения к магистрали Интернета, как у вашего интернет-провайдера, поэтому оно медленнее. Во-вторых, вы можете воспользоваться кешированными результатами, которые другие за вас взяли. Даже если вы используете свой собственный DNS, как в Active Directory, он должен быть настроен на использование серверов пересылки у вашего интернет-провайдера и использовать только корневые ссылки в качестве отказоустойчивых. Это быстрее и эффективнее, когда важны миллисекунды. Appleoddity 5 лет назад 0
У меня есть еще одно сомнение. У меня есть портал портала, и его расширение - "в". Официальным сервером имен для этого сайта является корневой сервер. Теперь авторитетный сервер имен - это сервер, который передает запись клиенту. Чего я не понимаю, так это как любой веб-сайт может иметь свой авторитетный сервер имен в качестве корневого сервера? Потому что все, что делает корневой сервер - отправляет запрос на сервер, который может выполнить эту работу за вас. Это не тот, который дает вам IP-адрес, а просто перенаправляет вас на нужный сервер. Разве авторитетный сервер имен не должен быть DNS-сервером веб-сайтов? john 5 лет назад 0

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

1
Alex

Мой вопрос, например ,.com, авторитетный сервер имен будет правильным сервером com?

Пусть digэто:

# dig example.com SOA  ;; ANSWER SECTION: example.com. 3600 IN SOA sns.dns.icann.org. noc.dns.icann.org. 2018080109 7200 3600 1209600 3600  ;; AUTHORITY SECTION: example.com. 86400 IN NS a.iana-servers.net. example.com. 86400 IN NS b.iana-servers.net. 

Официальный сервер имен для example.com:

a.iana-servers.net. b.iana-servers.net.  

Это серверы, которые держат записи DNS для example.com

Теперь мы можем запросить их напрямую:

dig @a.iana-servers.net example.com A  ;; ANSWER SECTION: example.com. 86400 IN A 93.184.216.34 

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

# dnstracer -4 -r1 -s. example.com  Tracing to example.com[a] via A.ROOT-SERVERS.NET, maximum of 1 retries A.ROOT-SERVERS.NET [.] (198.41.0.4) |\___ d.gtld-servers.net [com] (192.31.80.30) | |\___ b.iana-servers.net [example.com] (2001:0500:008d:0000:0000:0000:0000:0053) Not queried | |\___ b.iana-servers.net [example.com] (199.43.133.53) Got authoritative answer | |\___ a.iana-servers.net [example.com] (2001:0500:008f:0000:0000:0000:0000:0053) Not queried | \___ a.iana-servers.net [example.com] (199.43.135.53) Got authoritative answer 

Давайте теперь попробуем еще один домен в домене .com верхнего уровня :

 # dig google.com SOA   ;; AUTHORITY SECTION: google.com. 345600 IN NS ns3.google.com. google.com. 345600 IN NS ns4.google.com. google.com. 345600 IN NS ns1.google.com. google.com. 345600 IN NS ns2.google.com. 

мы увидим, что авторитетные серверы имен для SLD google.com теперь другие.

так как это тот, кто дает нам информацию?

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

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

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

0
ivanivan

В основном правильно, но вы исключили кеширование, которое критично.

Когда вы впервые настраиваете простой кеширующий сервер, единственные записи, о которых он знает, root hints- это указывает на корневые серверы. Если вы попросите example.comкорневые серверы, укажите, какой сервер запрашивать записи в .com- это официальные серверы. Ваш DNS-сервер затем кэширует эту информацию. Затем он запросит информацию у .comсерверов, example.comи они вернут указатель на все серверы имен example.com, настроенные для использования в базе данных регистратора. Эта информация также кэшируется. Затем ваш DNS-сервер запрашивает у серверов имен example.comIP-адрес, который сопоставляется с запрашиваемым вами именем - www.example.com или любым другим.

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

Вы пренебрегаете делегированием DNS. Серверы .com не являются полномочными для .example.com. Они просто делегируют этот домен тем DNS-серверам, которые были настроены при регистрации домена example.com. Тот же сервер, на котором вы настраиваете все свои записи A и CNAME, например, для example.com, является полномочным для самого домена example.com. Appleoddity 5 лет назад 0