Руководство 10 мин чтения 2026-10-06

Почему не обновляются DNS-записи домена: разбор TTL, отрицательного кэширования SOA и диагностика через dig, nslookup и онлайн-чекеры

Сменили IP-адрес сервера или MX-запись, а изменения не видны? Разбираем механику распространения DNS, коварное отрицательное кэширование в записи SOA (RFC 2308), инструменты диагностики dig и nslookup, а также способы мгновенного сброса локального кэша.

Инженерная редакция SysKit Проверено инженерами SysKit.ru

Типичная ситуация из практики любого сисадмина и вебмастера: вы развернули новый VDS, настроили Nginx, перенесли базу данных и изменили A-запись домена в панели управления DNS. Однако проходит час, два, а сайт у вас или у клиентов по-прежнему открывается со старого сервера либо выдает ошибку недоступности. Поддержка хостинга привычно отвечает дежурной фразой: «Ожидайте от 24 до 72 часов, пока разойдутся DNS».

Но в 2026 году формулировка «распространение DNS» (DNS propagation) — это устаревший миф, скрывающий непонимание базовых принципов работы распределенного кэширования. Записи DNS никуда не «расползаются» по проводам и не рассылаются широковещательными пакетами. Вся архитектура DNS построена на строгом механизме pull-запросов и независимого кэширования.

1. Миф о «распространении DNS» и реальная архитектура резолвинга

Когда в профессиональных кругах говорят о «распространении DNS», многие новички представляют это как активную синхронизацию: будто бы ваш регистратор или DNS-хостинг после нажатия кнопки «Сохранить» начинает обзванивать миллионы маршрутизаторов и провайдеров по всему миру, передавая новый IP-адрес.

В действительности DNS работает строго в режиме запросов по требованию:

  • Сервер зоны пассивен: Авторитетный сервер (Authoritative Name Server), на котором вы отредактировали файл зоны, никого ни о чем не уведомляет (за исключением своих вторичных slave/secondary серверов по протоколу AXFR/IXFR).
  • Резолвер запрашивает запись только при обращении клиента: Если пользователь из Москвы зашел на ваш сайт, его локальный интернет-провайдер обращается к авторитетному серверу и сохраняет ответ в свой локальный кэш.
  • Кэш живет строго по таймеру: Пока не истечет счетчик времени жизни записи (TTL), провайдер вообще не обращается к вашему DNS-серверу повторно. Он мгновенно отдает старый IP из оперативной памяти.

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

Разница во времени обновления между клиентами обусловлена не «скоростью интернета», а тем, в какой момент каждый конкретный DNS-резолвер впервые закэшировал запись. Если провайдер клиента «А» сделал запрос за 1 минуту до вашей правки, он будет хранить старый IP еще полные сутки. А провайдер клиента «Б», сделавший запрос через секунду после правки, сразу получил свежий IP-адрес нового VDS.

2. Авторитетные NS-серверы против публичных резолверов

Чтобы безошибочно диагностировать проблемы с обновлением домена, важно четко разделять участников цепочки разрешения имен (DNS Resolution Chain):

Тип DNS-узла Кто им управляет Основная функция Скорость обновления
Авторитетные NS (Authoritative) Хостинг, регистратор, Cloudflare, Яндекс 360 Хранят эталонную зону и ресурсные записи домена (SOA, NS, A, MX, TXT) Мгновенно (0–60 сек)
Рекурсивные резолверы (Recursive) Провайдеры (Ростелеком, МТС), Google (8.8.8.8), Cloudflare (1.1.1.1) Опрашивают авторитетные серверы от имени клиентов и сохраняют ответы в кэш Строго по истечении TTL
Локальный кэш ОС (Stub Resolver) Windows DNS Client, systemd-resolved, macOS mDNSResponder Кэширует ответы на уровне рабочего компьютера или смартфона До сброса или таймаута ОС

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

3. Механика TTL: почему значение 86400 замораживает старый сервер

Ключевой параметр, управляющий временем жизни DNS-записи — это TTL (Time To Live), выраженный в секундах. Это число передается авторитетным сервером в каждом DNS-ответе и указывает резолверу: «Ты обязан кэшировать эту запись и не переспрашивать меня повторно в течение X секунд».

По умолчанию многие DNS-провайдеры и регистраторы выставляют следующие стандартные значения:

  • 86400 секунд = 24 часа (1 сутки)
  • 43200 секунд = 12 часов
  • 14400 секунд = 4 часа
  • 3600 секунд = 1 час
  • 300 секунд = 5 минут

Если у вашей A-записи был установлен TTL 86400, а вы внезапно решили поменять IP сервера в 14:00, то любой клиент, открывавший ваш сайт в 13:59, не сможет увидеть новый сервер до 13:59 следующих суток. Даже если вы измените TTL на 300 одновременно со сменой IP, резолверы не узнают о новом TTL, так как они уже сохранили старый таймер отсчета на сутки.

⚠️ Важное правило: TTL нужно менять заранее, а не во время переноса

Снижение TTL до 300 секунд дает эффект только в том случае, если вы применили его заблаговременно — минимум за один полный интервал старого TTL (например, ровно за 24 часа, если старый TTL был 86400). Срок в 48 часов часто берут как практическую перестраховку на случай цепочек медленных локальных кэшей, однако протокольно достаточно дождаться истечения одного старого таймера. К моменту переключения старый кэш у всех резолверов гарантированно обнулится, они перейдут на 5-минутный опрос, и смена IP займет считанные минуты.

4. Ловушка отрицательного кэширования: поле Minimum TTL в записи SOA

Бывает куда более коварная проблема, с которой сталкиваются разработчики при добавлении новых поддоменов (например, api.domain.ru или staging.domain.ru). Вы только что создали запись, а браузер упорно пишет: «DNS_PROBE_FINISHED_NXDOMAIN» (домен не существует). И эта ошибка не уходит часами, хотя запись в панели DNS уже активна.

Это классический эффект отрицательного кэширования (Negative Caching), регламентированный стандартом RFC 2308.

Если вы или кто-то из ваших скриптов/коллег обратились к api.domain.ru до того, как вы сохранили A-запись в панели DNS, публичный резолвер (например, 8.8.8.8) обратился к авторитетному серверу и получил ответ NXDOMAIN («Имя не существует»).

Чтобы резолверы не перегружали DNS-серверы миллионами повторных запросов к несуществующим именам, RFC 2308 обязывает резолвер кэшировать сам факт отсутствия записи.

По стандарту RFC 2308 (раздел 5), итоговое время жизни отрицательного кэша вычисляется строго как минимум из двух величин:

Negative_Cache_TTL = min(SOA.MINIMUM, TTL самой записи SOA)

В большинстве конфигураций TTL самой записи SOA устанавливается равным или большим, чем поле MINIMUM, поэтому на практике тайм-аут определяет именно последнее поле записи SOA (Start of Authority). Кроме того, современные резолверы (Unbound, BIND 9, публичные DNS) часто устанавливают верхний потолок (clamp) на отрицательный кэш — по умолчанию от 1 до 3 часов (согласно рекомендациям RFC 2308), игнорируя слишком большие значения хостинга.

Давайте посмотрим, как устроена типичная запись SOA:

domain.ru. IN SOA ns1.provider.ru. hostmaster.domain.ru. (
    2026100601 ; Serial: номер версии зоны (YYYYMMDDNN)
    14400      ; Refresh: интервал проверки обновлений вторичными NS (4 часа)
    3600       ; Retry: повтор при неудачной синхронизации (1 час)
    1209600    ; Expire: срок годности зоны, если первичный NS недоступен (14 дней)
    86400      ; Minimum / Negative Caching TTL: кэширование NXDOMAIN (24 часа!)
)

Обратите внимание на последнее число — 86400 (24 часа) или 10800 (3 часа). Это и есть тайм-аут отрицательного кэширования! Если вы случайно сделали пинг или открыли новый поддомен за минуту до создания записи, публичный резолвер запомнил, что «домена нет», и будет возвращать NXDOMAIN вплоть до истечения этого тайм-аута.

💡 Как обойти блокировку отрицательного кэша

Если вы попали в ловушку отрицательного кэширования своего провайдера, переключите временно сетевые настройки компьютера на альтернативные DNS (например, Яндекс DNS 77.88.8.8 или Cloudflare 1.1.1.1), которые еще не опрашивали этот поддомен и запросят авторитетный сервер «с нуля».

5. Инструментальная диагностика: пошаговая проверка через dig и nslookup

Не доверяйте браузеру при отладке DNS — он использует многослойное внутреннее кэширование сокетов. Используйте консольные утилиты dig (доступна в Linux/macOS и в пакете bind-utils) и nslookup (штатная утилита в Windows и Linux).

1. Проверка ответа текущего DNS-резолвера системы

Узнайте, какой IP-адрес и какой остаточный TTL видит ваш компьютер прямо сейчас:

dig domain.ru +noall +answer

Пример вывода:

domain.ru.    1842    IN    A    194.58.112.34

Вторая колонка (1842) показывает оставшееся время жизни в кэше вашего резолвера в секундах (~30 минут).

2. Прямой опрос авторитетного NS-сервера хостинга

Чтобы исключить промежуточные кэши и проверить, действительно ли применились изменения в панели управления, опросите авторитетный NS-сервер напрямую (через символ @):

dig @ns1.timeweb.ru domain.ru A +noall +answer

Если авторитетный сервер сразу отдает новый IP — проблема исключительно в кэше промежуточных провайдеров. Если он отдает старый IP — изменения не сохранились в панели либо домен делегирован на другие NS!

3. Полная трассировка цепочки делегирования (+trace)

Команда +trace эмулирует работу корневого резолвера с самого верха иерархии (от корневых серверов интернета . к серверам зоны .ru и вашим NS):

dig domain.ru +trace

Этот вывод моментально покажет, если в реестре зоны верхнего уровня прописаны устаревшие NS-серверы старого провайдера.

4. Проверка записи SOA и времени отрицательного кэша

Запросите запись SOA, чтобы узнать текущий серийный номер зоны и параметр Negative Caching:

dig domain.ru SOA +noall +answer

6. Проверка глобального резолвинга через онлайн-инструменты SysKit

Консольный опрос с локальной машины показывает ситуацию только с одного провайдера. Но как узнать, как домен виден из других городов, стран и мобильных сетей?

Для комплексного аудита используйте бесплатные сетевые инструменты SysKit:

  • DNS Lookup онлайн — мгновенная проверка всех ресурсных записей домена (A, AAAA, MX, TXT, CNAME, NS, SOA) с отображением точного значения TTL и авторитетных серверов.
  • Проверка хостинга домена — позволяет в один клик определить текущего провайдера, ASN сети и реальный IP-адрес, на который сейчас ссылается домен.
  • WHOIS проверка домена — проверка текущего статуса делегирования домена у регистратора и списка активных NS-серверов в реестре TLD.
  • Ping чекер онлайн — проверка доступности нового VDS и сетевой задержки из различных географических точек.

7. Сброс кэша DNS в Windows, Linux, macOS и браузере

Если вы уверены, что публичные резолверы уже отдают новый IP-адрес, но ваш локальный компьютер или браузер упорно открывают старый сервер, необходимо принудительно очистить локальные кэши.

Очистка в Windows

Запустите командную строку (cmd) или PowerShell и выполните:

ipconfig /flushdns

Очистка в Linux (Ubuntu / Debian c systemd-resolved)

В современных дистрибутивах Linux с демоном systemd-resolved выполните:

sudo resolvectl flush-caches
# Для старых версий (Ubuntu 20.04 и ниже):
# sudo systemd-resolve --flush-caches

Проверить текущее состояние статистики кэша можно командой: resolvectl statistics.

Очистка в macOS

В терминале macOS выполните сброс через системные демоны:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder

Очистка внутреннего кэша Google Chrome и Яндекс Браузера

Браузеры на базе Chromium имеют собственный независимый кэш DNS и пул открытых сокетов Keep-Alive. Даже после ipconfig /flushdns браузер может продолжать слать запросы в уже открытое TCP-соединение со старым сервером.

  1. Откройте в адресной строке: chrome://net-internals/#dns и нажмите кнопку «Clear host cache».
  2. Затем перейдите на вкладку chrome://net-internals/#sockets и нажмите «Flush socket pools» (это принудительно разорвет открытые сессии со старым IP-адресом).
  3. Перезагрузите вкладку сайта комбинацией Ctrl + F5 (или Cmd + Shift + R на Mac).

8. Инженерный регламент бесшовного переноса домена на новый VDS

Чтобы миграция любого веб-проекта на новый сервер прошла без простоя (Zero Downtime) и без ожидания «расползания DNS», строго следуйте 4-этапному регламенту:

Этап Время до старта Необходимые действия Целевой TTL
1. Подготовка За 24–48 часов Уменьшите TTL для A, AAAA и CNAME записей в панели управления DNS. 300 сек (5 мин)
2. Настройка VDS За 2–4 часа Разверните сайт на новом VDS, настройте Nginx/Caddy, выпустите SSL и проверьте сайт через локальный файл hosts. 300 сек
3. Переключение День «Ч» (0 минут) Синхронизируйте свежую базу данных, переведите старый сервер в режим read-only и смените IP на новый VDS. 300 сек
4. Стабилизация Через 24 часа Убедитесь в отсутствии трафика на старом VDS и верните стандартный TTL для снижения нагрузки на DNS. 14400 / 86400 сек

🎯 Готовите миграцию проекта на быстрый VDS?

Выберите надежный сервер с быстрыми NVMe-дисками, защитой от сетевых сбоев и удобным управлением DNS-зонами у проверенных провайдеров.

Выбрать скоростной VDS для проекта

Рекомендуемые VDS-провайдеры

Отказоустойчивые сервера с быстрыми NVMe и каналом до 1 Гбит/с

Выбор редакции
⚡

Timeweb Cloud — Скоростные NVMe VDS

Надежные серверы с быстрыми каналами связи до 1 Гбит/с, мгновенным подключением PTR/rDNS и встроенным DNS-менеджером.

Конфигурация
1 vCPU 3.3 ГГц • 1 ГБ RAM • 15 ГБ NVMe • Трафик без лимита
Премиум Tier III
🔷

Selectel — Корпоративная инфраструктура

Дата-центры уровня Tier III, выделенные подсети IP, возможность делегирования доменов на Anycast DNS и защита от DDoS.

Конфигурация
1 vCPU • 2 ГБ RAM • 30 ГБ NVMe • 100 Мбит/с
Удобный DNS-хостинг
🟠

Beget — Простота и отказоустойчивость

Один из самых быстрых бесплатных DNS-хостингов в РФ с мгновенной синхронизацией зон и удобным управлением ресурсными записями.

Конфигурация
1 vCPU • 1 ГБ RAM • 20 ГБ NVMe • Трафик без лимита

Инструменты SysKit по теме статьи

Бесплатные утилиты для проверки и диагностики вашего сервера

Вопросы и ответы (FAQ)

Популярные вопросы вебмастеров и сисадминов по данной теме

Сколько времени реально требуется для обновления DNS-записей домена?
На авторитетных NS-серверах изменения вступают в силу практически сразу (за секунды, как только панель хостинга применит файл зоны). Однако на промежуточных резолверах интернет-провайдеров старая запись хранится ровно столько секунд, сколько было указано в её параметре TTL на момент предыдущего запроса.
Что такое отрицательное кэширование (Negative Caching) и почему оно блокирует домен?
Согласно стандарту RFC 2308 (раздел 5), если резолвер запросил запись до её фактического создания, он кэширует ответ NXDOMAIN на время, равное min(SOA.MINIMUM, TTL записи SOA). Многие публичные резолверы дополнительно ограничивают этот тайм-аут сверху значением в 1–3 часа.
Помогает ли команда ipconfig /flushdns увидеть новый сайт на телефоне или у клиентов?
Нет, команда ipconfig /flushdns очищает кэш исключительно на вашем локальном компьютере. Если мобильный оператор или провайдер клиентов продолжает хранить запись в своем DNS-кэше согласно старому TTL, они увидят новый IP только после истечения срока жизни записи или при смене системных DNS на 8.8.8.8 или 1.1.1.1.
Как правильно подготовить DNS домена к переносу сайта на новый VDS без простоя?
За 24–48 часов до начала переноса уменьшите значение TTL нужных записей (A, AAAA, CNAME) до минимального значения (300 секунд / 5 минут). В момент переключения трафика смените IP-адрес на новый VDS. После того как миграция завершится и трафик стабилизируется, верните стандартный TTL (3600 или 14400 секунд).

Читайте также в блоге SysKit

Смежные руководства и полезные технические статьи