CNAME 레코드로 인해 두 번째 DNS 조회가 발생합니까? foo.bar.cc를 가리키는 CNAME 레코드가있는

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 초 후에 동일한 호스트에 대한 후속 요청에는 두 줄이 모두 포함됩니다.



답변

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

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가 있습니다.


답변