Что такое TTL в DNS-записях и зачем оно нужно

Старый вопрос, который меня интересовал, о чём напоминает тема на CyberForum.Ru; но со временем все мы становимся опытней и глядя на или вспоминая подобные вопросы невольно улыбаемся ☺. Хотя, по сути, я там дал выдержку из Wikipedia, которая всё объясняет, однако почему-то всё равно возникли вопросы. Ладно, давайте разберёмся.

TTL, Time To Live — (с англ.) время жизни .... Время жизни чего?

Как вам наверняка известно, DNS-сервера автоматически периодически обновляют свои записи (соответствия IP-адресов доменным именам), чтобы те всегда были актуальны; если бы этого не происходило, то в интернете была бы каша, так как изменение записей вручную требовало бы огромного количества человеческих ресурсов. Да и вообще, в мире информационных технологий не принято что-то делать вручную — только автоматика ...

Управлять DNS-записями домена можно непосредственно через панель управления регистратора (если DNS-серверами домена являются его сервера; по умолчанию); или через панель управления хостинг-провайдера, если регистратор и хостинг-провайдер это поддерживают и в качестве DNS-серверов домена указаны сервера последнего (хостинг-провайдера). Далее я буду опираться на то, что DNS-серверами домена являются сервера регистратора, чтобы не описывать одно и то же дважды. Кстати, некоторые регистраторы не позволяют передать управление доменом третьим лицам (коими являются хостинг-провайдеры); например, Agava.Ru.

Ну так вот, представьте: у вас есть сайт (именно сайт как проект, а не место на сервере), доменное имя которого Example.Com; он находится (хостится) на некотором сервере с IP-адресом 111.111.111.111; на всех DNS-серверах лежит соответствующая запись:

111.111.111.111 example.com

Теперь представьте что вы (в смысле ваш сайт) переехали (сменили хостинг-провайдера) на новый сервер, 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 секунд (сутки).