Что такое TTL?
TTL (Time To Live, время существования) — настройка DNS, указывающая, сколько секунд запись может храниться в кэше резолверов, браузеров и других систем до запроса свежей копии у авторитетных серверов имён. Малый TTL ускоряет распространение изменений DNS, а большой снижает нагрузку и повышает производительность.Как работает TTL
DNS Query Flow with TTL:
1. Client queries resolver for example.com
2. Resolver checks cache - not found
3. Resolver queries authoritative server
4. Server returns: A record 192.0.2.1, TTL 3600
5. Resolver caches for 3600 seconds (1 hour)
6. Subsequent queries served from cache
7. After 3600s, cache expires, cycle repeats
Распространённые значения TTL
| TTL (секунды) | Длительность | Сценарий |
|---|---|---|
| 60–300 | 1–5 минут | Изменения DNS, переключение при отказе |
| 300–900 | 5–15 минут | Динамические службы |
| 3600 | 1 час | Обычные сайты |
| 14400 | 4 часа | Стабильные записи |
| 86400 | 24 часа | Записи, меняющиеся редко |
TTL в DNS-записях
Формат записи
example.com. 3600 IN A 192.0.2.1
│
└── TTL in seconds
Разный TTL для разных записей
; Stable nameservers - high TTL
example.com. 86400 IN NS ns1.example.com.
; Web server - moderate TTL
www.example.com. 3600 IN A 192.0.2.1
; Dynamic content - low TTL
api.example.com. 300 IN A 192.0.2.50
Стратегия TTL
Перед изменениями DNS
Заранее уменьшите TTL перед плановыми изменениями:
Timeline:
Day -2: Lower TTL from 86400 to 300
Day 0: Make DNS change
Day 0+: Change propagates within 5 minutes
Day +1: Raise TTL back to 86400
Компромиссы
| Малый TTL (60–300) | Большой TTL (3600+) |
|---|---|
| Быстрое распространение | Медленное распространение |
| Больше DNS-запросов | Меньше DNS-запросов |
| Выше нагрузка на сервер | Ниже нагрузка на сервер |
| Лучше для переключения при отказе | Лучше для стабильности |
| Выше задержка | Ниже задержка |
TTL и распространение DNS
TTL напрямую влияет на время распространения:
Max propagation time ≈ Highest cached TTL
If TTL = 86400 (24 hours):
- Some users see old IP for up to 24 hours
- Global propagation: up to 24-48 hours
If TTL = 300 (5 minutes):
- Most users see new IP within 5-10 minutes
- Global propagation: under 1 hour
Проверка текущего TTL
С помощью dig
dig example.com A
;; ANSWER SECTION:
example.com. 3542 IN A 192.0.2.1
│
└── Remaining TTL (seconds until cache expires)
С помощью nslookup
nslookup -debug example.com
Лучшие практики
1. Используйте подходящие значения: соотносите TTL с изменчивостью записи
2. Уменьшайте TTL до изменений: снижайте его за 24–48 часов
3. Учитывайте уровни кэширования: CDN и браузеры добавляют задержки
4. Балансируйте нагрузку и скорость: не устанавливайте неоправданно малое значение
5. Контролируйте результат: проверяйте завершение распространения после изменений
6. Документируйте стандарты: устанавливайте правила TTL
TTL — фундаментальное понятие DNS, напрямую влияющее на скорость применения изменений DNS и нагрузку на серверы имён.