연결된 CNAME 구성에서 DNS TTL은 어떻게 작동합니까?

연결된 CNAME 구성에서 DNS TTL은 어떻게 작동합니까?

다음과 같은 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.example가능한 한 빨리 CNAME 에 변경 사항을 전파하고 싶습니다 .

변경 시 클라이언트에 표시되는 전체 TTL을 줄이려면 prod.myzone.l2.company.example레코드의 TTL만 줄이는 것으로 충분합니까 prod.myzone.l2.company.example, 아니면 레코드의 TTL도 줄여야 합니까 www.example.com?

답변1

for 레코드 TTLCNAME다른 레코드와 다르게 작동하지 않습니다.

위의 과정이 진행되는 재귀적 해결 프로그램을 상상해 보겠습니다. 그런 다음 캐시를 다음으로 채웁니다.

  • www.example.com CNAME600초 동안 유효
  • prod.myzone.l2.company.example CNAME600초 동안 유효
  • ssl-endpoint-12345.hostcorp.example A60대까지 유효

나중에 누군가가 ssl-endpoint-12345.hostcorp.example A직접 쿼리하면 60초 TTL이 적용됩니다.

그러나 쿼리가 에 대한 경우 www.example.com확인자는 레코드가 아닌 CNAME을 확인 A하고 위의 항목을 모두 재사용합니다.

예를 들어 위의 이후 66s는 www.example.com여전히 확인자 캐시에 있지만 ssl-endpoint-12345.hostcorp.example A더 이상 존재하지 않으므로 확인자는 해당 데이터를 가져오고 캐시하기 위해 새로운 DNS 쿼리를 수행해야 합니다.

관련 정보