Что такое DNS простыми словами


Распространение DNS (DNS propagation) — это время, необходимое для обновлений DNS, чтобы они дошли до всех резолверов по всему миру. Часто это понятие понимается не совсем правильно. Некоторые пользователи видят изменения практически мгновенно, а другие могут ожидать до 72 часов из-за кэширования. Понимание работы процесса резолюшн, механики TTL, уровней кэширования и заранее запланированных стратегий позволяет осуществлять миграции DNS без длительных простоев.

Что такое DNS propagation и почему это не push-рассылка

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

📖 Определение — DNS propagation не является механизмом push-рассылки: фактически нет никакой рассылки. Каждый рекурсивный резолвер по своему усмотрению инвалидирует кэш на основе TTL, полученного из последнего ответа от авторитетного сервера.

Когда вы меняете TTL и DNS-маршрутизацию, полезно отдельно посмотреть Google Web Guide: что это такое, как работает и что означает для SEO, чтобы понимать, как инфраструктурные изменения могут отразиться на обходе и интерпретации сайта.

Процесс разрешения DNS

Понимание полного пути разрешения объясняет, почему распространение занимает время и где именно происходит кэширование.

Stub Resolver — Резолвер на уровне операционной системы (ОС) вашего устройства отправляет запрос настроенному рекурсивному резолверу — например, вашему интернет-провайдеру (ISP) или публичным адресам 1.1.1.1 / 8.8.8.8.

Рекурсивный резолвер — Проверяет свой кэш. Если запись найдена и TTL не истёк, немедленно возвращает закэшированный ответ. Если нет — начинает итеративное разрешение.

Корневые серверы — Рекурсивный резолвер запрашивает один из 13 кластеров корневых серверов, который отвечает адресом TLD-сервера имён (например, NS для .com).

TLD-сервер имён — Возвращает авторитетные NS-записи для конкретного домена (например, ns1.provider.com).

Авторитетный сервер имён — Возвращает фактическую запись (A, CNAME, MX и т. д.) вместе с её TTL. Рекурсивный резолвер кэширует этот ответ.

Ответ клиенту — Рекурсивный резолвер возвращает ответ устройству, которое также может закэшировать его локально.

💡 Каждый шаг в цепочке может кэшировать результаты. Записи корневых серверов и TLD NS кэшируются на длительные периоды — часто 48 часов — но записи вашего домена кэшируются в соответствии с их собственным TTL.

Как TTL влияет на время DNS propagation

TTL (Time To Live, время жизни записи), определённый в RFC 1035, — это 32-битное целое число, представляющее секунды. Когда резолвер кэширует запись, он уменьшает TTL с течением времени. При достижении нуля запись вытесняется из кэша и должна быть получена заново.

; Пример: A-запись с TTL 1 час
example.com. 3600 IN A 93.184.216.34
; Через 2000 секунд закэшированная копия у резолвера имеет:
; Оставшийся TTL = 3600 - 2000 = 1600 секунд
TTL (секунды)Человекочитаемый видОкно распространения
601 минута~1–5 минут глобально
3005 минут~5–15 минут
36001 час~1–2 часа
8640024 часа~24–48 часов

Уровни кэширования

DNS-ответы кэшируются на нескольких уровнях, каждый из которых имеет своё поведение при вытеснении записей. На практике я всегда проверяю минимум три уровня: локальный кэш ОС, кэш ISP-резолвера и кэш публичных резолверов вроде 1.1.1.1 и 8.8.8.8 — они ведут себя по-разному даже при одинаковом TTL.

Совет профессионала: Во время миграции тестируйте с нескольких резолверов. Используйте dig @1.1.1.1, dig @8.8.8.8 и dig @9.9.9.9, чтобы проверить, подхватили ли крупные публичные резолверы изменение. Резолвер вашего ISP может заметно отставать.

Как ускорить DNS propagation: снижение TTL заранее

Единственная наиболее важная техника для быстрых и плавных изменений DNS — это предварительное снижение TTL (TTL pre-lowering). Я убедился на собственном опыте: пропуск этого шага превращает плановую миграцию в многочасовой инцидент.

За 48 часов до изменения — Снизьте TTL записи, которую планируете изменить, до 60–300 секунд. Дождитесь, пока старый высокий TTL истечёт из всех кэшей.

Внесите изменение — Обновите DNS-запись до нового значения. Поскольку TTL теперь низкий, кэши истекают быстро.

Проверьте распространение — Используйте глобальный DNS-чекер (Global DNS Checker), чтобы убедиться, что новое значение видно из нескольких точек по всему миру.

После подтверждения — Верните TTL к его нормальному рабочему значению — например, 3600 или 86400.

# Шаг 1: Снизить TTL (за 48 часов до миграции)
example.com. 60 IN A 93.184.216.34 ; было 86400
# Шаг 2: Изменить запись (день миграции)
example.com. 60 IN A 104.21.45.67 ; новый сервер
# Шаг 3: После подтверждения распространения восстановить TTL
example.com. 3600 IN A 104.21.45.67

🚫 Никогда не пропускайте шаг предварительного снижения TTL. Если ваша запись имеет TTL 24 часа и вы изменяете её без предварительного снижения, некоторые пользователи будут привязаны к старому IP до 48 часов.

Anycast DNS

Anycast — это техника маршрутизации, при которой один и тот же IP-адрес анонсируется из нескольких географических точек. DNS-провайдеры, такие как Cloudflare, Route 53 и Google Cloud DNS, используют anycast для маршрутизации запросов к ближайшему серверу, снижая задержку и повышая отказоустойчивость.

💡 Anycast означает, что два пользователя из разных стран, запрашивающие один и тот же IP резолвера — например, 1.1.1.1 — могут попасть на разные физические серверы с разным состоянием кэша. Именно поэтому распространение выглядит непоследовательным в разных регионах, и именно поэтому тестировать только с локальной машины недостаточно.

Реальное время DNS propagation: от минут до 72 часов

🎯 Для миграций без простоев держите старый сервер работающим до завершения распространения. Оба сервера — старый и новый — должны отдавать корректные ответы в течение всего переходного периода. Мой совет — не снимать старый сервер раньше времени: часть пользователей будет резолвить старый IP ещё несколько часов после смены записи.

СценарийОжидаемое время
TTL снижен до 60 с заранее1–5 минут
TTL 300 с, снижен заранее5–15 минут
TTL 3600 с без предварительного снижения1–2 часа
TTL 86400 с без предварительного снижения24–48 часов
Худший случай (ISP с нестандартным кэшем)до 72 часов

Лучшие практики

  • Всегда предварительно снижайте TTL за 48 часов до любого изменения DNS.
  • Держите старую инфраструктуру работающей параллельно в течение всего окна распространения.
  • Используйте публичные резолверы (1.1.1.1, 8.8.8.8) для тестирования — они строго соблюдают TTL.
  • Отслеживайте распространение из нескольких географических точек, а не только с вашей локальной машины.
  • Используйте anycast DNS-провайдеров для снижения задержки запросов и более быстрого обновления кэша в разных регионах.
  • Задокументируйте план отката до изменения DNS — знайте старые значения и способ их восстановления.

Типичные ошибки при работе с DNS

ОшибкаПоследствиеРешение
Не снижать TTL перед миграциейЧасы устаревшего DNS для части пользователейСнизить до 60 с, подождать 48 ч, затем изменить
Немедленно отключить старый серверПростой для пользователей, всё ещё резолвящих старый IPДержать старый сервер живым в течение 2× старого TTL
Тестировать только с локальной машиныЛокальный кэш даёт ложноположительный результатСбросить локальный кэш + тестировать с нескольких резолверов
Забыть восстановить TTL после измененияИзбыточные запросы к авторитетному серверу, более медленное разрешениеПоднять TTL обратно до 3600+ после распространения
Игнорировать негативное кэширование (RFC 2308)Удалённые записи остаются в кэшах как NXDOMAINСоздавать записи заранее, до направления трафика

DNS propagation checker: инструменты для проверки онлайн

Отслеживайте и проверяйте распространение DNS в реальном времени:

🔧 DNS Lookup — Запрашивайте любой тип записи у конкретных резолверов.

🔧 Global DNS Checker — Проверяйте статус распространения из 20+ точек по всему миру одновременно.

Ссылки


🎯 Главный вывод: DNS propagation — это не магия, а истечение срока кэша. Единственная наиболее эффективная техника — предварительное снижение TTL: опустите TTL до 60 секунд за 48 часов до изменения, внесите обновление, проверьте глобально, затем восстановите TTL. Держите старую инфраструктуру работающей в течение переходного периода и всегда тестируйте из нескольких географических точек, а не только с вашей локальной машины.

Ответы на эти вопросы могут быть для вас полезными

Почему один пользователь уже видит новый сайт, а другой — нет?

Каждый рекурсивный резолвер кэширует DNS-запись независимо и инвалидирует её только после истечения TTL. Пользователи с разными ISP или публичными резолверами получают обновление в разное время — это нормальное поведение системы, а не сбой.

Можно ли ускорить распространение DNS принудительно?

Принудительно обновить кэши сторонних резолверов нельзя. Единственный рабочий способ сократить время распространения — заблаговременно снизить TTL до 60–300 секунд и дождаться, пока старое значение вытеснится из всех кэшей естественным путём.

Что такое негативное кэширование и почему оно важно?

Негативное кэширование (RFC 2308) — это сохранение резолвером ответа NXDOMAIN (запись не найдена) на срок до минимального TTL из SOA-записи. Если вы удалили запись, а затем создали новую, часть резолверов будет возвращать «не найдено» ещё некоторое время. Решение — создавать новые записи заранее, до удаления старых.

Как правильно тестировать распространение DNS?

Используйте dig @1.1.1.1, dig @8.8.8.8 и dig @9.9.9.9 для проверки через разные публичные резолверы, а также Global DNS Checker для проверки из 20+ географических точек одновременно. Тестирование только с локальной машины ненадёжно из-за локального кэша ОС.

Нужно ли восстанавливать TTL после завершения миграции?

Да, и это важный шаг, который часто пропускают. Низкий TTL (60 секунд) означает, что каждый резолвер будет обращаться к авторитетному серверу каждую минуту — это создаёт избыточную нагрузку и замедляет разрешение. После подтверждения распространения верните TTL к рабочему значению: 3600 или 86400 секунд.

Оцените статью
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x