Как работает проверка
Ваш браузер отправляет имя и тип записи на наш сервер, а тот одновременно запрашивает каждый резолвер из списка ниже по DNS поверх HTTPS и ждёт ответа от каждого до 3,5 секунды. Вы видите каждый ответ в том виде, в каком он пришёл: записи, оставшийся TTL у резолвера в его кэшированной копии и время, за которое пришёл ответ.
Когда вы меняете запись, резолвер, который спрашивал раньше, хранит старый ответ, пока не истечёт его TTL, а затем снова обращается к вашим DNS-серверам. Резолверы, которые спрашивали в разное время, дожидаются конца TTL в разное время, поэтому изменение у одних появляется раньше, чем у других. Оставшийся TTL показывает, когда каждый из них спросит снова самое позднее.
Какие резолверы мы опрашиваем
Каждый работает во многих узлах под одним адресом (anycast), и у каждого узла может быть свой кэш. Наш сервер попадает только на ближайший к нему узел, поэтому другой узел того же резолвера ещё какое-то время может отвечать иначе. Резолвера вашего интернет-провайдера в этом списке нет; на него действуют те же правила TTL.
| Резолвер | Оператор | Штаб-квартира |
|---|---|---|
| Cloudflare 1.1.1.1 | Cloudflare | США |
| Google Public DNS | США | |
| Quad9 | Quad9 Foundation | Швейцария |
| OpenDNS | Cisco | США |
| AdGuard DNS | AdGuard | Кипр |
| NextDNS | NextDNS | США |
| Control D | Control D | Канада |
| Mullvad DNS | Mullvad VPN | Швеция |
| Hurricane Electric | Hurricane Electric | США |
| DNSPod | Tencent | Китай |
| 360 Secure DNS | Qihoo 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.