Кэш DNS-записи: принцип работы и способы очистки
Кэш DNS-записей — это временное хранилище соответствий между доменными именами и IP-адресами. Благодаря ему устройство или DNS-серверу не приходится заново запрашивать адрес сайта при каждом подключении. Это ускоряет открытие страниц, снижает нагрузку на инфраструктуру и помогает стабильнее обслуживать большое количество запросов.
Однако сохраненная запись не всегда остается актуальной. После смены хостинга, IP-адреса, DNS-провайдера или настроек домена пользователи могут некоторое время попадать на старый сервер. В такой ситуации важно понимать, где именно находится устаревший кэш, сколько он хранится и как принудительно обновить данные.
Что такое кэш DNS-записи
Когда пользователь вводит доменное имя в браузере, системе необходимо узнать, какой IP-адрес ему соответствует. Для этого выполняется DNS-запрос. Полученный результат сохраняется в кэше на определенный срок, который задается параметром TTL — временем жизни записи.
Кэш может находиться сразу на нескольких уровнях: в браузере, операционной системе, домашнем роутере, корпоративном DNS-сервере и у публичного резолвера провайдера. Поэтому обновление записи у владельца домена не всегда мгновенно отображается у всех пользователей. Каждый промежуточный узел использует собственный сохраненный результат до окончания его TTL.
В кэше сохраняются не только A-записи с IPv4-адресами. Аналогично могут временно храниться AAAA-записи для IPv6, CNAME, MX, NS, TXT и другие типы DNS-данных. Их поведение зависит от TTL и политики конкретного DNS-резолвера.
Зачем нужен DNS-кэш
Основная задача кэша — сократить количество повторных обращений к DNS-инфраструктуре. Если адрес уже известен, система сразу использует сохраненный результат, не ожидая ответа от вышестоящего сервера. Пользователь быстрее устанавливает соединение, а DNS-серверы обрабатывают меньше запросов.
- Ускоряется разрешение доменных имен при повторных посещениях.
- Снижается нагрузка на авторитетные DNS-серверы и резолверы.
- Уменьшается объем служебного трафика между устройством, провайдером и DNS-системой.
- Стабильнее работают приложения, которые часто обращаются к одним и тем же доменам.
Кэширование особенно заметно в локальных сетях и крупных сервисах. Роутер или корпоративный DNS-сервер может обслуживать запросы множества устройств, используя один сохраненный ответ вместо повторного обращения к внешней инфраструктуре.
Почему возникает проблема устаревшей записи
Наиболее распространенная причина — изменение DNS-записи до окончания ее TTL. Например, сайт перенесли на новый хостинг, а у части пользователей еще сохраняется старый IP-адрес. До истечения срока кэширования такие пользователи могут видеть прежнюю версию сайта, ошибку подключения или страницу, которая больше не должна открываться.
Похожая ситуация возникает при смене почтового сервера, DNS-провайдера, CDN или настроек поддомена. Если разные резолверы обновляют данные в разное время, домен может открываться по-разному в зависимости от сети и устройства.
Не всякая ошибка связана именно с кэшем. Причиной также могут быть неверная запись на авторитетном DNS-сервере, проблемы делегирования, недоступность сервера, ошибка TLS, настройки браузера или локального файрвола. Поэтому после очистки кэша стоит проверить актуальные записи и доступность самого сервиса.
Как очистить кэш DNS
Если изменения должны примениться немедленно, начните с локального устройства. В Windows кэш обычно очищают командой ipconfig /flushdns, запущенной в командной строке с подходящими правами. После выполнения система удаляет сохраненные результаты и заново запрашивает DNS-данные при следующем обращении.
В macOS и Linux способ зависит от используемой службы разрешения имен. На компьютере может работать systemd-resolved, nscd, dnsmasq или другая служба. Обычно очищают кэш через перезапуск соответствующего сервиса или штатную команду операционной системы. Универсальной команды для всех дистрибутивов нет, поэтому сначала нужно определить активный DNS-резолвер.
Если проблема сохраняется, очистите DNS-кэш браузера, перезапустите браузер и временно отключите приложения, которые используют собственный DNS или защищенное разрешение имен. Затем перезагрузите роутер: некоторые модели сохраняют DNS-ответы в оперативной памяти. В корпоративной сети обновление может потребовать очистки кэша внутреннего DNS-сервера администратором.
Очистка локального кэша не удаляет записи у провайдера и публичных резолверов. Если TTL еще не истек, удаленное обновление может продолжаться некоторое время. Принудительно изменить чужой кэш нельзя, поэтому при миграции сервисов изменения планируют заранее.
Как проверить актуальность DNS-данных
Для диагностики сравнивают ответы нескольких DNS-резолверов и проверяют их возраст или оставшийся TTL. Запросы можно выполнять штатными инструментами операционной системы, например nslookup или dig. Важно смотреть не только на сам IP-адрес, но и на тип записи, цепочку CNAME, сервер, который дал ответ, и время кэширования.
Если один резолвер возвращает новый адрес, а другой старый, вероятнее всего, обновление еще распространяется или на серверах настроены разные данные. Если все резолверы возвращают старый адрес после истечения ожидаемого TTL, нужно проверить авторитетную DNS-зону и делегирование домена.
Перед изменением критичных записей рекомендуется уменьшить TTL заранее, дождаться обновления прежнего значения, затем выполнить миграцию и установить подходящий срок кэширования. Слишком маленький TTL ускоряет распространение изменений, но увеличивает число DNS-запросов. Слишком большой TTL повышает производительность, однако усложняет аварийные переключения.