Из-за того, что в моей сети задействовано много серверов, мне сложно поддерживать их все в порядке. У некоторых из них нет статических 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 (до тех пор, пока TTL CNAME тоже не увеличится).
Все ваши записи 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 уменьшит размер ответов, которые видят ваши клиенты. Это также должно помочь серверу распознавателя. Однако количество запросов в секунду должно быть примерно таким же.