Выбор TTL на практике
Как понимать DNS TTL: почему изменения появляются не сразу
У каждой DNS-записи есть TTL — время жизни (time to live), выраженное в секундах. Это указание авторитативного сервера имён домена каждому резолверу, получающему запись: «ты можешь использовать этот ответ повторно столько времени, прежде чем спросишь снова». TTL в 300 секунд означает, что резолвер, только что запросивший домен, не станет спрашивать снова в течение пяти минут, даже если запись за это время изменится.
Компромисс, который уравновешивает TTL
Больший TTL означает меньше DNS-запросов, более быстрые запросы в среднем (потому что больше обращений обслуживается из кеша) и меньшую нагрузку на авторитативные серверы имён. Меньший TTL означает, что изменение записи распространяется быстрее, но ценой более частых запросов. Универсально правильного значения не существует: оно зависит от того, как часто ожидается изменение записи и насколько ситуация терпима к устаревшим ответам.
Что на самом деле происходит при изменении
Обновление DNS-записи не рассылает изменение каждому резолверу в интернете. Оно лишь меняет то, что авторитативный сервер имён скажет при следующем запросе. Каждый резолвер, уже закешировавший старый ответ, продолжает его отдавать, пока не истечёт TTL его кешированной копии, — поэтому один и тот же домен может ненадолго разрешаться в разные адреса в зависимости от того, какой резолвер и какой кеш отвечает.
- Распространённый практический приём перед плановой миграцией — понизить TTL за день-два, чтобы итоговое переключение распространилось быстрее.
- После миграции TTL обычно возвращают к обычному значению.
- Запись, которая давно не менялась и имеет длинный TTL, при изменении всё равно может полностью исчезнуть из кешей по всему миру лишь по истечении этого окна TTL.
Как выбрать TTL на практике
| TTL | Хорошо подходит для | Компромисс |
|---|---|---|
| 60–300 с | Активных миграций, конечных точек с балансировкой нагрузки | Быстрое распространение, значительно больше запросов |
| 3600 с (1 ч) | Большинства обычных записей A/AAAA/CNAME | Разумный баланс для записей, которые иногда меняются |
| 86 400 с (24 ч) | MX, NS и других редко затрагиваемых записей | Меньше запросов, но изменение здесь полностью исчезает из кешей целые сутки |
Отрицательные ответы тоже кешируются, и об этом легко забыть. Когда домена не существует, сам ответ NXDOMAIN кешируется, и им управляет отдельное значение (минимальный TTL записи SOA, а не TTL записи, которой там изначально не было). Только что зарегистрированный домен иногда может какое-то время не разрешаться просто потому, что резолвер уже закешировал его NXDOMAIN с момента до завершения регистрации.
TTL — это просьба, а не гарантия
Стоит знать, что TTL носит рекомендательный характер, и никакой внешний орган его не обеспечивает. Резолвер технически вправе кешировать ответ дольше указанного TTL (некоторые так делают под высокой нагрузкой, чтобы сократить число запросов) или вытеснить его раньше (резолвер с нехваткой памяти может досрочно сбрасывать записи кеша). В подавляющем большинстве случаев хорошо управляемые публичные и провайдерские резолверы соблюдают TTL близко и предсказуемо, но именно поэтому оценка распространения по TTL — это надёжное практическое правило, а не жёсткая договорная гарантия. Если изменение так и не проявилось заметно после старого окна TTL, необычно агрессивный промежуточный кеш — одно из менее частых, но реальных объяснений, которое стоит иметь в виду.
Если вы проверяете, что изменение DNS вступило в силу, один запрос говорит лишь о том, что сейчас закешировано в одном резолвере. Повторять запрос с интервалом в несколько минут — или запланировать периодическую проверку — гораздо надёжнее, чтобы убедиться в фактическом распространении изменения, а не один раз поймать устаревший закешированный ответ и посчитать его окончательным.
Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.
Бесплатные инструменты по этой теме
Читайте также
Две схемы адресации, работающие бок о бок
IPv4
192.0.2.10
32 бита — ~4,3 млрд адресов — исчерпаны
IPv6
2606:4700::6810:84e5
128 бит — 340 ундециллионов адресов
A-записи и AAAA-записи: IPv4 и IPv6 простыми словами
A-записи возвращают адреса IPv4, AAAA-записи — адреса IPv6. Это два независимых семейства адресов одного домена, и поэтому проверять нужно оба.
Рекурсивный DNS-запрос: шаг за шагом
Браузер
нужен example.com
Резолвер
ваш провайдер / 1.1.1.1
Корень + TLD
кто отвечает за .com?
Авторитетный
настоящий ответ
Каждый шаг цепочки — тоже DNS-запрос, и его ответ потом кэшируется
Что такое DNS и как он работает на самом деле
Простое объяснение системы доменных имён: что происходит с момента ввода домена до подключения браузера к серверу.
Три уровня под названием «DNS-сервер»
Stub-резолвер
ваше устройство
Рекурсивный резолвер
провайдер, роутер или 1.1.1.1
Авторитетный
DNS самого домена
Поиск IP-адреса домена: что означают результаты
Как понимать результаты определения IP-адреса домена: несколько адресов, записи IPv4 и IPv6, узлы CDN и пределы обратной атрибуции.