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

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.
В оболочке (командной строке) введите:
Это вернет информацию DNS (включая значения TTL) для имени домена:
Значение «7728» — это TTL для записи в секундах (7 728 секунд = 2 часа 8 минут).
Windows
В Windows вы можете использовать эту nslookupутилиту для проверки значений TTL DNS для веб-сайта.
Сначала откройте окно командной строки.
• Windows 7: Пуск -> Все программы -> Стандартные -> Командная строка • Windows 10: щелкните правой кнопкой мыши кнопку «Пуск» -> Выполнить -> введите «cmd» в поле и нажмите «ОК».
Чтобы запустить nslookup и получить значения TTL, введите:
Это вернет информацию авторитетного сервера имен для этого домена, включая TTL по умолчанию в секундах и часах.
В этом случае TTL веб-сайта установлен на 3600 секунд (1 час).
В сети
Есть несколько веб-сайтов, которые позволяют использовать утилиту dig для бесплатного поиска DNS TTL.

Как видите, значение TTL DNS для записей этого домена установлено на 21599 секунд (6 часов).
Как изменить TTL, если у вас есть собственный DNS
Если вы используете собственный DNS-сервер, для изменения TTL достаточно отредактировать файл зоны и убедиться, что ваша DNS-служба принимает изменения. Специфика будет зависеть от того, какую службу DNS вы используете, а в некоторых случаях от того, какую версию Linux или Unix вы используете.
После внесения изменений вы можете проверить, вступили ли они в силу, запросив у вашего сервера новую информацию DNS с помощью команды:
BIND — это наиболее широко используемое программное обеспечение DNS. В BIND TTL хранится в верхней части файла зоны, обычно во второй строке. Объявление TTL начинается с $TTL. По умолчанию TTL составляет четыре часа (14 400 секунд):
Поиск файла зоны: Red Hat и CentOS
При типичной установке BIND в Red Hat или CentOS файл зоны веб-сайта будет выглядеть примерно так /var/named/[domain name].dbили /var/named/[domain name].zone. Например, чтобы отредактировать файл для example.com в типичной настройке по умолчанию, введите следующую команду:
Поиск файла зоны: Debian и Ubuntu
В типичной установке BIND в Debian или Ubuntu файл зоны веб-сайта будет выглядеть примерно так /etc/bind/[domain name].db. Например, чтобы отредактировать файл для example.com в типичной настройке по умолчанию, введите следующую команду:
Редактирование файла зоны
В файле зоны вам нужно будет отредактировать две строки: TTL и серийный номер.
- Обновите TTL до значения, которое вы хотите использовать.
- Обновите серийный номер, чтобы BIND зарегистрировал изменение.
TTL будет первой строкой файла и будет выглядеть примерно так:
Просто измените число на значение TTL, которое вы хотите установить, в секундах.
Обновление серийного номера
В типичной конфигурации серийный номер нужно просто увеличить. Например, серийный номер 1234будет обновлен до 1235.
Некоторые системные администраторы могут использовать метку времени, номер версии или иметь системы для автоматического увеличения серийного номера. Если вы не уверены, какая система используется для серийных номеров BIND, обратитесь к администратору вашего сервера.
Сохраните и выйдите из файла.
Перед тем, как перезагрузить изменения, проверьте синтаксис основной конфигурации BIND с помощью команды:
Если все в порядке, проверьте синтаксис только что отредактированного файла зоны с помощью команды:
Например, если вы изменили TTL для example.com в файле, /var/named/example.com.dbкоманда будет выглядеть так:
Если файлы проходят проверку синтаксиса, перезагрузите файл зоны в BIND с помощью команды:
Необязательно: в Red Hat и CentOS, если systemctlон был настроен, вы можете перезапустить BIND вместо этого, используя команду:
Несвязанный
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 файл:
Проверьте файл для cache-max-ttl и cache-min-ttl атрибутов. Если они уже существуют, вы будете их редактировать. Если их нет, вам нужно будет добавить их:
Поместите эти конфигурации в основной блок команд сервера, затем сохраните и выйдите из файла.
После редактирования файла конфигурации вы можете протестировать конфигурацию с помощью команды:
Наконец, перезапустите Unbound, чтобы изменения вступили в силу с помощью команды:
What is TTL?
Time to live (TTL) is what dictates how long your records stay cached. For example, for how long your A record will be cached before the retrieval of a new copy of the record from DNS servers. The record storage is known as the DNS cache, and the act of storing records is called caching.
When a caching (recursive) nameserver queries the authoritative nameserver for a resource record, it will cache that record for the time (in seconds) specified by the TTL. If a stub resolver queries the caching nameserver for the same record before the TTL has expired, the caching server will simply reply with the already cached resource record rather than retrieve it from the authoritative nameserver again. TTL for NXDOMAIN responses is set from the minimum of the MINIMUM field of the SOA record and the TTL of the SOA itself, and indicates how long a resolver may cache the negative answer.
In the lines below we will talk about the TTL’s most common practices and why TTL is so important for you.
TTL Values
Shorter TTLs can cause heavier loads on an authoritative nameserver, but can be useful when changing the address of critical services like Web servers or MX records, and therefore are often lowered by the DNS administrator prior to a service being moved, in order to minimize disruptions.
The units used are seconds. An older common TTL value for DNS was 86400 seconds, which is 24 hours. A TTL value of 86400 would mean that, if a DNS record was changed on the authoritative nameserver, DNS servers around the world could still be showing the old value from their cache for up to 24 hours after the change.
At ClouDNS, the default TTL is 3600 seconds (1 Hour). The TTL can be set from 60 seconds (1 Minute) to 2592000 seconds (1 Month) for every single record. This option is available only for accounts with Premium/DDoS/GeoDNS subscription. If your account is on Free subscription, you cannot change the TTL.
You could also set a default TTL for all further DNS records you add different than 3600 seconds (1 Hour). You can access this option by accessing the profile settings of your ClouDNS account, in particular, the «Web Settings» section. Similarly to the edit TTL feature, the Default TTL option is available for accounts with Premium, DDoS Protected, and GeoDNS subscriptions only
TTL values at ClouDNS
At ClouDNS, we support different TTL values. They are as follows:
- 1 Minute
- 5 Minutes
- 15 Minutes
- 30 Minutes
- 1 Hour
- 6 Hours
- 12 Hours
- 1 Day
- 2 Days
- 3 Days
- 1 Week
- 2 Weeks
- 1 Month
Why TTL is important for you?
For the most part, there is no need for you to change your TTL. The default TTL of 3600 (1 hour) is just enough for the changes to propagate quickly, but not so low that the DNS servers get overloaded. However, TTL becomes very important, if there is a kind of service over your A/AAAA records that dynamically updates the endpoint’s values such as Dynamic DNS and/or DNS Failover. In this case, you should certainly consider setting up a lower TTL value for those particular records of yours.
How to modify TTL
You can modify the TTL value for each of your DNS records. To do so, enter your DNS zone management page and click on the «Edit» icon for the relevant DNS record. A new pop-up window will appear. Choose the desired TTL value from the «TTL» drop-down menu and save the changes.
How to manage the TTL values of your DNS records:
FAQ
Question: What is the difference between a “short” TTL and a “long” TTL?
Answer: A short TTL is any record with a TTL value below the recommended TTL standard of 86400 or 24 hours. This means that DNS caches will expire the record after this allocated time, forcing the recursive server to make another request for that record. A long TTL is any record with a TTL value greater than 24 hours, meaning that the record will be cached for a longer period and, therefore, require fewer queries.
Question: How long should I keep my TTL values?
Answer: Generally, it is recommended that you keep your TTL values between 1-5 days. However, certain services, such as Dynamic DNS, may require shorter TTLs.
Question: How often should I update my TTL settings?
Answer: You should update your TTL settings when making changes to your DNS records and adding new ones. This ensures that any changes you make are propagated quickly. Additionally, lowering your TTLs before a record is changed or removed is often preferred, as this reduces the time required for the change or removal to take effect.
Question: Should I lower my TTL if I expect many requests?
Answer: It depends. Lowering your TTL will cause a higher load on your DNS servers and may result in DNS outages. However, it can also improve performance. As a general rule, it is wise to practice caution before lowering your TTL and ensure your network can handle the requests.
Question: How will a low TTL affect my DNS performance?
Answer: A low TTL can improve your DNS performance. However, it can also lead to an increased load on DNS servers, as they will need to answer more frequent requests.
Question: Does a change of TTL take effect immediately?
Answer: Yes, a change of TTL will take effect immediately, and the record will be updated according to the new TTL value. It is still possible, however, for a DNS server to retain its previous value due to cached records — in this case, the server may have to wait until the TTL on that record has expired for the updated value to be shown.
Что такое TTL в DNS-записях и зачем оно нужно
Старый вопрос, который меня интересовал, о чём напоминает тема на CyberForum.Ru; но со временем все мы становимся опытней и глядя на или вспоминая подобные вопросы невольно улыбаемся ☺. Хотя, по сути, я там дал выдержку из Wikipedia, которая всё объясняет, однако почему-то всё равно возникли вопросы. Ладно, давайте разберёмся.
— (с англ.) время жизни . Время жизни чего?
Как вам наверняка известно, DNS-сервера автоматически периодически обновляют свои записи (соответствия IP-адресов доменным именам), чтобы те всегда были актуальны; если бы этого не происходило, то в интернете была бы каша, так как изменение записей вручную требовало бы огромного количества человеческих ресурсов. Да и вообще, в мире информационных технологий не принято что-то делать вручную — только автоматика .
Управлять DNS-записями домена можно непосредственно через панель управления регистратора (если DNS-серверами домена являются его сервера; по умолчанию); или через панель управления хостинг-провайдера, если регистратор и хостинг-провайдер это поддерживают и в качестве DNS-серверов домена указаны сервера последнего (хостинг-провайдера). Далее я буду опираться на то, что DNS-серверами домена являются сервера регистратора, чтобы не описывать одно и то же дважды. Кстати, некоторые регистраторы не позволяют передать управление доменом третьим лицам (коими являются хостинг-провайдеры); например, Agava.Ru.
Ну так вот, представьте: у вас есть сайт (именно сайт как проект, а не место на сервере), доменное имя которого Example.Com; он находится (хостится) на некотором сервере с IP-адресом 111.111.111.111 ; на всех DNS-серверах лежит соответствующая запись:
Теперь представьте что вы (в смысле ваш сайт) переехали (сменили хостинг-провайдера) на новый сервер, IP которого 222.222.222.222 . Вы изменили соответствующую DNS-запись через панель управления доменом и вроде бы всё должно заработать. Как бы не так ☺ . Что мы имеем. Да, после ваших действий для домена установлена запись, связывающая его с новым IP-адресом сервера, но она установлена только на его DNS-сервере, а на остальных DNS-серверах вашему домену по-прежнему соответствует IP 111.111.111.111 ; то есть до вашего сайта не достучаться по доменному имени (по IP можно) в течение некоторого времени. Это время и есть время жизни записи на DNS-сервере. То есть, чтобы не нагружать сеть, DNS-сервера не обновляют свои записи ежесекундно, а выдерживают паузу. Обычно это 84600 секунд, то есть сутки.
Некоторые регистраторы, чтобы не вводить в заблуждение своих клиентов, не знающих что такое TTL, просто не предоставляют доступа к данной записи, а сообщают, что изменения вступят в течение 24 часов; однако некоторые, например Hostinger, предоставляют, но сообщение о вступлении в силу изменений в течение 24-х часов показывают всё равно. О чём это говорит. Правильно — о том, что TTL-запись может попросту игнорироваться другими DNS-серверами.
Вывод
Особой важности TTL-запись не несёт, так как может игнорироваться и основную роль она может сыграть при смене IP-адреса домена: для быстрого вступления в силу изменений. Однако я бы не рекомендовал устанавливать её значение слишком маленьким, так как если вы позже не установите значение побольше, то те DNS-сервера, которые её учитывают, будут слишком часто обращаться за обновлением к DNS-серверам регистратора, а это абсолютно бесполезная операция. В общем оставьте значение по умолчанию, если оно определено, или смело установите 84600 секунд (сутки).
What is your ideal DNS TTL?
Looking at several of the websites tracked by HowFast Monitoring, I can see a common pattern: frequent peaks in their response time, in a very periodic way:
Using HowFast’s split time feature, which analyzes the response time, we can see that it’s actually caused by periodic DNS resolution requests. HowFast does not cache the host locally, and instead asks its local resolver every minute.
These peaks in response time account for 150ms every two minutes, on top of the
600ms taken by the remaining steps of the request.
What is causing these peaks? The DNS TTL.
The periodicity of these peaks comes from the fact that DNS records are cached by DNS resolvers for a given amount of time, so that authoritative servers — the ones actually controlled by the website’s owner — don’t get overwhelmed by requests every time a user wants to access the website. These DNS records get cached for a duration defined by the Time To Live, aka TTL, defined on a per-record basis.
In this example, the TTL is set to… 60s! Sixty seconds. The recommended value, in 1987, was 1 day, and is usually set to a couple hours for most public hostnames. The resolver can only cache the record until the next ping, thus producing alternating “result is not cached — resolve it” (
150ms) and “result is in cache — use it” (1ms).
Setting the TTL to a higher value would mechanically lower the response time, but you need to pay attention to something else…
How to find your ideal DNS TLL
If records are cached for a long time, two good things will happen:
- your website will be faster on the first load
- your DNS authoritative resolver will be less loaded
However, there are also negative counterparts: if you change your records, it will take longer for them to be propagated to all the internet. For instance, let’s pretend your server has an issue / you want to use another server. Changing the DNS will take your TTL value to be available to everybody, and your old IP will still receive traffic in the meantime. Not always cool.
You may also be running a High Availability setup, where a DNS load balancer will send the traffic on a few different machines, to spread the load. In order to react quickly to load changes, you might need to add new records if you added servers, or remove some of them if you got rid of unused servers. Having a high TTL will likely be a major handicap in this situation.
For instance, GitHub has a 60s TTL, but will more likely get more traffic than you (the “60” is the TTL value):
The questions that you need to ask yourself when choosing the TTL for DNS records are then:
- How much do I value a short page load time on my users’ first page load?
- Am I going to change the IP address of my server often?
- Am I running a HA (High Availability) setup?
You can get more flexibility in your setup by using an “elastic IP” that can be attached to a different server whenever you need it, so that you don’t have to change your DNS records.
If you are running a HA setup, you probably want to react quickly to changes so you will privilege TTLs of a few minutes. Otherwise, a TTL of a few hours (6–12 hours) is a good compromise and will help you make your website faster.
One other thing to take into consideration is the type of record: you probably won’t change your MX (mail server), DKIM / SPF (antispam features), or TXT (metadata) very often.
If you are interested in understanding what makes your website or API slow, give HowFast a try: it’s free, can track unlimited targets, checks every minute your response time, and notifies you if your website goes down. Start tracking now for free!