Допустим, мне принадлежит доменное имя example.com
. Зарегистрирован у регистратора R
. В моем аккаунте на R
, Я зарегистрировал следующие серверы имен для .TLD
реестр:
ns1.example.com
-> 192.0.2.1
ns2.example.com
-> 192.0.2.2
Допустим, еще нет доменов, использующих эти серверы имен для DNS. Как можно проверить за пределами моего R
учетной записи, что серверы имен были успешно зарегистрированы в .TLD
реестр?
Например, WHOIS компании VeriSign Inc. страница позволяет найти зарегистрированный .COM
сервер имен:
Server Name: NS1.HOSTGATOR.COM IP Address: 67.18.54.2 Registrar: ENOM, INC. Whois Server: whois.enom.com Referral URL: http://www.enom.com
Есть ли стандартный подход к поиску этой информации для любого реестра TLD?
Чтобы уточнить, я не чтобы проверить серверы имен, которые домен настроен для использования, например:
Domain Name: HOSTGATOR.COM Registrar: ENOM, INC. Whois Server: whois.enom.com Referral URL: http://www.enom.com
Сервер имен: NS1.P13.DYNECT.NET Сервер имен: NS2.P13.DYNECT.NET Сервер имен: NS3.P13.DYNECT.NET Сервер имен: NS4.P13.DYNECT.NET
Status: clientTransferProhibited Updated Date: 05-jan-2013 Creation Date: 22-oct-2002 Expiration Date: 22-oct-2015
Вместо этого я ищу способ запросить один зарегистрированный сервер имен (например, ns1.example.tld
) по реестру, чтобы найти IP-адрес, записанный реестром для этого сервера имен (например, 123.456.789.001
).
Я связался с VeriSign для получения информации, и оказалось, что поиск VeriSign в WHOIS для серверов имен является собственностью. Вот их ответ:
Что касается вашего вопроса о том, сможете ли вы получить какую-либо информацию о сервере имен, который зарегистрирован в реестре, но в настоящее время не связан с каким-либо доменом, вы, к сожалению, не сможете получить эту информацию с помощью альтернативных маршрутов, например выполнив DiG. Серверы имен публикуются в зоне только в том случае, если они присоединены к домену, поэтому вы не сможете получить эту информацию, если указанный сервер имен не связан с доменом. Кроме того, DiG может предоставить вам список серверов имен, связанных с доменом, и их соответствующие IP-адреса и т. Д.
- Бенджамин, Служба поддержки клиентов VeriSign, Inc.
Вторая часть @ Ответ Ииана ниже правильно. Сервер имен должен быть связан с доменом для поиска IP-адреса, зарегистрированного в реестре для этого сервера имен.
Вы можете нам покопаться и выбрать публичный DNS-сервер
dig 8.8.8.8 NS example.com
Это даст вам имена серверов имен, после чего вы можете просто найти их, например.
dig +short ns1.example.tld
123.456.789.001
или если вы используете окна, вы можете использовать nslookup
nslookup
> server 8.8.8.8
> set type=ns
> example.com
Тогда аналогично приведенному выше
nslookup ns1.example.tld
предоставит вам IP-адрес
Если вы хотите напрямую запросить tld, тогда
dig ns tld
предоставит список серверов имен TLD, затем вы можете напрямую запросить у них записи ns, например. tld
dig @ns666.tld ns example.tld
Обычно вы можете использовать Whois для запроса серверов имен:
$ whois -h whois.verisign-grs.com "nameserver =ns3.serverfault.com"
Whois Server Version 2.0
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
Server Name: NS3.SERVERFAULT.COM
IP Address: 69.59.196.217
Registrar: NAME.COM LLC
Whois Server: whois.name.com
Referral URL: http://www.name.com
>>> Last update of whois database: Fri, 18 Jan 2013 08:57:23 UTC <<<
Реализация этой функции зависит от TLD. .GOV, например, не возвращает запросы к серверу имен:
$ whois -h whois.nic.gov "nameserver =a.gov-servers.net"
% DOTGOV WHOIS Server ready
No match for nameserver "A.GOV-SERVERS.NET".
>>> Last update of whois database: 2013-01-18T08:59:27Z <<<
На самом деле не существует надежного способа (т.е. метода, доступного для всех TLD), чтобы проверить, был ли хост зарегистрирован в реестре через общедоступные службы DNS или Whois. Вы не можете напрямую запрашивать связующие записи, и вы видите их только в том случае, если вы запрашиваете домен, используя искомые серверы имен. Поскольку вас интересуют серверы имен, не связанные ни с одним доменом, это не вариант.
Подход whois - ваш лучший выбор, но на него нельзя полагаться. В реестре может быть зарегистрирован сервер имен, но не нужно его помещать в Whois, если нет связанных доменов. Единственный 100% надежный способ проверить наличие сервера имен в реестре - это запросить реестр с помощью команды EPP CHECK. Поскольку они доступны только регистраторам, вам это мало поможет.
Допустим, еще нет доменов, использующих эти серверы имен для DNS. Как можно проверить за пределами моей учетной записи R, что серверы имен были успешно зарегистрированы в реестре .TLD?
Конечно, если у вас нет доменов, связанных с сервером имен, имеет ли это значение? Единственный гарантированный способ проверки - это зарегистрировать домен в TLD с помощью вашего сервера имен, запросить домен и проверить связь, которую вы получите от `dig @tldnameservers yourdomain ns.
Используйте nslookup или dig, чтобы запросить сервер gTLD о ваших серверах имен. Вы также можете использовать следующий веб-сайт для отслеживания делегирования DNS для вашего домена:
Для всех новых gTLD ICANN предписывает всем реестрам получать ответы whois на запросы серверов имен, чтобы проверять, зарегистрирован ли данный сервер имен (по имени или IP) в реестре. Это далеко не супер-полезный, но он существует.
Сначала запросите корневые серверы имен:
dig ns .
Затем запросите один из корневых серверов имен для серверов имен TLD (например, .net
):
dig @m.root-servers.net. ns net.
(Или вы можете пропустить первый шаг и просто запросить dig ns net.
Теперь запросите у одного из этих серверов имен доменное имя с нужными серверами имен:
dig @m.gtld-servers.net. ns speedy.net.
Если TLD домена совпадает с TLD серверов имен (это не обязательно должен быть тот же домен), а серверы имен зарегистрированы на уровне TLD, вы получите IP-адреса серверов имен. :
; <<>> DiG 9.11.3-1ubuntu1.12-Ubuntu <<>> @m.gtld-servers.net. ns speedy.net.
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39877
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 9
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;speedy.net. IN NS
;; AUTHORITY SECTION:
speedy.net. 172800 IN NS ns1.speedy.net.
speedy.net. 172800 IN NS ns2.speedy.net.
speedy.net. 172800 IN NS ns3.speedy.net.
speedy.net. 172800 IN NS ns4.speedy.net.
;; ADDITIONAL SECTION:
ns1.speedy.net. 172800 IN A 205.251.197.253
ns1.speedy.net. 172800 IN AAAA 2600:9000:5305:fd00::1
ns2.speedy.net. 172800 IN A 205.251.192.194
ns2.speedy.net. 172800 IN AAAA 2600:9000:5300:c200::1
ns3.speedy.net. 172800 IN A 205.251.199.10
ns3.speedy.net. 172800 IN AAAA 2600:9000:5307:a00::1
ns4.speedy.net. 172800 IN A 205.251.194.116
ns4.speedy.net. 172800 IN AAAA 2600:9000:5302:7400::1
;; Query time: 2 msec
;; SERVER: 192.55.83.30#53(192.55.83.30)
;; WHEN: Thu Jun 18 04:42:20 UTC 2020
;; MSG SIZE rcvd: 287
В противном случае, если TLD отличается или серверы имен не зарегистрированы, вы получите имена серверов имен без IP-адресов:
dig @m.gtld-servers.net. ns speedymatch.com.
; <<>> DiG 9.11.3-1ubuntu1.12-Ubuntu <<>> @m.gtld-servers.net. ns speedymatch.com.
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10930
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;speedymatch.com. IN NS
;; AUTHORITY SECTION:
speedymatch.com. 172800 IN NS ns1.speedy.net.
speedymatch.com. 172800 IN NS ns2.speedy.net.
speedymatch.com. 172800 IN NS ns3.speedy.net.
speedymatch.com. 172800 IN NS ns4.speedy.net.
;; Query time: 2 msec
;; SERVER: 192.55.83.30#53(192.55.83.30)
;; WHEN: Thu Jun 18 04:45:02 UTC 2020
;; MSG SIZE rcvd: 126
Повторите эти запросы для любого TLD, для которого вы хотите проверить серверы имен. Вам не нужно запрашивать каждый из серверов имен TLD, достаточно одного. Но если вы хотите, вы можете запросить их все.
Для тестирования вам понадобится домен в том же TLD, что и домен серверов имен. Если у вас нет такого домена для тестирования, вы можете сначала добавить новые серверы имен в качестве дополнительных серверов имен в дополнение к старым серверам имен, затем проверить, работает ли он, и только затем удалить старые серверы имен вашего домена.