Рейтинг:0

Как работает DNS TTL в связанных конфигурациях CNAME?

флаг fr

У меня есть конфигурация DNS, которая выглядит примерно так:

www.example.com 600 В CNAME prod.myzone.l2.company.example
prod.myzone.l2.company.example 600 IN CNAME ssl-endpoint-12345.hostcorp.example
ssl-endpoint-12345.hostcorp.example 60 IN A 192.0.2.4

Таким образом, первые две записи CNAME в цепочке имеют TTL 10 минут, а последняя запись A имеет TTL 1 минуту.

prod.myzone.l2.company.example CNAME выполняет региональную балансировку нагрузки между несколькими конечными точками и автоматически обновляется, если мой провайдер DNS определяет, что текущая конечная точка неработоспособна. По этой причине я хотел бы распространить изменения на prod.myzone.l2.company.example CNAME как можно быстрее.

Если бы я хотел уменьшить общий TTL, который видят клиенты, когда prod.myzone.l2.company.example изменений, достаточно ли только уменьшить TTL prod.myzone.l2.company.example запись, или мне тоже нужно уменьшить TTL на www.example.com тоже записывать?

Рейтинг:1
флаг cn

время жизни за CNAME записи не работают иначе, чем другие записи.

Давайте представим рекурсивный преобразователь, через который проходит вышеописанное. Затем он заполняет свой кеш:

  • www.example.com CNAME действует в течение 600 сек.
  • prod.myzone.l2.company.example CNAME действует в течение 600 сек.
  • ssl-endpoint-12345.hostcorp.example A действует в течение 60-х годов

Если кто-то позже спросит ssl-endpoint-12345.hostcorp.example A напрямую, то применяется TTL 60 с.

Но если запрос приходит для www.example.com, то преобразователь увидит, что у него нет А запись, но CNAME, а затем повторно использовать все вышеперечисленное.

66s (например) после вышеуказанного, www.example.com все еще находится в кеше распознавателя, но ssl-endpoint-12345.hostcorp.example A больше не будет, поэтому распознаватель должен будет выполнить новый DNS-запрос, чтобы получить эти данные и кэшировать их.

флаг fr
экстраполяция из вашего ответа: - если я установлю для промежуточного CNAME `prod.myzone.l2.company.example` значение 60, клиенты разрешат `www.example.com` в новую запись `A` в течение 60 секунд, если `prod. myzone.l2.company.example` обновлен?
Patrick Mevzek avatar
флаг cn
@DrewShafer Да. Я рекомендую вам создать фальшивую зону, подобную этой, и просто протестировать что-то в вашем случае использования, чтобы убедиться, что она ведет себя так, как вам нужно. Вы можете установить `unbound` или другой локальный преобразователь и использовать его для своих тестов, чтобы вы могли контролировать содержимое его кеша. Это был бы лучший результат, чем все, что можно написать здесь :-)
флаг fr
Я могу довольно легко настроить новые зоны для проверки - спасибо за ответ!

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.