Case 1: Local DNS 서버가 상위 DNS 서버로 부터 단말이 요청한 IP 주소를 얻어 옴
가장 simple한 case이지요. Local DNS 서버가 www.naver.com에 대한 IP 주소를 요청(DNS Query) 하였고, 상위 DNS 서버에 해당 IP 주소가 있는 경우로, 상위 DNS 서버는 www.naver.com에 대한 IP 주소(222.122.195.6)를 전달(DNS Response)합니다. 이 때 DNS Response에 들어가는 Type=A가 되며, 이와 함께 www.naver.com의 IP 주소가 실립니다. (그림은 하나의 IP 주소를 주는 것으로 표시되었지만 사실 여러개의 IP 주소를 줄 수 있음)
Case 2: 상위 DNS 서버가 "난 네가 요청한 IP 주소 모르겠으니, 다른 DNS 서버에게 물어봐"라고 Local DNS 서버에게 응답 함
Local DNS 서버 요청에 대해서 상위 DNS 서버가 IP 주소를 모르는 경우, 상위 DNS 서버는 다른 DNS 서버를 알려 줍니다. 2011년 9월 26일 NetmaniasTalk에서 설명드린 흐름(가장 일반적인 흐름입니다)이 이 경우에 해당합니다. Local DNS 서버 요청에 대해 Root DNS는 com DNS 서버 주소를 알려주고, 다시 Local DNS 서버가 com DNS 서버에 www.naver.com을 물어보면 com DNS 서버는 naver.com DNS 서버를 알려 주는 식이 되겠죠. 이 경우 DNS Response에 들어가는 Type=NS가 되며 이와 함께 Local DNS 서버가 DNS Query를 보낼 DNS 서버의 IP 주소를 알려줍니다. (사실 DNS 서버의 IP 주소와 함께 DNS 서버의 host name도 주지만 여기서는 생략. 또한 그림은 하나의 DNS 서버의 주소만 주는 것으로 표현되었지만 사실 여러개의 DNS 서버 IP를 주는 것이 일반적)
Case 3: Local DNS 서버가 요청한 Host Name을 상위 DNS가 변경하기
단말 요청에 의해 Local DNS 서버는 상위 DNS 서버에 www.naver.com에 대한 IP 주소를 요청하였습니다. 그런데 상위 DNS 서버는 Local DNS 서버에게 "네가 요청한 www.naver.com이란 hostname은 www.g.naver.com이란 별칭으로 사용되고 있으니, 앞으로 www.naver.com으로 DNS Query를 하지 말고 www.g.naver.com으로 하세요. 그리고 www.g.naver.com에 대한 IP 주소는 내가 알려 주는 DNS 서버에게 물어보세요"라고 응답을 합니다. 그래서 이 경우 DNS Response에는 Type=CNAME이 되며 이와 함께 별칭(www.g.naver.com)이 들어가게 되구요, 또한 Type이 NS로 하여 그 별칭에 대해 DNS Query를 할 DNS 서버의 주소가 들어갑니다. (cname = Canonical Name)
단말이 www.naver.com에 대한 IP 주소를 요청하게 되면, Local DNS 서버와 상위 DNS 서버간에 통신을 하면서 앞에서 설명 드린 3가지 Case들이 동시에(함께) 발생합니다.
http://www.firewall.cx/networking-topics/protocols/domain-name-system-dns/160-protocols-dns-query.html