Как найти авторитетный сервер имен для имени домена?

Как я могу найти источники конфликтующих записей DNS?

Ответ 1

Вам потребуется запись SOA (начало полномочий) для данного имени домена, и именно так вы ее достигаете с помощью универсального инструмента командной строки nslookup:

command line> nslookup
> set querytype=soa
> stackoverflow.com
Server:         217.30.180.230
Address:        217.30.180.230#53

Non-authoritative answer:
stackoverflow.com
        origin = ns51.domaincontrol.com # ("primary name server" on Windows)
        mail addr = dns.jomax.net       # ("responsible mail addr" on Windows)
        serial = 2008041300
        refresh = 28800
        retry = 7200
        expire = 604800
        minimum = 86400
Authoritative answers can be found from:
stackoverflow.com       nameserver = ns52.domaincontrol.com.
stackoverflow.com       nameserver = ns51.domaincontrol.com.

Строка origin (или основного сервера имен в Windows) сообщает, что ns51.domaincontrol является основным сервером имен для stackoverflow.com.

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

Ответ 2

Вы использовали единственное в своем вопросе, но, как правило, несколько авторитетных серверов имен, RFC 1034 рекомендует не менее двух.

Если вы не имеете в виду "первичный сервер имен", а не "авторитетный сервер имен". Вторичные серверы имен являются авторитетными.

Чтобы узнать серверы имен домена в Unix:

  % dig +short NS stackoverflow.com
 ns52.domaincontrol.com.
 ns51.domaincontrol.com.

Чтобы узнать, что сервер указан как первичный (понятие "первичный" в наши дни довольно нечеткое и обычно не имеет хорошего ответа):

% dig +short  SOA stackoverflow.com | cut -d' ' -f1
ns51.domaincontrol.com.

Чтобы проверить расхождения между серверами имен, я предпочитаю использовать старый инструмент check_soa, описанный в книге Лю и Альбита "DNS и BIND" (редактор O'Reilly). Исходный код доступен в http://examples.oreilly.com/dns5/

% check_soa stackoverflow.com
ns51.domaincontrol.com has serial number 2008041300
ns52.domaincontrol.com has serial number 2008041300

Здесь два авторитетных сервера имен имеют одинаковый серийный номер. Хорошо.

Ответ 3

Вкл. * nix:

$ dig -t ns <domain name>

Ответ 4

У меня есть средство распространения DNS, предназначенное для ответа на такие вопросы.

Источник выпущен под AGPLv3.

(Да, интерфейс довольно простой в данный момент:))

Вы также можете узнать серверы имен для домена с помощью команды "host":

[[email protected]:~]$ host -t ns stackoverflow.com
stackoverflow.com name server ns51.domaincontrol.com.
stackoverflow.com name server ns52.domaincontrol.com.

Ответ 5

Я обнаружил, что лучший способ добавить параметр + trace всегда:

dig SOA +trace stackoverflow.com

Он работает также с рекурсивным CNAME, размещенным в разных провайдерах. + трассировка трассировки подразумевает + norecurse, поэтому результат будет указан только для указанного вами домена.

Ответ 6

Термин, к которому вы должны относиться, является "авторитетным", а не "окончательным".

В Linux или Mac вы можете использовать команды whois, dig, host, nslookup или несколько других. nslookup также может работать в Windows.

Пример:

$ whois stackoverflow.com
[...]
   Domain servers in listed order:
      NS51.DOMAINCONTROL.COM
      NS52.DOMAINCONTROL.COM

Что касается дополнительного кредита: Да, это возможно.


aryeh определенно ошибается, поскольку его предложение обычно дает вам только IP-адрес для имени хоста. Если вы используете dig, вам нужно искать NS-записи, например:

dig ns stackoverflow.com

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

Ответ 7

Мы создали инструмент dns lookup, который дает вам домен авторитетные серверы имен и его общие записи DNS в один запрос.

Пример: https://www.misk.com/tools/#dns/stackoverflow.com

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

Вы также можете просмотреть путь делегирования сервера имен, нажав "Authoritative Nameservers" в нижней части результатов поиска dns из приведенного выше примера.

Пример: https://www.misk.com/tools/#dns/[email protected]

Ответ 8

Вы можете использовать службу whois. В операционной системе UNIX вы должны выполнить следующую команду. В качестве альтернативы вы можете сделать это в Интернете по адресу http://www.internic.net/whois.html.

whois stackoverflow.com

Вы получите следующий ответ.

... текст удален здесь...

Серверы домена в указанном порядке: NS51.DOMAINCONTROL.COM NS52.DOMAINCONTROL.COM

Вы можете использовать nslookup или dig для получения дополнительной информации о записях для данного домена. Это может помочь вам разрешить конфликты, которые вы описали.

Ответ 9

К сожалению, большинство этих инструментов возвращают только NS-запись, предоставленную самим сервером имен. Чтобы быть более точным при определении того, какие серверы имен фактически отвечают за домен, вам нужно либо использовать "whois", либо проверить перечисленные там домены или использовать "dig [domain] NS @[root name server]" и запустить этот рекурсивно, пока вы не получите списки серверов имен...

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

Кто-нибудь знает команду с использованием "dig" или "host" или что-то еще на * nix?

Ответ 10

Записи SOA присутствуют на всех серверах далее по иерархии, над которой владелец домена НЕТ контроля, и все они фактически указывают на один авторитетный сервер имен под контролем владельца домена.

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

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

(Информация о том, какой сервер является доверенным, для какого TLD можно запрашивать корневые серверы имен).

Когда у вас есть надежная информация о SOA от уполномоченного сервера TLD, вы можете запросить у самого основного сервера имен полномочный сервер (тот, который находится в записи SOA на сервере имен gTLD!) Для любых других записей NS, а затем продолжить проверку всех те серверы имен, которые вы получили, запросив записи NS, чтобы выяснить, есть ли несоответствия для какой-либо другой конкретной записи на любом из этих серверов.

Все это работает намного лучше/надежнее с linux и dig, чем с nslookup/windows.

Ответ 11

Простым способом является использование онлайн-инструмента домена. Мой любимый Инструменты домена (ранее whois.sc). Я не уверен, могут ли они разрешать конфликтующие записи DNS. Например, DNS-серверы для stackoverflow.com

  NS51.DOMAINCONTROL.COM
  NS52.DOMAINCONTROL.COM