Назад | Перейти на главную страницу

Как проверить, распространяется ли информация DNS?

Я установил новую запись 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-серверов параллельно. Супер удобно.