Перейти к содержимому
Калькуляторы

структура работы DNS

Добрый день,

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

а именно

 

При установке на сервере регистраторе доменного имени(например example.com) NS адресов, допустим их 4: ns1.server.com ns2.reserv.com ns3.reserv2.com ns4.reserv3.com

 

на сервере ns1.server.com

я создаю зону своего домена example.com

где указываю NS севрера для своей зоны, ns1.server.com ns2.server.com ns3.server.com ns4.server.com

 

 

Вопрос!

Когда я делаю nslookup и смотрю какие NS сервера у зоны, что происходит?

Мой запрос идёт на один из корнеых DNS, далее какимто образом корневые домены DNS узнают что этот домен есть у моего регистратора, с этого регистратора берётся информация о том, где расположен мой NameServer (в моём случае ns1.server.com) и оттуда полностью берётся зона.

Т.е на вопрос какие у моего домена NS сервер он ответит ns1.server.com ns2.server.com ns3.server.com ns4.server.com ? или ответит ns1.server.com ns2.reserv.com ns3.reserv2.com ns4.reserv3.com?

 

Документацию по логике работы к сожалению не нашёл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Когда регистратор берет с вас деньги, он отправляет запрос на регистрацию домена в реестр. В запросе кроме данных whois указываются в том числе и NS для вашего домена. В результате в вышестоящую зону данные вносятся так, как вы их указали.

 

А цепочка резолвинга выглядит просто:

(.) -> .com -> example.com NSset

 

Т.е. в зоне .com содержатся записи NS для вашего домена. Более того, если эти один или несколько из NS для example.com находятся в домене example.com (ns1.example.com), то в зоне .com содержатся также и A/AAAA-записи для ns1.example.com, т.н. glue records.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Т.е в реестр регистратор отправит данные о серверах, а именно:

ns1.server.com ns2.reserv.com ns3.reserv2.com ns4.reserv3.com (те которые я указад на регистраторе)

 

в то время как в зоне на сервере ns1.server.com прописано

ns1.server.com ns2.server.com ns3.server.com ns4.server.com

 

и мне по запросу возвратиться то что прописано в зоне: ns1.server.com ns2.server.com ns3.server.com ns4.server.com

 

Если мой сервер ns1.server.com будет не доступен, то будет взята зона с сервера ns2.reserv.com на котором параметры NS: ns2.reserv.com

и по запросу о NS будет возвращён только ns2.reserv.com.

 

А весь список NS серверов, которые регистратор отдаёт в реестр в принципе узнать командой nslookup не получиться, только то, что лежит в файле зоны.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Резолвер будет посылать запросы, пока не получит ответа с выставленным битом AA (authoritative server). Т.е. если в зоне указаны NS-ы: A,B,C,D - запрос об авторитетной записи NS будет послан на любой из этих серверов.

 

Но вообще несинхронизация зоны - это копание ямы для самого себя.

 

А весь список NS серверов, которые регистратор отдаёт в реестр в принципе узнать командой nslookup не получиться, только то, что лежит в файле зоны.

То, что регистратор отдает в реестр - то и лежит в зоне. Посмотрите, например, трассировку запроса на mail.ru:

 

$ dig +trace NS mail.ru

 

; <<>> DiG 9.6-ESV-R1 <<>> +trace NS mail.ru

;; global options: +cmd

. 51218 IN NS f.root-servers.net.

. 51218 IN NS l.root-servers.net.

. 51218 IN NS h.root-servers.net.

. 51218 IN NS a.root-servers.net.

. 51218 IN NS g.root-servers.net.

. 51218 IN NS j.root-servers.net.

. 51218 IN NS e.root-servers.net.

. 51218 IN NS d.root-servers.net.

. 51218 IN NS m.root-servers.net.

. 51218 IN NS b.root-servers.net.

. 51218 IN NS i.root-servers.net.

. 51218 IN NS c.root-servers.net.

. 51218 IN NS k.root-servers.net.

;; Received 228 bytes from 8.8.8.8#53(8.8.8.8) in 9 ms

 

ru. 172800 IN NS e.dns.ripn.net.

ru. 172800 IN NS f.dns.ripn.net.

ru. 172800 IN NS ns.ripn.net.

ru. 172800 IN NS ns2.nic.fr.

ru. 172800 IN NS ns2.ripn.net.

ru. 172800 IN NS ns5.msk-ix.net.

ru. 172800 IN NS ns9.ripn.net.

;; Received 453 bytes from 2001:7fd::1#53(k.root-servers.net) in 10 ms

 

mail.ru. 345600 IN NS ns.mail.ru.

mail.ru. 345600 IN NS ns1.mail.ru.

mail.ru. 345600 IN NS ns2.mail.ru.

mail.ru. 345600 IN NS ns3.mail.ru.

mail.ru. 345600 IN NS ns4.mail.ru.

mail.ru. 345600 IN NS ns5.mail.ru.

;; Received 235 bytes from 2001:660:3005:1::1:2#53(ns2.nic.fr) in 20 ms

 

mail.ru. 3600 IN NS ns5.mail.ru.

mail.ru. 3600 IN NS ns.mail.ru.

mail.ru. 3600 IN NS ns1.mail.ru.

mail.ru. 3600 IN NS ns2.mail.ru.

mail.ru. 3600 IN NS ns3.mail.ru.

mail.ru. 3600 IN NS ns4.mail.ru.

;; Received 228 bytes from 94.100.178.64#53(ns4.mail.ru) in 59 ms

8.8.8.8 - это мой сервер, прописанный в сетевых настройках. Дальше запрос отправлялся до тех пор, пока не был получен авторитетный ответ.

Изменено пользователем ipaddr.ru

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

http://www.netlab.linkpc.net/download/software...l/DNSLookup.exe

Покажет вам все ответы по мере резолвинга имени в ип.

 

Когда я делаю nslookup и смотрю какие NS сервера у зоны, что происходит?

Мой запрос идёт на один из корнеых DNS, далее какимто образом корневые домены DNS узнают что этот домен есть у моего регистратора, с этого регистратора берётся информация о том, где расположен мой NameServer (в моём случае ns1.server.com) и оттуда полностью берётся зона.

Т.е на вопрос какие у моего домена NS сервер он ответит ns1.server.com ns2.server.com ns3.server.com ns4.server.com ? или ответит ns1.server.com ns2.reserv.com ns3.reserv2.com ns4.reserv3.com?

Вся документация - RFC начиная чуть ли не с 8хх или что то в начале тысячи, именно резолвинг с тех пор не менялся, только фичи добавляли.

 

Резолвер может:

- послать запрос на другой сервер, с флагом RD (запрос рекурсии), и если тот сервер допускает такие запросы, то он сам всех кого надо опросит и отдаст конечный результат

- самому резолвить

 

В начале опрашиваются сервера из списка, до первого ответа одного из них.

Если эти сервера не поддерживают рекурсию или клиент не запрашивал и не отвечают за зону к которой относится запрос, то они почти всегда отдают список корневых днс серверов (если опрашивали не сами корневые сервера).

Корневые сервер, отвественные за зону "." знают списки днс серверов отвественных за первый уровень, типа com, ru, org и пр.

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

 

По пути бывает что в ответе со списком днс серверов нет их адресов, и тогда резолверу приходится резолвить их имена в адреса, а потом возвращаться к первоначальному запросу.

Бывает что из списка днс серверов один не отвечает, другой возвращает ошибку или вообще перекидывает обратно на корневые - образуя петлю, бывает что из 3-6 только 1-2 дают то что нужно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

-полезная утилита!

Спасибо за подбробные ответы, с теорией вроде как прояснилось.

 

Но вопрос про соответствие списка NS на регистратороре домена и списке NS в зоне домена - остаётся открытым,

по тестам(разных чужих доменов) я вижу что перечень NS серверов на регистраторе домена и в зоне домена одинаков, т.е администраторы всегда их делают одинаковыми

Чем черевато то, что перечень будет разным, и можно ли прописать список NS на регистраторе домена и не прописывать список NS в зоне.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сам писал, сам пользуюсь :)

 

В общем то без разницы что у вас написано, до тех пор пока резолверы вас не спрашивают и получают то что им нужно.

Соответственно нужно чтобы те сервера что прописаны у регистратора отдавали всё что нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

можно ли прописать список NS на регистраторе домена и не прописывать список NS в зоне.

Нельзя. В этом случае на запрос NS-ов для вашего домена никогда не будет получен авторитетный ответ. И все остальные запросы (A, AAAA, MX, TXT) посылать будет некуда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.