DNS 조회(질의) 과정 완전정복

주소창에 도메인을 입력한 순간부터 실제 IP 주소를 찾아내기까지, 그 짧은 순간에 무슨 일이 벌어지는지 단계별로 정리했습니다.

  1. 브라우저와 운영체제 캐시부터 확인하기

    주소창에 도메인을 입력하면 가장 먼저 브라우저 자체의 DNS 캐시와, 운영체제가 관리하는 리졸버 캐시(및 hosts 파일)를 확인합니다. 최근에 방문했거나 이미 저장된 항목이 있다면 이후 단계 없이 바로 그 IP 주소를 사용합니다.

  2. 재귀 리졸버에게 질의 전달하기

    로컬 캐시에 없다면, 기기에 설정된 재귀 DNS 리졸버(대개 통신사가 제공하거나 8.8.8.8·1.1.1.1 같은 공개 DNS)에게 질의를 보냅니다. 이 리졸버는 사용자를 대신해 실제 답을 찾아 나서는 역할을 합니다.

  3. 루트 네임서버에 최상위 도메인 서버 위치 묻기

    재귀 리졸버의 캐시에도 답이 없다면, 전 세계에 흩어진 루트 네임서버(13개의 대표 주소가 애니캐스트 방식으로 수백 대의 서버에 분산되어 있음) 중 하나에 질의합니다. 루트 서버는 직접 답을 주는 대신 ".com", ".kr" 같은 최상위 도메인(TLD)을 관리하는 네임서버의 위치를 알려줍니다.

  4. TLD 네임서버에 권한 네임서버 위치 묻기

    루트 서버가 알려준 TLD 네임서버(.com, .kr 등을 관리하는 서버)에 다시 질의하면, 이번에는 실제로 그 도메인을 관리하는 권한 네임서버(authoritative name server)의 주소를 알려줍니다.

  5. 권한 네임서버에서 최종 답 얻기

    권한 네임서버는 해당 도메인의 실제 DNS 레코드를 직접 관리하는 서버로, A(IPv4)나 AAAA(IPv6) 레코드에 등록된 실제 IP 주소를 재귀 리졸버에게 돌려줍니다. 이로써 도메인 이름이 실제 서버의 IP 주소로 변환되는 조회 과정이 완료됩니다.

  6. 결과를 캐싱하고 브라우저에 전달하기

    재귀 리졸버는 응답받은 IP 주소를 레코드에 설정된 TTL(Time To Live) 시간만큼 캐시에 저장해, 같은 질문이 다시 오면 앞선 단계를 반복하지 않고 곧바로 답할 수 있게 합니다. 이후 이 IP 주소가 브라우저에 전달되면, 브라우저는 비로소 그 주소로 실제 접속(HTTP 연결)을 시작합니다.

DNS 레코드 종류가 궁금하다면

마지막 단계에서 등장하는 A·AAAA 레코드 외에 CNAME·MX·TXT·NS 레코드까지 궁금하다면DNS 레코드 타입 완전정복을 확인해보세요.

DNS 서버를 직접 바꾸고 싶다면

재귀 리졸버로 어떤 DNS 서버를 쓸지는 직접 설정할 수 있습니다. 자세한 방법은DNS 서버 변경하는 방법에서 확인해보세요.

자주 묻는 질문

이 모든 과정이 매번 반복되나요?

아니요, 각 단계의 답변에는 TTL(캐시 유지 시간)이 설정되어 있어, 재귀 리졸버가 그 시간 동안은 캐시에 저장된 답을 그대로 재사용합니다. 그래서 처음 접속할 때만 전체 과정을 거치고, 그 이후에는 대부분 캐시 덕분에 훨씬 빠르게 응답을 받습니다.

루트 네임서버는 정말 딱 13대만 있나요?

대표 주소(IP)는 A부터 M까지 13개이지만, 실제로는 애니캐스트 기술을 이용해 전 세계 수백 대의 물리적 서버가 이 13개의 주소를 함께 응답하고 있습니다. 그래서 특정 서버 한두 대에 장애가 생겨도 전체 DNS 시스템에는 영향이 거의 없습니다.