TTL означает «время жизни» и указывает, как долго ваши настройки DNS должны храниться в кэше, прежде чем они будут автоматически обновлены.
Когда происходит изменение DNS, остальной части Интернета требуется время, чтобы это заметить. Некоторые примеры таких изменений: обновление IP-адреса сервера, обновление записи MX для размещения вашей электронной почты в новом месте или добавление нового веб-сайта. Параметр TTL сообщает Интернету, как долго ждать, прежде чем вернуться для проверки вашей записи DNS на предмет потенциально новой информации.
Если для параметра TTL DNS установлено значение 12 часов, ваши записи DNS будут кэшироваться в течение 12 часов, прежде чем срок их действия истечет, и новая информация вступит в силу.
TTL на доменах IONOS устанавливается на срок до 1 часа для всех записей A, AAA, MX, TXT и CNAME.
Как долго длится TTL?
TTL указывается в секундах. Типичное значение по умолчанию обычно составляет 12 часов (43200 секунд) или 24 часа (86400 секунд). Например — сайт переезжает на новый сервер; или вы добавляете новый URL на свой сервер. Новые изменения DNS вступят в силу через 12–24 часа.
Обратите внимание, что даже если вы измените TTL для своего доменного имени, это не означает, что автоматически каждая сеть в Интернете будет соблюдать это значение. Многие поставщики интернет-услуг (ISP) игнорируют настройки TTL и проверяют внешние записи DNS по своему собственному расписанию.
Лучшие практики DNS TTL
По большей части нет необходимости изменять TTL. Однако, если вы знаете, что скоро внесете большое изменение в DNS, и хотите, чтобы изменения вступили в силу быстро, вы можете изменить свой TTL заранее.
По крайней мере, за 24 часа до начала обновите TTL до более короткого значения. Например, вы можете изменить его на 3600 (1 час).
Когда ваша работа будет сделана, обязательно вернитесь и верните свои настройки TTL к исходным значениям. Кэширование DNS — важный способ снизить нагрузку на серверы, и лучше всего поддерживать низкий уровень этого трафика.
Минимальное значение TTL DNS
Если вы планируете в ближайшее время внести изменения в DNS, вам следует начать с установки низкого значения TTL. Это помогает обеспечить более быстрое распространение ваших изменений и их распознавание в Интернете.
Установите для минимального значения TTL DNS значение больше 0. Никогда не устанавливайте для TTL DNS значение 0. Число 0 не определено в стандарте, и это может привести к игнорированию или отклонению вашей информации DNS.
Рекомендация : 3600 (1 час) — хорошее минимальное значение. Он достаточно низкий, чтобы изменения вступили в силу быстро, но не настолько низкий, чтобы DNS-серверы были перегружены.
Максимальное значение TTL DNS
Максимальное значение TTL — 604800 (7 дней). Хотя технически не существует максимального значения TTL для DNS, значения более 7 дней будут автоматически округляться до 7 дней.
Рекомендация: для большинства пользователей максимальное значение TTL для DNS 86400 (24 часа) является хорошим выбором.
Динамический DNS TTL
Динамический DNS (DDNS) — отличный способ указать доменные имена на нестатический IP-адрес.
Например, предположим, что вам принадлежит доменное имя example.com. Вы хотите указать home.example.com на сервер в вашей домашней сети; однако у вас нет статического IP-адреса от вашего интернет-провайдера. Это означает, что внешний IP-адрес вашего домашнего сервера будет периодически меняться.
Сервисы динамического DNS могут указывать доменное имя (например, home.example.com) на переменный IP. Каждый раз при изменении IP-адреса ваш DNS автоматически обновляется, поэтому изменение вступает в силу быстро.
Если вы настроили динамический DNS для доменного имени, вас могут попросить указать TTL для записей. Однозначного ответа на вопрос о значении TTL, которое следует использовать для динамической записи DNS, не существует. Частично это будет зависеть от того, как долго находится аренда IP-адреса. Чем чаще меняется IP-адрес, тем ниже TTL, который вам следует использовать.
Рекомендация. Хорошее практическое правило — сделать TTL DDNS вдвое меньше, чем аренда DHCP. Если аренда IP-адреса установлена на 60 (1 минута), установите TTL на 30 (30 секунд). Если IP-адрес 3600 (1 час), установите TTL на 1800 (30 минут).
Как выполнить поиск в DNS TTL
Узнайте, как проверить настройки TTL для вашего веб-сайта.
Linux, Unix или Mac OS X
Самый простой способ узнать настройки TTL — использовать digутилиту, доступную в Linux, Unix и Mac OS X.
В оболочке (командной строке) введите:
dig example.com
Это вернет информацию DNS (включая значения TTL) для имени домена:
Значение «7728» — это TTL для записи в секундах (7 728 секунд = 2 часа 8 минут).
Windows
В Windows вы можете использовать эту nslookupутилиту для проверки значений TTL DNS для веб-сайта.
Сначала откройте окно командной строки.
• Windows 7: Пуск -> Все программы -> Стандартные -> Командная строка • Windows 10: щелкните правой кнопкой мыши кнопку «Пуск» -> Выполнить -> введите «cmd» в поле и нажмите «ОК».
Чтобы запустить nslookup и получить значения TTL, введите:
nslookup –type=soa example.com
Это вернет информацию авторитетного сервера имен для этого домена, включая TTL по умолчанию в секундах и часах.
В этом случае TTL веб-сайта установлен на 3600 секунд (1 час).
В сети
Есть несколько веб-сайтов, которые позволяют использовать утилиту dig для бесплатного поиска DNS TTL.
Ниже мы используем Google Apps: (https://toolbox.googleapps.com/apps/dig/)
Как видите, значение TTL DNS для записей этого домена установлено на 21599 секунд (6 часов).
Как изменить TTL, если у вас есть собственный DNS
Если вы используете собственный DNS-сервер, для изменения TTL достаточно отредактировать файл зоны и убедиться, что ваша DNS-служба принимает изменения. Специфика будет зависеть от того, какую службу DNS вы используете, а в некоторых случаях от того, какую версию Linux или Unix вы используете.
После внесения изменений вы можете проверить, вступили ли они в силу, запросив у вашего сервера новую информацию DNS с помощью команды:
dig @localhost example.com
BIND
BIND — это наиболее широко используемое программное обеспечение DNS. В BIND TTL хранится в верхней части файла зоны, обычно во второй строке. Объявление TTL начинается с $TTL. По умолчанию TTL составляет четыре часа (14 400 секунд):
$TTL 14400
Поиск файла зоны: Red Hat и CentOS
При типичной установке BIND в Red Hat или CentOS файл зоны веб-сайта будет выглядеть примерно так /var/named/[domain name].dbили /var/named/[domain name].zone. Например, чтобы отредактировать файл для example.com в типичной настройке по умолчанию, введите следующую команду:
sudo nano /var/named/example.com.db
Поиск файла зоны: Debian и Ubuntu
В типичной установке BIND в Debian или Ubuntu файл зоны веб-сайта будет выглядеть примерно так /etc/bind/[domain name].db. Например, чтобы отредактировать файл для example.com в типичной настройке по умолчанию, введите следующую команду:
sudo nano /etc/bind/example.com.db
Редактирование файла зоны
В файле зоны вам нужно будет отредактировать две строки: TTL и серийный номер.
- Обновите TTL до значения, которое вы хотите использовать.
- Обновите серийный номер, чтобы BIND зарегистрировал изменение.
Обновление TTL
TTL будет первой строкой файла и будет выглядеть примерно так:
$TTL 86400
Просто измените число на значение TTL, которое вы хотите установить, в секундах.
Обновление серийного номера
В типичной конфигурации серийный номер нужно просто увеличить. Например, серийный номер 1234будет обновлен до 1235.
Некоторые системные администраторы могут использовать метку времени, номер версии или иметь системы для автоматического увеличения серийного номера. Если вы не уверены, какая система используется для серийных номеров BIND, обратитесь к администратору вашего сервера.
Сохраните и выйдите из файла.
Проверка файла
Перед тем, как перезагрузить изменения, проверьте синтаксис основной конфигурации BIND с помощью команды:
sudo named-checkconf
Если все в порядке, проверьте синтаксис только что отредактированного файла зоны с помощью команды:
sudo named-checkzone [domain name] [path to file]
Например, если вы изменили TTL для example.com в файле, /var/named/example.com.dbкоманда будет выглядеть так:
sudo named-checkzone example.com /var/named/example.com.db
Перезагрузка изменений
Если файлы проходят проверку синтаксиса, перезагрузите файл зоны в BIND с помощью команды:
sudo rndc reload example.com
Необязательно: в Red Hat и CentOS, если systemctlон был настроен, вы можете перезапустить BIND вместо этого, используя команду:
sudo systemctl restart named
Несвязанный
Unbound недавно заменил BIND в качестве DNS-сервера по умолчанию во многих системах BSD, включая FreeBSD 10 и выше и OpenBSD 5.6 и выше.
По умолчанию в большинстве систем файл конфигурации находится по адресу:
- OpenBSD :/var/unbound/etc/unbound.conf
- FreeBSD 10.0 и ранее :/usr/local/etc/unbound/unbound.conf
- FreeBSD 10.1 и выше :/etc/unbound/unbound.conf
- Red Hat и CentOS 7 :/etc/unbound/unbound.conf
В файле конфигурации Unbound по умолчанию не указаны значения TTL. Вы можете добавить TTL в файл несвязанной зоны со следующими атрибутами:
- cache-max-ttl Максимальный период времени для кеширования TTL. По умолчанию 86400 секунд (1 день).
- cache-min-ttl Минимальная продолжительность кеширования TTL. По умолчанию 0 секунд. Примечание: официальная документация рекомендует оставить это значение равным нулю.
Чтобы изменить или установить TTL, отредактируйте unbound.conf файл:
sudo nano /etc/unbound/unbound.conf
Проверьте файл для cache-max-ttl и cache-min-ttl атрибутов. Если они уже существуют, вы будете их редактировать. Если их нет, вам нужно будет добавить их:
## Minimum lifetime of cache entries in seconds. Default is 0. cache-min-ttl: 0 ## Maximum lifetime of cached entries. Default is 86400 seconds (1 day). cache-max-ttl: 14400
Поместите эти конфигурации в основной блок команд сервера, затем сохраните и выйдите из файла.
После редактирования файла конфигурации вы можете протестировать конфигурацию с помощью команды:
unbound-checkconf
Наконец, перезапустите Unbound, чтобы изменения вступили в силу с помощью команды:
unbound-control reload
ДОБАВЬТЕ ВЫВОД КОМАНДЫ, а то непонятно откуда 7728:
В оболочке (командной строке) введите:
dig example.com
Это вернет информацию DNS (включая значения TTL) для имени домена:
Значение «7728» — это TTL для записи в секундах (7 728 секунд = 2 часа 8 минут).