Что означает TTL на записи CNAME?

22

Из-за того, что в моей сети задействовано много серверов, мне сложно организовать их работу. Некоторые из них не имеют статических IP-адресов, поэтому я подумал, что было бы неплохо, если бы я создал домен config.mydomain.com. В этом домене я мог хранить записи A и IP для каждого из серверов. Вот как я это настроил:

s1.config.mydomain.com.     A   10.0.0.1    #ttl 60
s2.config.mydomain.com.     A   10.0.0.2    #ttl 60
s3.config.mydomain.com.     A   10.0.0.3    #ttl 60
# etc

У каждой из этих записей есть TTL 60, на случай, если мне нужно быстро сменить IP, но я не обязательно хочу, чтобы клиенты, подключающиеся каждые 60 секунд, обновлялись. Теперь предположим, что я настроил свои домены для их использования, например так:

mydomain.com.           CNAME   s2.config.mydomain.com.   #ttl 3600
mail.mydomain.com.      CNAME   s2.config.mydomain.com.   #ttl 10800
svn.mydomain.com.       CNAME   ns1.config.mydomain.com.  #ttl 21600

TTL для CNAMES выше, поэтому, скажем, я захожу на mydomain.com. Он запрашивает у моего DNS-сервера IP-адрес mydomain.com, и мой сервер возвращает. CNAME s2.config.mydomain.com.Затем он запрашивает у моего сервера IP-адрес s2.config.mydomain.com, и мой сервер возвращает 10.0.0.1.

Будет ли он кэшировать CNAME s2.config.mydomain.comзапись в течение 3600 секунд, а A 10.0.0.1запись в течение 60 секунд? То есть каждые 60 секунд он все равно будет запрашивать у моего сервера IP-адрес?

Или он кэширует данные CNAME s2.config.mydomain.com, получает A 10.0.0.1и кэширует их обоих в течение 3600 секунд.

Если это первое, мне, вероятно, придется найти другой способ управления ими, поэтому я надеюсь, что это второе, но я не уверен. Знаете ли вы о лучшем способе отслеживать их?

Райан Пендлтон
источник
Можете ли вы более четко определить, кого вы подразумеваете под «будет ли он кешироваться»? К сожалению, существует множество различных реализаций распознавателей, и я совсем не удивлюсь, если вы обнаружите, что оба поведения верны.
Зоредаче
@zoredache Я думаю, что @Ryan хочет знать: DNS-преобразователи обычно кэшируют CNAME или результат разрешенного поиска CNAME?
coredump
@coredump, да, это то, что я имел в виду.
Райан Пендлтон

Ответы:

10

Согласно этому сообщению в списке рассылки ISC , CNAME и запись, на которую он указывает, кэшируются путем разрешения серверов имен ( вменяемых серверов имен ), что позволяет разрешающим процессам оптимизировать процесс разрешения / кэширования на стороне клиента.

Таким образом, если CNAME TTL действителен, но A, на который он указывает, недействителен, он будет только повторять поиск до указанной записи, а не исходного CNAME (пока не будет запущен и CNAME TTL).

CoreDump
источник
Поэтому, если я понимаю это право, запись CNAME будет запрошена после истечения срока действия TTL, а также будет запрошена запись A, на которую она указывает, но после истечения срока действия ее собственного TTL?
Райан Пендлтон
1
Да. Это означает, что TTL работает для записей CNAME так же, как и для других записей.
coredump
3

Все ваши записи CNAME будут кэшироваться максимум 3600, 10800 и 21600 секунд.

Записи A обрабатываются независимо и будут запрашиваться снова каждые 60 секунд.

Однако в случае истечения срока действия CNAME запись A должна обновляться одновременно.

Записи CNAME содержат различные ошибки, описанные в RFC 1912. mydomain.com. не может быть CNAME, потому что у вас используются записи SOA и NS: это делегирование com. домен.

Твой вопрос старый. В настоящее время некоторые провайдеры DNS не следуют RFC, разрешая пользователям помещать CNAME в SOA (они называют это доменами APEX). Опять же, используйте на свой страх и риск.

И последнее, но не менее важное: использование более высоких значений TTL для CNAME может помочь, когда ваши клиенты запрашивают запись IPv6: AAAA. По крайней мере, сопоставление CNAME останется в кэше, и только IP-адрес будет запрошен дважды.

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

Ксавье Николь
источник