Лучшие практики DNS TTL: Понимание и настройка DNS TTL

Значение DNS TTL показывает, в течение какого времени сохраняются результаты DNS-запросов. При перемещении сайта или создании новых поддоменов вам может понадобиться изменить значение DNS TTL. Продолжайте читать, чтобы узнать больше о DNS TTL и лучших практиках настройки DNS TTL для ваших доменных имен.

Что такое TTL?

TTL — это запись DNS, которая расшифровывается как «время жизни». Она означает, как долго настройки DNS находятся в кэше, прежде чем они автоматически обновятся.

Когда происходит изменение DNS, требуется время, чтобы остальная часть Интернета заметила это. Примерами таких изменений являются обновление IP-адреса сервера, обновление записи MX для размещения электронной почты в новом месте или добавление нового веб-сайта. Настройка TTL указывает Интернету, сколько времени нужно подождать, прежде чем вернуться к проверке записи DNS на наличие новой информации.

Если ваш параметр DNS TTL равен 12 часам, ваши записи DNS будут кэшироваться в течение 12 часов, прежде чем истечет срок их действия, и новая информация вступит в силу.

Примечание

Значение TTL для доменов IONOS устанавливается на срок до 1 часа для всех записей A, AAA, MX, TXT и CNAME.

Проверка домена

Какова продолжительность TTL?

TTL измеряется в секундах. Типичное значение по умолчанию обычно составляет 12 часов (43200 секунд) или 24 часа (86400 секунд). Это означает, что если, например, веб-сайт переезжает на новый сервер или вы добавляете новый URL на свой сервер, потребуется 12 или 24 часа, чтобы новые изменения DNS вступили в силу.

Лучшие практики DNS TTL

В большинстве случаев нет необходимости изменять DNS TTL. Однако если вы знаете, что в ближайшее время вам предстоит внести значительные изменения в DNS, и вы хотите, чтобы изменения вступили в силу быстро, вы можете изменить TTL заранее.

Обновите TTL на более короткое значение не менее чем за 24 часа. Например, вы можете изменить его на 3600 (1 час).

После внесения изменений в DNS не забудьте вернуться и вернуть настройки DNS TTL к исходным значениям. Кэширование DNS является важным способом снижения нагрузки на серверы, и лучше всего поддерживать этот трафик на низком уровне.

Обратите внимание, что даже если вы измените TTL для своего доменного имени, это не означает, что все сети в Интернете автоматически примут это значение. Многие интернет-провайдеры (ISP) игнорируют настройки TTL и проверяют внешние записи DNS по собственному расписанию.

Минимальное значение DNS TTL

Если вы планируете в ближайшее время внести изменения в DNS, вам лучше установить низкое значение TTL. Это поможет обеспечить более быстрое распространение и распознавание ваших изменений в Интернете.

Установите минимальное значение DNS TTL на число больше 0. Никогда не устанавливайте DNS TTL на 0. Число 0 не определено в стандарте, и это может привести к тому, что ваша информация DNS будет проигнорирована или отклонена.

Совет

3600 (1 час) — это хорошее минимальное значение. Оно достаточно мало, чтобы изменения быстро вступили в силу, но не настолько мало, чтобы DNS-серверы были перегружены.

Максимальное значение DNS TTL

Максимально возможное значение DNS TTL — 604800 (7 дней). Хотя технически максимального значения DNS TTL не существует, значения более 7 дней будут округляться до 7 дней в меньшую сторону.

Рекомендации: Для большинства пользователей хорошим выбором будет максимальное значение DNS TTL 86400 (24 часа).

Совет

Для большинства пользователей оптимальным выбором является максимальное значение DNS TTL, равное 86400 (24 часа).

Динамический DNS-TTL

Динамический DNS (DynDNS) — это отличный способ привязки доменных имен к нестационарным IP-адресам.

Например, допустим, вы владеете доменным именем example.com. Вы хотите направить home.example.com на сервер в вашей домашней сети; однако у вас нет статического IP-адреса от вашего провайдера. Это означает, что внешний IP-адрес вашего домашнего сервера будет периодически меняться.

Совет

Ознакомьтесь с нашим руководством по лучшим бесплатным службам DynDNS.

Службы динамического 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 минут).

Как выполнить поиск TTL в DNS

Теперь мы рассмотрим, как проверить настройки TTL для вашего сайта.

Linux, Unix или Mac OS X

Самый простой способ поиска параметров TTL — это использование утилиты dig, доступной в Linux, Unix и Mac OS X.

В командной строке (shell) введите:

dig example.com

Это вернет информацию DNS (включая значения TTL) для доменного имени.

Windows

В Windows для проверки значений TTL DNS для веб-сайта можно использовать утилиту nslookup.

Сначала откройте окно командной строки.

  1. 7: Start -> All Programs -> Accessories -> Command Prompt
  2. 10: Щелкните правой кнопкой мыши кнопку «Пуск» -> «Выполнить» -> Введите «cmd» в поле и нажмите «OK».

Чтобы запустить nslookup и получить значения TTL, введите:

nslookup –type=soa example.com

Это вернет информацию об авторитетном сервере имен для данного домена, включая TTL по умолчанию в секундах и часах.

Онлайн

Существует несколько веб-сайтов, на которых можно бесплатно воспользоваться утилитой dig для выполнения поиска DNS TTL.

Ниже мы используем Google Apps.

Как видите, значение DNS TTL для записей этого домена установлено на 21599 секунд (6 часов).

Как изменить TTL, если вы используете собственный DNS-сервер

Если вы используете собственный DNS-сервер, изменение TTL сводится к редактированию файла зоны DNS и проверке того, что служба 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/[имя домена].db или /var/named/[имя домена].zone. Например, чтобы отредактировать файл для example.com в типичной установке по умолчанию, нужно выполнить следующую команду:

sudo nano /var/named/example.com.db

Найти файл зоны: Debian и Ubuntu

В типичной установке BIND на Debian или Ubuntu файл зоны сайта будет иметь вид /etc/bind/[имя домена].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

Unbound недавно заменил BIND в качестве DNS сервера по умолчанию на многих BSD системах, включая FreeBSD 10 и выше и OpenBSD 5.6 и выше.
По умолчанию в большинстве систем конфигурационный файл находится по адресу:

  •     OpenBSD: /var/unbound/etc/unbound.conf
  •     FreeBSD 10.0 и более ранние версии: /usr/local/etc/unbound/unbound.conf
  •     FreeBSD10.1 и выше: /etc/unbound/unbound.conf
  •     Red Hat и CentOS 7: /etc/unbound/unbound.conf

В конфигурационном файле Unbound по умолчанию не указаны значения TTL. Вы можете добавить TTL в файл зоны Unbound с помощью следующих атрибутов:

  •     cache-max-ttl — максимальная продолжительность времени кэширования TTL. По умолчанию это 86400 секунд (1 день).
  •     cache-min-ttl — минимальный период времени для кэширования TTL. По умолчанию 0 секунд. Примечание: Официальная документация рекомендует оставить это значение равным 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

Оцените статью
cdelat.ru
Добавить комментарий