У меня есть служба DNS от третьей стороны, которая предоставляет веб-приложение для изменения DNS. Я изменил настройки DNS, чтобы указать один из контролируемых мной доменов на наш новый IP-адрес, но прошло несколько часов, а статус не изменился.
Не очень хорошо разбираясь в том, как работают изменения DNS, я пытаюсь отладить то, что происходит - или, скорее, не происходит. Я понимаю, что DNS требует времени для глобального распространения по мере истечения срока действия кешей, но я хотел бы подтвердить, что изменение произошло на DNS-сервере моего провайдера и, таким образом, изменение уже началось.
Предыдущий IP был 1.1.1.1
и новое 2.2.2.2
(изменено для этой статьи)
Сначала я подтвердил, что домен действительно использует сервер имен, в который я могу вносить изменения:
ilari@alux:~$ dig mydomain.fi NS
; <<>> DiG 9.7.3 <<>> mydomain.fi NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6569
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 4
;; QUESTION SECTION:
;mydomain.fi. IN NS
;; ANSWER SECTION:
mydomain.fi. 77916 IN NS dns2.myprovider.com.
mydomain.fi. 77916 IN NS dns3.myprovider.com.
mydomain.fi. 77916 IN NS dns.myprovider.com.
mydomain.fi. 77916 IN NS dns4.myprovider.com.
;; ADDITIONAL SECTION:
dns.myprovider.com. 1582 IN A 10.11.12.13
dns2.myprovider.com. 1442 IN A 10.11.12.14
dns3.myprovider.com. 1715 IN A 10.11.12.15
dns4.myprovider.com. 1457 IN A 10.11.12.16
(Я изначально использовал whois mydomain.fi
для этого, но теперь я понимаю, что это был неправильный способ, поскольку он фактически не запрашивает DNS, а только то, что написано об этом в записи whois, если что-то еще.)
После этого я попробовал использовать host
для получения результатов напрямую с сервера провайдера. Я предполагаю, что это должно немедленно привести к отображению нового IP-адреса, но вместо этого:
ilari@alux:~$ host mydomain.fi dns.myprovider.com
Using domain server:
Name: dns.myprovider.com
Address: 10.11.12.13#53
Aliases:
mydomain.fi has address 1.1.1.1
Это было спустя много часов. Я подумал, что его нужно было немедленно изменить на 2.2.2.2, поскольку он должен запрашивать точный сервер, на котором я вношу изменения из веб-интерфейса. Что я должен ожидать от результатов?
Как мне убедиться, что веб-интерфейс у моего провайдера работает, а DNS правильно изменился на их сервере?
Оказывается это был проблема в их конце. Веб-интерфейс не внес изменения должным образом, и IP-адрес на их DNS-сервере не был фактически изменен.
После того, как их проблема была решена, все еще оставалась задержка в несколько минут после того, как изменение было замечено с помощью host mydomain.fi dns.myprovider.com
(и, конечно же, дольше, пока изменение не станет глобальным).
Изменение DNS становится «активным», как только вы его вносите и подтверждаете, что все авторитетных серверов (перечисленных в записях NS зоны) обслуживают новую запись. Ладададада указал вам на вопрос / ответ, в котором объясняется, как это проверить.
Изменение DNS «распространяется» после того, как срок действия кешей на всех серверах по всему миру истек и они получили новую информацию с авторитетных серверов. («распространение» - технически неправильное слово - на самом деле это истечение срока действия кеша - но это обычно используемый термин).
Вы можете управлять первым из них. Вы не можете контролировать второй ( TTL
(Время жить) значение на записи должен теоретически ограничьте время истечения срока действия кешей, однако есть интернет-провайдеры, которые просто не соблюдают значения TTL - AOL, в частности, печально известен этим).
Какая настройка времени жизни (TTL) для записи mydomain.fi? Если TTL, скажем, один день, вы не увидите изменений до завтра.
Я люблю использовать копать землю чтобы проверить это:
dig hostname.to.check @dns.myprovider.com
Обязательно проверьте все серверы имен, чтобы убедиться, что все они отвечают одинаково.
Squish.net также есть отличный инструмент для обхода DNS, который расскажет вам, как активные серверы имен будут отвечать на ваш запрос.