CNAME 레코드로 인해 두 번째 DNS 조회가 발생합니까?


19

foo.bar.cc를 가리키는 CNAME 레코드가있는 www.foo.com이라는 하위 도메인이 있다고 가정합니다. Foo.bar.cc는 IP 주소 1.2.3.4를 가리키는 A 레코드를가집니다.

이제 www.foo.com의 DNS 조회를 수행하면 다음과 같은 답변을 얻을 수 있습니다.

www.foo.com. IN CNAME foo.bar.cc.
foo.bar.cc. IN A 1.2.3.4

내 질문은 foo.bar.cc는 어떤 단계에서 해결됩니까? 응답이 클라이언트로 다시 전송되기 전에 재귀 DNS 서버에 의해 수행됩니까? 아니면 클라이언트가 DNS 서버에 두 번째 요청을합니까 (이번에는 foo.bar.cc)? 또는 DNS 서버에 이미 foo.bar.cc에 대한 캐시 된 항목이 있는지 여부에 따라 달라 집니까?

특정 재귀 DNS 서버가 첫 번째 줄만 반환하므로 CNAME을 확인하지 않기 때문에 묻습니다. 그러나 아마도 20 초 후에 동일한 호스트에 대한 후속 요청에는 두 줄이 모두 포함됩니다.

답변:


16

동일한 요청으로 두 레코드가 함께 리턴됩니다. 다음 명령을 통해 찾을 수 있습니다

dig +trace www.foo.com

예를 들어 내 도메인 photoblog.com에는 www에 대한 cname이 있으므로 photoblog의 네임 서버에서 마지막 2 개의 요청은 다음과 같습니다.

photoblog.com.      172800  IN  NS  ns1.photoblog.com.
photoblog.com.      172800  IN  NS  ns2.photoblog.com.
;; Received 103 bytes from 192.43.172.30#53(i.gtld-servers.net) in 196 ms

www.photoblog.com.  600 IN  CNAME   photoblog.com.
photoblog.com.      600 IN  A   74.52.128.18
photoblog.com.      60  IN  NS  ns2.photoblog.com.
photoblog.com.      60  IN  NS  ns1.photoblog.com.
;; Received 133 bytes from 74.52.128.18#53(ns2.photoblog.com) in 59 ms

보시다시피 요청은 ns1 / ns2에게 www.photoblog.com의 ip가 무엇인지 묻고 잘 표시합니다. photoblog.com에 대한 cname이며 여기에 해당 A 레코드의 ip가 있습니다.


OP에서 예를 들어 CNAME 만 돌려 주었던 DNS 서버는 CNAME을 따르기가 어려울 수 있으므로 클라이언트에게 모든 정보를 제공했습니다. 결국 CNAME을 따랐으므로 완전한 답장을 줄 수있었습니다.
David Schwartz

예-DNS 서버에 자세한 정보가 있으면 ADDITIONAL답변 섹션에 해당 정보를 반환합니다 . 그것이 반환되지 않는 경우는 리 커서가 캐시에 캐시를 가지고 있지 않았 음을 의미합니다. 잠재적으로 레코드 CNAMEA레코드가 다른 권한있는 서버를 가지고 있기 때문에 리 커서의 초기 요청에 CNAME플러스 추가 A응답이 없었기 때문에 , 그냥 CNAME).
Shane Madden

@ 마이크 : 그래서 결론은 무엇입니까? CNAME 레코드로 인해 두 번째 DNS 조회가 발생합니까? 그렇지 않다면 왜 많은 사람들이 CNAME 레코드 TTL을 늘리라고 제안합니까?
Marco Demaio 2013

10
A 레코드가 CNAME과 동일한 권한을 가진 서버에있는 한 동일한 조회입니다.
Mike
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.