Проверка распространения DNS

Задайте один и тот же вопрос сразу 11 крупным публичным DNS-резолверам и сравните их ответы. Пользуйтесь после смены записи, чтобы увидеть, у каких резолверов уже новое значение и как долго остальные могут хранить старое.

Домен или поддомен, например example.com или www.example.com. Вставленный адрес тоже подойдёт.
Тип записи
Резолверы Введите домен и нажмите «Проверить». Каждый резолвер отвечает из своего кэша, поэтому видно, у кого изменение уже есть, а у кого ещё старый ответ.

Переносите сайт на новый сервер? Уменьшите TTL записи за день до переезда, затем измените запись и проверяйте здесь, пока все резолверы не покажут новый адрес. Сейчас от 4,46 € в месяц, на выбор: 2 132 сервера.

Проверяемое имя отправляется на наш сервер, а оттуда по HTTPS — публичным резолверам из списка ниже. Мы его не сохраняем.

Как работает проверка

Ваш браузер отправляет имя и тип записи на наш сервер, а тот одновременно запрашивает каждый резолвер из списка ниже по DNS поверх HTTPS и ждёт ответа от каждого до 3,5 секунды. Вы видите каждый ответ в том виде, в каком он пришёл: записи, оставшийся TTL у резолвера в его кэшированной копии и время, за которое пришёл ответ.

Когда вы меняете запись, резолвер, который спрашивал раньше, хранит старый ответ, пока не истечёт его TTL, а затем снова обращается к вашим DNS-серверам. Резолверы, которые спрашивали в разное время, дожидаются конца TTL в разное время, поэтому изменение у одних появляется раньше, чем у других. Оставшийся TTL показывает, когда каждый из них спросит снова самое позднее.

Какие резолверы мы опрашиваем

Каждый работает во многих узлах под одним адресом (anycast), и у каждого узла может быть свой кэш. Наш сервер попадает только на ближайший к нему узел, поэтому другой узел того же резолвера ещё какое-то время может отвечать иначе. Резолвера вашего интернет-провайдера в этом списке нет; на него действуют те же правила TTL.

РезолверОператорШтаб-квартира
Cloudflare 1.1.1.1CloudflareСША
Google Public DNSGoogleСША
Quad9Quad9 FoundationШвейцария
OpenDNSCiscoСША
AdGuard DNSAdGuardКипр
NextDNSNextDNSСША
Control DControl DКанада
Mullvad DNSMullvad VPNШвеция
Hurricane ElectricHurricane ElectricСША
DNSPodTencentКитай
360 Secure DNSQihoo 360Китай

Пример

Вы переносите example.com на новый VPS с адресом 203.0.113.10. Вы меняете A-запись, вводите здесь example.com, выбираете A и указываете 203.0.113.10 как ожидаемое значение. Восемь резолверов показывают новый адрес; три всё ещё показывают старый, и у них осталось до 40 минут TTL. В течение 40 минут эти три спросят снова и тоже получат новый адрес.

Вопросы

Сколько занимает распространение DNS?

Не дольше, чем TTL старой записи. Резолверы хранят ответ в течение его TTL, а затем спрашивают снова, поэтому запись с TTL 3600 секунд доходит до каждого резолвера в течение часа. Смена самих DNS-серверов может занять до двух суток, потому что TTL делегирования в реестре больше.

Почему резолверы показывают разные ответы?

У каждого резолвера свой кэш. Тот, что спрашивал незадолго до вашего изменения, хранит старый ответ, пока не истечёт его TTL; тот, что спрашивал позже, уже получил новый. Крупные сайты к тому же намеренно отвечают по-разному в зависимости от расположения, поэтому их A- и AAAA-записи могут отличаться у разных резолверов, даже если ничего не менялось.

Проверяет ли это DNS из разных точек мира?

Проверяются крупные публичные резолверы, каждый — из узла, ближайшего к нашему серверу. Эти резолверы держат узлы на всех континентах под одним адресом, и у каждого узла может быть свой кэш, поэтому результат показывает, что каждый резолвер отвечает оттуда. Резолвера вашего интернет-провайдера среди них нет.

Как ускорить распространение изменения DNS?

Уменьшите TTL записи, например до 300 секунд, как минимум за один старый TTL до изменения, чтобы кэши хранили старый ответ лишь несколько минут. После изменения очистить кэши чужих резолверов нельзя, но у Cloudflare и Google есть публичные страницы, где можно сбросить из их кэша одно имя.

Все резолверы показывают новое значение, а мой компьютер нет. Почему?

Ваш компьютер, браузер или роутер могут всё ещё хранить старый ответ, либо резолвер вашего интернет-провайдера ещё не спрашивал снова. Очистите локальный кэш DNS или перезапустите браузер, проверьте, нет ли записи в файле hosts, и дождитесь, пока истечёт старый TTL.