Из-за того, что в моей сети задействовано много серверов, мне сложно организовать их работу. Некоторые из них не имеют статических 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 секунд.
Если это первое, мне, вероятно, придется найти другой способ управления ими, поэтому я надеюсь, что это второе, но я не уверен. Знаете ли вы о лучшем способе отслеживать их?
источник
Ответы:
Согласно этому сообщению в списке рассылки ISC , CNAME и запись, на которую он указывает, кэшируются путем разрешения серверов имен ( вменяемых серверов имен ), что позволяет разрешающим процессам оптимизировать процесс разрешения / кэширования на стороне клиента.
Таким образом, если CNAME TTL действителен, но A, на который он указывает, недействителен, он будет только повторять поиск до указанной записи, а не исходного CNAME (пока не будет запущен и CNAME TTL).
источник
Все ваши записи 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 уменьшит размер ответов, увиденных вашими клиентами. Это также должно помочь серверу распознавателя. Однако количество запросов в секунду должно быть примерно одинаковым.
источник