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