Получить IP-адрес DNS-сервера TLD

Мы знаем, что способ работы DNS заключается в рекурсивном извлечении достаточного количества домена. Например, www.google.com, он извлекает сервер имен com, получает его IP-адрес и использует этот сервер имен для получения google.com, ...

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

; ‹---------------- >> DiG 9.6.0-APPLE-P2 ‹---------------- >> google.com ;; глобальные параметры: + cmd ;; Получил ответ: ;; - >> HEADER ‹< - код операции: QUERY, статус: NOERROR, id: 64727 ;; флаги: qr rd ra; ВОПРОС: 1, ОТВЕТ: 11, АВТОРИТЕТ: 4, ДОПОЛНИТЕЛЬНО: 4

;; РАЗДЕЛ ВОПРОСОВ:; google.com. В

;; РАЗДЕЛ ОТВЕТОВ: google.com. 62 IN A 173.194.33.2 google.com. 62 IN A 173.194.33.8 google.com. 62 IN A 173.194.33.14 google.com. 62 IN A 173.194.33.5 google.com. 62 IN A 173.194.33.4 google.com. 62 IN A 173.194.33.6 google.com. 62 IN A 173.194.33.0 google.com. 62 IN A 173.194.33.1 google.com. 62 IN A 173.194.33.7 google.com. 62 IN A 173.194.33.3 google.com. 62 IN A 173.194.33.9

;; РАЗДЕЛ АВТОРИТЕТА: google.com. 69970 IN NS ns3.google.com. google.com. 69970 IN NS ns1.google.com. google.com. 69970 IN NS ns2.google.com. google.com. 69970 IN NS ns4.google.com.

;; ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ: ns4.google.com. 69970 IN A 216.239.38.10 ns3.google.com. 69970 IN A 216.239.36.10 ns1.google.com. 69970 IN A 216.239.32.10 ns2.google.com. 257354 В А 216.239.34.10

;; Время запроса: 9 мсек ;; СЕРВЕР: .. *. # 53 (. *. .) ;; КОГДА: среда, 22 мая, 16:03:09 2013 ;; РАЗМЕР MSG rcvd: 340

Мы видим, что IP-адрес включен в ДОПОЛНИТЕЛЬНЫЙ РАЗДЕЛ. Но если мы копаем com, то получим следующее:

; ‹---------------- >> DiG 9.6.0-APPLE-P2 ‹---------------- >> com. ;; глобальные параметры: + cmd ;; Получил ответ: ;; - >> HEADER ‹< - код операции: QUERY, статус: NOERROR, id: 50809 ;; флаги: qr rd ra; ЗАПРОС: 1, ОТВЕТ: 0, АВТОРИТЕТ: 1, ДОПОЛНИТЕЛЬНО: 0

;; ВОПРОСЫ:; com. В

;; РАЗДЕЛ ВЛАСТИ: com. 900 В SOA a.gtld-servers.net. nstld.verisign-grs.com. > 1369263918 1800 900 604800 86400

;; Время запроса: 17 мсек ;; СЕРВЕР: .. *. # 53 (. *. .) ;; КОГДА: среда, 22 мая, 16:05:48 2013 ;; РАЗМЕР MSG rcvd: 94

Он ничего не показывает об IP-адресе сервера имен для com. Итак, мой вопрос: как распознаватели узнают IP-адреса серверов имен TLD (например, com)?


person Xiao Sophia Wang    schedule 22.05.2013    source источник


Ответы (2)


Быстрый ответ: вы запросили A записей для TLD com, но не получили ответов. Это нормально, потому что com не имеет A-записей! Обратите внимание, что в этом отрывке из вашего вывода тип A:

;; QUESTION SECTION: 
;com. IN A

При этом рекурсивные распознаватели узнают адреса серверов имен TLD так же, как они находят адреса любого другого сервера:

  • Они могут разрешать их напрямую как самостоятельные имена. Например, один из namservers для com - a.gtld-servers.net. Это имя можно разрешить обычным способом (через корень и net и gtld-servers.net.
  • Они могут быть предоставлены как дополнительные записи (записи в дополнительном разделе) вместе с ответами на другие запросы. Это особенно важно, когда возникает проблема начальной загрузки (например, сервер имен для example.com - ns.example.com, который, очевидно, не может быть разрешен, если вы еще не знаете сервер имен для example.com).
person Celada    schedule 23.05.2013
comment
Вы можете добавить, что тип записи, который хочет OP, - это NS. Если он будет искать в записях NS для com., Он должен получить желаемый ответ. - person Alex D; 11.12.2017
comment
@AlexD или ANY для полного списка - person user.dz; 05.05.2020
comment
@ user.dz или ЛЮБОЙ для полного перечисления Абсолютно НЕТ. Это для рекурсивного сервера имен и никогда не означало ВСЕ, как многие считают, и теперь даже полностью устарело, см. RFC 8482 - person Patrick Mevzek; 04.01.2021

Итак, мой вопрос: как распознаватели узнают IP-адреса серверов имен TLD (например, com)?

Серверы распознавателей должны загружать «подсказки» (корневые серверы имен). Обычно они где-то добавляются в конфигурацию.

Здесь есть список в Интернете: https://www.iana.org/domains/root/servers

person Andrew    schedule 28.09.2020
comment
Это дает список имен и IP-адресов корневых серверов имен, а не TLD. (данная формулировка может быть двусмысленной). Корневые серверы имен будут предоставлять информацию о серверах имен TLD. - person Patrick Mevzek; 15.02.2021