Что такое распространение DNS-записей?
«Распространением DNS» обычно называют период, когда после изменения записи разные резолверы ещё возвращают разные ответы. DNS не рассылает новую запись одновременно по всему интернету: каждый рекурсивный сервер получает и кеширует ответ по мере запросов и в пределах установленного времени жизни.
Откуда берётся задержка
Предположим, владелец изменил A-запись сайта с одного IP на другой. Авторитетный сервер уже отвечает новым адресом, но рекурсивный резолвер посетителя недавно сохранил старый ответ. Пока его кеш действителен, посетитель может попадать на прежний сервер. TTL определяет, как долго ответ разрешено хранить в кеше, но фактический момент обновления зависит от того, когда резолвер получил предыдущий ответ.
Отдельно может меняться делегирование домена на новые NS-серверы. Записи о делегировании тоже кешируются, поэтому смена DNS-провайдера требует внимания к старой и новой зонам. Просто изменить запись в новой панели недостаточно, если запросы всё ещё направляются на прежние авторитетные серверы.
Как проверить изменение
Сначала выясните, какие NS-серверы сейчас авторитетны для домена. Затем запросите нужный тип записи прямо у них и сравните ответы с несколькими рекурсивными резолверами. В проверке распространения DNS можно сравнить видимые ответы, а проверка DNS-параметров помогает посмотреть отдельные записи. Запишите время проверки, имя и тип записи: A, AAAA, MX и TXT обновляются независимо.
Если авторитетный сервер выдаёт старый адрес, дело не в ожидании кеша: проверьте, где на самом деле размещена зона и сохранено ли изменение. Если авторитетный ответ новый, а отдельные резолверы возвращают старый, подождите истечения кеша. Не меняйте запись многократно во время диагностики: это усложнит сопоставление ответов.
Что можно подготовить заранее
Перед запланированным переносом уменьшите TTL старой записи заблаговременно и дождитесь, пока прежний TTL перестанет влиять на кеши. Подготовьте новый сервер к запросам ещё до переключения и оставьте старый доступным на переходный период, если это возможно. Для почты проверьте не только MX, но и связанные адресные и TXT-записи.
Очистка кеша на своём компьютере влияет лишь на часть пути и не обновляет кешы других пользователей. Ошибка TLS, недоступный сервер или неправильно настроенный сайт могут сохраняться и после правильного DNS-ответа. Принципы TTL и кеширования описаны в RFC 1035; отрицательные ответы — в RFC 2308.
Полезно заранее снизить TTL старой записи, дождаться окончания прежнего срока кеширования и только затем менять адрес. Однако этот приём не действует задним числом: ответы, уже сохранённые резолверами, сохраняют прежний срок. После изменения сравните авторитетный ответ и ответы нескольких рекурсивных резолверов, записав время и тип записи.
Если одновременно меняются веб-сайт и почта, проверяйте их DNS-записи отдельно: успешная загрузка страницы не подтверждает корректную доставку сообщений.
