← 질문 목록
#40깊이 0
DNS 질의 시 재귀적 질의와 반복적 질의의 차이는 무엇인가?
재귀적 질의는 클라이언트가 로컬 DNS 서버에 답 찾기를 통째로 맡기는 방식이다. 중간 과정은 서버가 밟고 클라이언트는 최종 답이나 오류만 받는다. 반복적 질의는 로컬 DNS 서버가 직접 루트, TLD, 권한 있는 서버를 순차적으로 방문하여 답을 찾는 방식이다.
클라이언트→로컬 DNS
재귀적 질의. 최종 답을 달라
로컬 DNS→루트 서버
반복적 질의. .com의 위치를 알려달라
루트 서버→로컬 DNS
TLD 서버 주소
로컬 DNS→TLD 서버
권한 있는 서버의 주소
TLD 서버→로컬 DNS
권한 있는 서버 주소
로컬 DNS→권한 서버
원하는 레코드 질의
권한 서버→로컬 DNS
최종 응답
로컬 DNS→클라이언트
최종 답 전달
재귀적 질의는 클라이언트의 부담을 줄여 단순한 결과물만 기다리게 한다. 하지만 로컬 DNS 서버가 모든 과정을 대신하므로 질의 처리 부담이 그곳에 모인다.
반복적 질의는 각 단계의 서버가 아는 만큼만 답한다. 최종 답을 가졌으면 그것을 주고, 모르면 더 가까운 권한 서버의 주소를 알려준다. 로컬 DNS 서버는 이 정보를 바탕으로 직접 발로 뛰며 답을 찾아내야 한다.
캐시도 포워더도 없다면 요청이 루트 서버부터 시작되어 인터넷망의 병목이 발생한다. 로컬 DNS 서버는 응답 레코드를 TTL 동안 저장해 다음 질의에 다시 쓴다.