Що таке TTL і як він впливає на зміни DNS?
Автор: Редакція Domeny.ForSale Опубліковано
Коротко: TTL (англ. Time To Live) — це параметр, який визначає, як довго дані можуть залишатися чинними або як довго пакет може циркулювати в мережі. У налаштуваннях домену TTL означає насамперед час зберігання відповіді DNS у кеші, зазвичай у секундах. Нижче значення дає змогу швидше побачити зміни, але не гарантує, що всі користувачі побачать їх одночасно.
Що означає TTL у DNS?
DNS — це система, яка дає змогу знайти служби, пов’язані з доменним ім’ям, наприклад IP-адресу сервера вебсайту. Цю інформацію зберігають у записах: запис A вказує адресу IPv4, а запис MX визначає сервери, які обслуговують пошту. Разом із цими даними задають TTL: він указує, як довго можна використовувати збережену відповідь, не запитуючи її повторно у джерела.
Запити користувачів часто обробляє резолвер DNS — сервер, який шукає відповіді та зберігає їх у кеші. Завдяки цьому йому не потрібно під час кожного відвідування сайту звертатися до авторитетного сервера — сервера, який публікує актуальні записи домену.
Якщо запис має TTL 3600, відповідь зазвичай можна зберігати протягом години від моменту її отримання. Значення 300 означає п’ять хвилин, а 86400 — добу. TTL не означає строку дії реєстрації домену чи дати закінчення дії сертифіката HTTPS.
Як TTL впливає на зміну адреси сайту?
Припустімо, запис A домену вказує на старий хостинг і має TTL 3600 секунд. Резолвер отримує його о 12:00, а о 12:10 ви змінюєте IP-адресу на нову. Цей резолвер може й далі повертати стару адресу приблизно до 13:00, оскільки попередня відповідь залишається чинною в його кеші.
Інший резолвер, який уперше запитає запис о 12:15, уже може отримати нову адресу. Тому після зміни DNS частина користувачів потрапляє на новий сервер, а частина — досі на старий. Це не обов’язково означає помилку в налаштуваннях.
Зміна TTL не скорочує заднім числом строк дії відповідей, уже збережених у чужих кешах. Якщо одночасно змінити IP-адресу та знизити TTL з доби до п’яти хвилин, попередні копії можуть залишатися чинними відповідно до старого значення.
Термін «поширення змін DNS» часто використовують як коротку назву цього процесу. Однак це не єдиний глобальний механізм, який розсилає зміну у визначений час. На процес впливають незалежні кеші, оновлення серверів постачальника DNS, а іноді й поведінка операційної системи чи застосунку. Отже, TTL — важливий часовий орієнтир, а не обіцянка точного моменту, коли всі користувачі перейдуть на новий сервер.
Яке значення TTL вибрати?
Вибір залежить від того, як часто ви змінюєте запис і наскільки важливо швидко оновлювати відповідь. Наведені нижче значення — приклади для різних ситуацій, а не обов’язкові налаштування.
| Ситуація | Приклад TTL | Обґрунтування |
|---|---|---|
| Запланована міграція сайту | 300 секунд | Скорочує час використання старої відповіді, якщо знизити TTL заздалегідь |
| Звичайна робота сайту | 3600 секунд | Компроміс між оновленням і використанням кешу |
| Запис, який рідко змінюють | 86400 секунд | Дає змогу довше використовувати збережені дані |
Низький TTL означає частіші запити до авторитетних серверів. Високий TTL зменшує кількість таких запитів, але ускладнює швидке скасування невдалої зміни. Саме лише зниження TTL не прискорює завантаження зображень чи виконання коду сайту.
Не кожен постачальник дозволяє вводити довільне значення. Панель керування може встановлювати мінімум, пропонувати варіант «автоматично» або самостійно керувати TTL для служб, через які проходить трафік. Значення цих налаштувань і доступний діапазон перевірте в актуальній документації свого оператора DNS.
Як налаштувати TTL перед міграцією хостингу?
Найважливіше — знизити TTL завчасно, перш ніж змінювати цільовий сервер. Якщо поточний TTL запису становить добу, заплануйте його зниження щонайменше за добу до перемикання. Відлік починається з моменту публікації зміни на авторитетних серверах.
- Перевірте поточні записи та їхній TTL. Визначте, які адреси змінюєте: сайт може використовувати як запис A, так і запис AAAA, що вказує адресу IPv6.
- Знизьте TTL цих записів, наприклад до 300 секунд, якщо постачальник це дозволяє. Зачекайте, доки мине час, що відповідає попередньому значенню TTL.
- Підготуйте новий хостинг. Перевірте роботу сайту, сертифікат HTTPS і з’єднання з базою даних до зміни DNS.
- Змініть записи та стежте за обома серверами. Не вимикайте старий хостинг одразу. Якщо це магазин або сайт із формами, подбайте також про узгодженість даних під час переходу.
- Після стабілізації роботи поверніть звичайний TTL, якщо короткий строк більше не потрібен.
Ця процедура стосується зміни записів служб. Під час зміни серверів імен домену додаються питання делегування — визначення серверів, які відповідають за його DNS. Саме лише зниження TTL запису A не керує всім процесом такого перемикання.
Що означає TTL поза DNS?
У пакетах IPv4 TTL обмежує кількість переходів через маршрутизатори. Хоча назва пов’язана з часом, на практиці кожен маршрутизатор, який передає пакет, зменшує це значення на одиницю. Коли значення вичерпано, пакет відкидається. Це захищає мережу від нескінченного руху пакетів по колу. В IPv6 відповідником є поле Hop Limit.
TTL також використовують у кешах застосунків, де він визначає строк дії збереженого результату, наприклад відповіді, отриманої з API. Тому завжди зважайте на контекст: TTL біля запису домену стосується DNS, а TTL у результаті команди ping — мережевого пакета.
Якщо ви готуєтеся змінити хостинг, почніть із перевірки поточного TTL: саме він допоможе визначити, за скільки часу потрібно розпочати підготовку.
Дивіться також: Що таке VPS?
