К основному содержимому

TTL в DNS: что это и как правильно настроить

Домены · 19.04.2026 · 4 мин чтения
Иллюстрация к статье «TTL в DNS: что это и как правильно настроить»

TTL (Time to Live) — время в секундах, в течение которого DNS-резолверы и браузеры кэшируют ответ на DNS-запрос. После истечения TTL кэш сбрасывается и клиент делает новый запрос к DNS-серверу.

Как работает TTL

Пример: у A-записи example.com установлен TTL = 3600 (1 час). Пользователь открывает сайт — его браузер запрашивает IP у DNS. Следующий час этот IP хранится в кэше. Если вы сменили IP-адрес, пользователь ещё час будет попадать на старый сервер.

Рекомендуемые значения TTL

Тип записиСтабильный TTLПеред миграцией
A (IP-адрес)3600 (1 час)300 (5 мин)
AAAA (IPv6)3600 (1 час)300 (5 мин)
CNAME3600 (1 час)300 (5 мин)
MX (почта)86400 (24 часа)3600 (1 час)
TXT (SPF/DKIM)86400 (24 часа)3600 (1 час)
NS86400 (24 часа)86400 (не менять)
💡 Перед миграцией: Снизьте TTL всех важных записей до 300 секунд за 24–48 часов до переезда. После миграции верните к стандартным значениям.

Проверка TTL записей

# Проверка TTL A-записи
dig example.com A

# Ответ покажет TTL
;; ANSWER SECTION:
example.com.    3600    IN    A    192.168.1.1
#               ^^^^
#               TTL в секундах

Минимальный TTL в cPanel

В cPanel (Зона DNS → Simple DNS Zone Editor) минимальный TTL по умолчанию — 14400 секунд. Для более быстрого распространения изменений:

  1. Перейдите в Advanced DNS Zone Editor
  2. Выберите запись → изменить TTL
  3. Минимально допустимый cPanel TTL — 14400
⚠️ Не ставьте TTL слишком низким на постоянной основе: TTL = 60 секунд создаёт избыточную нагрузку на DNS-сервер и увеличивает время открытия сайта для каждого нового пользователя.

Частые ошибки, связанные с TTL

СимптомПричинаРешение
После смены IP часть пользователей всё ещё видит старый сервер спустя суткиTTL не снизили заранее, резолверы удерживают старую запись весь исходный срок кэшированияПеред следующей миграцией снизить TTL за 24–48 часов заранее, а не в момент переезда
cPanel показывает TTL 14400, хотя в зоне указано 300cPanel применяет собственный минимальный TTL для Simple DNS Zone Editor независимо от введённого значенияИспользовать Advanced DNS Zone Editor, где можно задать точное значение TTL
Резолвер провайдера отдаёт старую запись дольше объявленного TTLНекоторые резолверы округляют или увеличивают TTL сверх авторитетного значения — это разрешено RFC как элемент кэширования, а не ошибкаЗаложить дополнительный запас времени при планировании миграции (реальный TTL ≥ объявленного)
После изменения TTL с 300 на 86400 распространение всё равно быстроеНовое (увеличенное) значение TTL вступает в силу только после истечения предыдущего, более короткого TTL — поэтому эффект заметен не сразуОжидаемое поведение, увеличивать TTL стоит уже после завершения миграции

TTL при использовании CDN и failover

Для схем с автоматическим переключением IP при аварии (DNS failover) низкий TTL — не разовая мера перед миграцией, а постоянная настройка.

# Типичная конфигурация для failover-схемы
@  A  60  203.0.113.10   ; основной сервер
@  A  60  203.0.113.20   ; резервный сервер (используется системой мониторинга)

TTL = 60 секунд означает, что при аварии основного сервера переключение на резервный займёт до минуты вместо часа. Подробнее о самой механике переключения — в статье про DNS failover, а про распределение нагрузки между географически разнесёнными серверами — в статье про Anycast и GeoDNS.

Когда снижение TTL не поможет

  • Резолвер интернет-провайдера пользователя принудительно устанавливает собственный минимальный TTL выше вашего — это встречается у части мобильных операторов и не контролируется со стороны владельца домена
  • NS-записи родительской зоны (в реестре TLD) имеют собственный TTL, обычно 24–48 часов, и не зависят от TTL записей внутри вашей зоны
  • Приложения и мобильные клиенты кэшируют DNS на уровне ОС или библиотеки независимо от TTL записи — например, часть Java-приложений кэширует DNS «навсегда» без явной настройки networkaddress.cache.ttl
  • Браузеры имеют собственный внутренний DNS-кэш (обычно 60 секунд у Chrome) поверх системного — снижение TTL записи на это не влияет

SOA Minimum: TTL для негативного кэширования

Поле Minimum в SOA-записи задаёт TTL для негативных ответов — например, для NXDOMAIN, когда запрошенного имени не существует. Это значение отдельно от TTL обычных A/MX-записей и часто остаётся без внимания при настройке зоны.

# Пример SOA-записи
example.com. IN SOA ns1.zevshost.net. admin.example.com. (
  2026093001 ; Serial
  3600       ; Refresh
  900        ; Retry
  1209600    ; Expire
  3600 )     ; Minimum (негативное кэширование)
Провайдер DNSТипичный SOA Minimum
cPanel (BIND)3600 секунд
Cloudflare1800–3600 секунд
Route 53 (AWS)900 секунд по умолчанию

Если вы удалили запись и ожидаете, что резолверы сразу узнают об этом — учитывайте именно SOA Minimum, а не TTL самой записи: пока не истёк Minimum, некоторые резолверы могут кэшировать ответ «записи нет» отдельно от прежнего значения.

Статья помогла?
← Назад в базу знаний Задать вопрос поддержке