«Распространение» — это лишь истечение срока жизни кэшей
0 мин
вы сохраняете изменение
0-5 мин
DNS-хостинг обновляет данные
до конца TTL
старый ответ ещё в кэше
после TTL
новый ответ видят все
Ничего никуда не рассылается — каждый кэш просто перестаёт использовать свою копию
Распространение DNS: почему ждать приходится так долго
Вы обновили запись A. Новый сайт открывается на телефоне, но не на ноутбуке. Коллега в другом конце страны всё ещё видит старый. Кто-то советует вам «дождаться распространения».
Эта фраза вводит в заблуждение, и вера в неё только усложняет понимание проблемы. Ничто не распространяется. Никакие данные никуда не рассылаются.
Ключевой вывод
Ваше DNS-изменение вступило в силу в тот самый момент, когда вы его сохранили. Вы ждёте, пока тысячи независимых кешей, каждый из которых хранит старую копию, дойдут до срока истечения, который им выдали. Здесь нет ни рассылки, ни синхронизации, ни очереди.
Что происходит на самом деле
Когда резолвер ищет ваш домен, он сохраняет ответ вместе с TTL, то есть обратным отсчётом в секундах. Пока отсчёт не дойдёт до нуля, резолвер отвечает из памяти и больше не обращается к вашему серверу имён.
«Распространение» — это лишь истечение срока жизни кэшей
0 мин
вы сохраняете изменение
0-5 мин
DNS-хостинг обновляет данные
до конца TTL
старый ответ ещё в кэше
после TTL
новый ответ видят все
Ничего никуда не рассылается — каждый кэш просто перестаёт использовать свою копию
Итак, когда вы меняете запись:
- Ваш авторитативный сервер имён обновляется немедленно. Теперь он отдаёт новое значение всем, кто спрашивает.
- Каждый резолвер, закешировавший старое значение, продолжает его отдавать, пока не истечёт его собственный отсчёт.
- Эти отсчёты начались в разные моменты, когда каждый резолвер впервые получил запись, поэтому истекают в разное время.
- По мере истечения каждого из них соответствующий резолвер получает новое значение. Его пользователи переключаются именно в этот момент.
Растянутый по времени результат и выглядит как «распространение» изменения. На деле это просто множество независимых таймеров, которые один за другим заканчивают отсчёт.
Сколько на самом деле нужно ждать
Максимальное ожидание равно TTL, который был у записи до изменения. Именно эта деталь делает распространение предсказуемым.
| Прежний TTL | Максимальное ожидание | Типичное применение |
|---|---|---|
300 (5 мин) | 5 минут | Во время активной миграции |
3600 (1 час) | 1 час | Разумное значение по умолчанию |
86400 (24 часа) | 24 часа | Стабильные записи, которые редко меняются |
172800 (48 часов) | 48 часов | Делегирование NS на уровне TLD |
Как правильно спланировать изменение DNS
За день до изменения: уменьшите TTL
Измените TTL на 300 секунд и больше ничего не трогайте. Подождите как минимум столько же, сколько составлял прежний TTL, чтобы все кеши получили более короткое значение.
Убедитесь, что низкий TTL действует
Выполните
dig example.comи посмотрите TTL в разделе ответа. Когда отсчёт идёт от 300, а не от 3600, все резолверы работают с коротким таймером.Внесите само изменение
Обновите запись. Теперь максимальное ожидание для всех составит пять минут вместо часа.
Проверьте из нескольких точек наблюдения
Запросите напрямую несколько публичных резолверов: это независимые кеши, и они дают реальную выборку того, что видят разные пользователи.
Верните TTL обратно
Когда трафик устоялся на новом значении, верните TTL на 3600 или выше. Низкий TTL означает больше запросов и чуть более медленные проверки для всех.
Проверяем, что видят разные резолверы
dig +short example.com @1.1.1.1
dig +short example.com @8.8.8.8
dig +short example.com @9.9.9.9dig +short example.com @ns1.example.comПоследняя команда самая важная. Если авторитативный сервер возвращает новое значение, ваше изменение корректно и полностью применено. Всё остальное — ожидание, а не исправление. Если он возвращает старое значение, изменение не сохранилось или вы отредактировали запись у провайдера, на которого ваш домен не делегирован.
Почему на разных устройствах картина разная
Между вами и ответом не один кеш, а несколько, и у каждого свой таймер:
- Ваш браузер хранит небольшой внутренний DNS-кеш.
- Ваша операционная система хранит собственный кеш независимо от браузера.
- Ваш роутер часто кеширует ответы для всех устройств в доме.
- Резолвер вашего провайдера кеширует ответы потенциально для миллионов пользователей.
- Корпоративные резолверы и резолверы VPN добавляют ещё один уровень в управляемых сетях.
Ваш телефон в мобильной сети использует совершенно другую цепочку резолверов, чем ноутбук в домашнем Wi-Fi, и именно поэтому один показывает новый сайт, а другой нет. Уровни, которыми вы управляете, можно очистить: см. как очистить DNS-кеш.
Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.
Бесплатные инструменты по этой теме
Часто задаваемые вопросы
Читайте также
Выбор TTL на практике
Что такое DNS TTL: как выбрать правильное значение
Одно число определяет, как быстро вступают в силу изменения и сколько DNS-трафика вы создаёте. Как выбрать его осознанно.
Выбор TTL на практике
Как очистить DNS-кеш: Windows, macOS, Linux и браузеры
Команды для копирования на любой платформе и диагностика, которая заранее покажет, поможет ли очистка.
Рекурсивный DNS-запрос: шаг за шагом
Браузер
нужен example.com
Резолвер
ваш провайдер / 1.1.1.1
Корень + TLD
кто отвечает за .com?
Авторитетный
настоящий ответ
Каждый шаг цепочки — тоже DNS-запрос, и его ответ потом кэшируется
Как работает DNS: от доменного имени к IP-адресу
Телефонная книга интернета, прослеженная от начала до конца: что происходит за те несколько миллисекунд между вводом домена и приходом первого пакета на сервер.