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

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

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

www.example.com                 600  IN   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 минуту.

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

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

решение1

Записи TTLfor CNAMEничем не отличаются от других записей.

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

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

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

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

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

Связанный контент