Проверка распространения DNS
Спросите четыре публичных резолвера, куда указывает домен — Google, Cloudflare, Quad9 и OpenDNS — и посмотрите, согласны ли они. Один вопрос, четыре ответа, с сервера sysosx: самый быстрый честный способ понять, действительно ли изменение DNS распространилось.
Предпочитаете автоматическое наблюдение? Следите бесплатно с myeventwatch — оповещения об истечении срока и простоях, карта не нужна.
Что такое распространение на самом деле
События распространения не существует. Когда вы меняете запись DNS, ничего никуда не перемещается: авторитетный сервер имён просто начинает отвечать иначе, а каждый резолвер в мире продолжает отдавать то, что он получил в последний раз, пока не истечёт TTL этого ответа. Резолвер, который спросил за пять минут до вашего изменения, отдаёт старое значение до конца своего TTL; резолвер, который спрашивает впервые после вашего изменения, сразу получает новое значение. «Распространение» — это лишь медленная сходимость тысяч независимых кэшей, у каждого свои часы, — поэтому у него нет времени окончания, есть только окно, ограниченное TTL, и поэтому честный вопрос никогда не звучит как «уже распространилось?», а как «согласны ли уже те резолверы, которые важны?».
Эта страница отвечает на этот вопрос для четырёх резолверов, которыми на самом деле пользуется большая часть интернета. Google, Cloudflare, Quad9 и OpenDNS параллельно спрашивают с сервера sysosx о записях A и AAAA домена, и таблица показывает, что сказал каждый, с самым низким увиденным TTL. Когда все четыре согласны, изменение распространилось настолько, насколько это практически нужно. Когда они не согласны, столбец TTL говорит, сколько продлится несогласие: переждите его, затем проверьте снова. Снижение TTL записи до нескольких минут за день-два до запланированной миграции — самый эффективный приём распространения из существующих: он укорачивает память каждого кэша до изменения, вместо борьбы с ней после.
Как читать таблицу
Каждая строка — один резолвер. Столбец A — возвращаемый им адрес IPv4, AAAA — адрес IPv6, если он у домена есть, а TTL — самое низкое время жизни среди ответов: число секунд, в течение которых этот резолвер будет продолжать верить своему ответу, прежде чем спросить снова. Резолвер, отмеченный «timeout», не ответил вовремя; это утверждение о резолвере, а не о вашей записи, и остальные строки остаются в силе. Результат «does not exist» означает, что каждый ответивший резолвер согласился, что имя вообще не зарегистрировано, — проверьте написание прежде всего остального. А когда баннер говорит, что резолверы не согласны, удержитесь от желания что-то «исправить»: повторная проверка каждую минуту не ускоряет ничей кэш, а повторное редактирование записи лишь перезапускает каждый TTL, который вы ждали.
Связанные инструменты: поиск DNS для полного набора записей одного резолвера, когда нужно изучить одну запись, цепочка статусов HTTP, когда адрес верен, а путь перенаправлений неверен, и проверка здоровья веб-сайта для полной картины — достижимость, сертификат, срок действия и записи вместе.
Дополнительное чтение: почему сайт выглядит по-разному из разных мест — цепочки перенаправлений, распространение DNS и промежуточные кэши, и как понять, какой из них вас кусает.
Часто задаваемые вопросы
Это всемирная проверка распространения?
Нет — и, честно говоря, ни один инструмент таковым не является. Эта страница задаёт один и тот же вопрос четырём крупным публичным резолверам (Google, Cloudflare, Quad9 и OpenDNS) с сервера sysosx и показывает, согласны ли они. Согласие четырёх резолверов — веское доказательство того, что изменение распространилось; их несогласие — сигнал переждать TTL. Никто не может опросить каждый резолвер на земле, и любой инструмент, утверждающий обратное, продаёт карту, а не измерение.
Почему резолверы не согласны после того, как я изменил запись?
Потому что ничто не проталкивает изменение куда-либо. Каждый резолвер кэширует то, что получил в последний раз, ровно на столько, сколько говорит TTL записи, и обновляется по собственному расписанию. Резолвер, получивший старое значение за пять минут до вашего изменения, продолжает отдавать его, пока этот TTL не истечёт. Несогласие сразу после изменения — нормальное состояние, а не ошибка: столбец TTL говорит, сколько оно продлится.
Что означает «нет ответа» от одного резолвера?
Зависит от вида. NXDOMAIN означает, что этот резолвер авторитетно заявляет, что имя не существует, — обычно опечатка или запись, удалённая, а не изменённая. Пустой ответ без ошибки означает, что имя существует, но не содержит записей A или AAAA (например, домен только для почты). Истечение времени ожидания означает, что этот резолвер не ответил вовремя; это ничего не говорит о самой записи, а ответы остальных трёх резолверов остаются в силе.
Чем это отличается от поиска DNS?
Поиск DNS показывает полный набор записей одного резолвера — каждый тип, с TTL, — что и нужно при отладке одной записи. Эта страница показывает один вопрос (куда указывает это имя?) на четырёх резолверах, что и нужно, когда вы спрашиваете, распространилось ли изменение. Используйте поиск для изучения записи, а эту страницу — для оценки распространения.
Почему есть ограничение частоты и почему кэш всего десять минут?
Каждая проверка делает восемь живых запросов (A и AAAA у четырёх резолверов). Свежие проверки ограничены на посетителя (около двадцати в час, с небольшим запасом на всплески), чтобы сохранять вежливость, а результаты кэшируются на десять минут, а не на час, — потому что проверка распространения, чей ответ устарел на час, противоречит собственной цели. Кэшированный результат помечается как таковой.