Що означає 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 також не вгору).


Отже, якщо я розумію це право, запис 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: це делегація комітетів. домен.

Ваше запитання старе. Сьогодні деякі постачальники DNS не слідкують за RFC, дозволяючи користувачам ставити CNAME у SOA (вони називають це домени APEX). Знову ж, використовуйте на свій страх і ризик.

І останнє, але не менш важливе значення, якщо встановити більш високі значення TTL на вас CNAME, це може допомогти, коли ваші клієнти запитують запис IPv6: AAAA. Принаймні відображення CNAME залишатиметься в кеші, і двічі буде запропоновано лише IP-адресу.

Коротше кажучи: додавання більш високого TTL на CNAME зменшить розмір відповідей, які бачать ваші клієнти. Це також повинно допомогти серверу-розширювачу. Однак кількість запитів в секунду повинна приблизно бути однаковою.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.