Я установил новую запись DNS для одного из своих поддоменов (я еще не настраивал виртуальные хосты Apache или что-то подобное). Как я могу проверить, распространяется ли информация DNS?
Я предполагал, что могу просто ping my.subdomain.com
и предположим, что, если бы он мог разрешиться, он бы показал IP-адрес, который я указал в записи A. Однако я не знаю, правильно ли я предполагаю. Как лучше всего проверить эту информацию?
Вы можете использовать dig или nslookup, скажем, ваш (или вашего провайдера, если вы не используете свой собственный) сервер имен - ns1.example.com.
Используя nslookup:
nslookup - ns1.example.com
При вводе подсказки:
my.example.com
Если он соответствует тому, что вы ожидали, значит, он работает. Это должно дать вам что-то вроде:
Name: example.com
Address: 192.0.43.10
Это может занять некоторое время, чтобы распространиться на остальную часть Интернета, это вне вашего контроля.
Используя dig:
dig@ns1.example.com my.example.com
Вы должны увидеть что-то вроде:
;; ANSWER SECTION:
example.com. 172800 IN A 192.0.43.10
Простое использование ping может дать вам представление, но только когда оно распространилось (кэширование удаленными серверами имен может быть лучшим способом его описания), и ваш локальный кеш DNS может нуждаться в очистке. Хотя в вашем случае это не касается, потому что это новая запись. В этом случае он должен быть доступен немедленно. Вышеупомянутый способ более точен в том, чтобы дать вам идею, а не просто пропинговать ее.
Если вы используете окна, то команды и синтаксис могут немного отличаться, но очень похожи.
Вы не можете проверить распространение записи DNS, потому что распространение DNS не происходит. Вы можете проверить, есть ли у DNS-клиента или сервера кэшированная конкретная запись DNS.
Поскольку это новая запись DNS, кэширование не могло произойти. Предполагая, что ваши DNS-серверы правильно зарегистрированы на родительских серверах и что ваши DNS-серверы работают правильно, эта DNS-запись должна быть немедленно доступна любому DNS-клиенту или серверу.
Хотя другие ответы довольно хороши, помните, что то, что вам передали, не может быть передано мне. вместо того, чтобы использовать DIG или NSlookup и тратить час на проверку DNS-серверов по всему миру, я обычно использую http://www.whatsmydns.net/ чтобы увидеть, как идет распространение.
Самый простой способ убедиться, что ваши авторитетные DNS-серверы в вашем пути делегирования отвечают правильно, - это использовать dig +trace
:
; <<>> DiG 9.7.3 <<>> +trace www.google.com a
;; global options: +cmd
. 80050 IN NS m.root-servers.net.
. 80050 IN NS f.root-servers.net.
. 80050 IN NS i.root-servers.net.
. 80050 IN NS h.root-servers.net.
. 80050 IN NS c.root-servers.net.
. 80050 IN NS k.root-servers.net.
. 80050 IN NS d.root-servers.net.
. 80050 IN NS g.root-servers.net.
. 80050 IN NS a.root-servers.net.
. 80050 IN NS b.root-servers.net.
. 80050 IN NS e.root-servers.net.
. 80050 IN NS l.root-servers.net.
. 80050 IN NS j.root-servers.net.
;; Received 509 bytes from 192.168.1.1#53(192.168.1.1) in 0 ms
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
;; Received 504 bytes from 198.41.0.4#53(a.root-servers.net) in 127 ms
google.com. 172800 IN NS ns2.google.com.
google.com. 172800 IN NS ns1.google.com.
google.com. 172800 IN NS ns3.google.com.
google.com. 172800 IN NS ns4.google.com.
;; Received 168 bytes from 192.43.172.30#53(i.gtld-servers.net) in 20 ms
www.google.com. 604800 IN CNAME www.l.google.com.
www.l.google.com. 300 IN A 173.194.35.180
www.l.google.com. 300 IN A 173.194.35.178
www.l.google.com. 300 IN A 173.194.35.176
www.l.google.com. 300 IN A 173.194.35.177
www.l.google.com. 300 IN A 173.194.35.179
;; Received 132 bytes from 216.239.34.10#53(ns2.google.com) in 27 ms
Это будет следовать за делегированием на серверы имен, уполномоченные для вашего запроса. Последний ответ, как правило, наиболее беспокоит вас, но трассировка полезна тем, что показывает, кто отвечает за каждую делегацию. Однако, если вы меняете серверы имен, это может быть очень полезно.
Имейте в виду, что трассировка будет опрашивать авторитетные серверы напрямую, поэтому кэширование отсутствует. Это лучший показатель того, что ответы возвращаются, как ожидалось, но не является хорошим показателем того, что могут испытать конечные пользователи. Однако, поскольку вы не всегда можете контролировать кэширующие серверы имен других людей (помимо предусмотрительности, чтобы снизить свой TTL, дождаться исходного TTL, внести изменения, а затем восстановить TTL), обычно не стоит проверять постфактум.
Попробуйте check-host.net:
http://check-host.net/check-dns?host=example.com%20
Сайт позволяет выполнять DNS-запросы через несколько общедоступных DNS-серверов параллельно. Супер удобно.