CNAME 레코드의 TTL은 무엇을 의미합니까?


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

IP를 빠르게 변경해야 할 경우를 대비하여 각 레코드의 TTL은 60입니다. 그러나 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

CNAMES의 TTL이 더 높으므로 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

@zoredache @Ryan이 알고 싶은 것은 dns resolver가 일반적으로 CNAME 또는 해결 된 CNAME 조회 결과를 캐시합니까?
coredump

@coredump, 그렇습니다.
Ryan Pendleton

답변:


10

ISC 메일 링리스트 의이 메시지에 따르면 CNAME 및 해당 이름이 가리키는 레코드는 이름 서버 ( 정확한 이름 서버 확인 )를 통해 캐시되며 이는 리졸버가 클라이언트 측에서 분석 / 캐싱 프로세스를 최적화 할 수 있도록하기 위해 수행됩니다.

따라서 CNAME TTL은 유효하지만 그것이 가리키는 A는 유효하지 않으면 원본 CNAME이 아닌 지정된 레코드까지 조회를 반복합니다 (CNAME TTL이 실행될 때까지).


따라서이 권리를 이해하면 CTL 레코드는 TTL이 만료 된 후에 요청되고 해당 A 레코드도 요청되지만 자체 TTL이 만료 된 후에 요청됩니까?
Ryan Pendleton

1
예. 즉, TTL은 다른 레코드와 동일하게 CNAME 레코드에 대해 작동합니다.
coredump

3

모든 CNAME 레코드는 최대 3600, 10800 및 21600 초 동안 캐시됩니다.

A 레코드는 독립적으로 처리되며 60 초마다 다시 쿼리됩니다.

그러나 CNAME이 만료되는 경우 A 레코드를 동시에 업데이트해야합니다.

CNAME 레코드에는 RFC 1912에 설명 된 다양한 문제가 있습니다. mydomain.com. SOA 및 NS 레코드가 사용되었으므로 CNAME이 될 수 없습니다. com의 위임입니다. 도메인.

질문이 오래되었습니다. 오늘날 일부 DNS 제공 업체는 사용자가 CNAME을 SOA에 넣을 수 있도록하여 RFC를 따르지 않습니다 (APEX 도메인이라고 함). 다시, 당신의 자신의 위험에 사용하십시오.

마지막으로, CNAME에 TTL 값을 높이면 클라이언트가 IPv6 레코드 (AAAA)를 요청할 때 도움이 될 수 있습니다. 최소한 CNAME 맵핑은 캐시에 유지되며 IP 주소 만 두 번 요청됩니다.

간단히 말해 CNAME에 TTL을 높이면 고객이 보는 응답의 크기가 줄어 듭니다. 리졸버 서버에도 도움이됩니다. 그러나 초당 요청 수는 대략 동일해야합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.