Назад | Перейти на главную страницу

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

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