DNS 서버는 어떻게 작동할까, 도메인 접속 원리 총정리

 우리는 웹사이트에 접속할 때 192.168.1.1 같은 복잡한 IP 주소 대신 google.com처럼 기억하기 쉬운 도메인 주소를 입력합니다. 그런데 실제로 인터넷에서 서버를 찾아가려면 결국 IP 주소가 필요합니다. 이 둘을 연결해주는 시스템이 바로 DNS(Domain Name System)입니다. 이번 글에서는 브라우저에 주소를 입력했을 때 실제로 어떤 과정을 거쳐 서버까지 도달하는지, DNS의 전체 동작 원리를 순서대로 정리해보겠습니다.

DNS란 무엇인가

DNS는 도메인 이름을 IP 주소로 변환해주는 시스템입니다. 흔히 "인터넷의 전화번호부"라고 비유되는데, 사람 이름으로 전화번호를 찾듯이 도메인 이름으로 실제 서버의 IP 주소를 찾아주는 역할을 합니다. 만약 DNS가 없다면 우리는 웹사이트에 접속할 때마다 복잡한 IP 주소를 직접 외워서 입력해야 할 것입니다. DNS 덕분에 사람이 기억하기 쉬운 이름으로 인터넷을 이용할 수 있는 것입니다.

도메인 접속 시 실제로 벌어지는 일

브라우저에 주소를 입력하고 엔터를 누르는 순간부터 실제 화면이 뜨기까지, 내부적으로는 다음과 같은 과정이 순서대로 진행됩니다.

1. 브라우저 캐시 확인 브라우저는 먼저 자신이 이전에 조회했던 기록이 있는지 캐시를 확인합니다. 이미 조회한 적이 있다면 바로 해당 IP로 접속합니다.

2. 운영체제(로컬) 캐시 확인 브라우저에 기록이 없다면, 운영체제 차원에서 저장된 DNS 캐시를 확인합니다.

3. 로컬 DNS 서버(리졸버)에 질의 캐시에도 없다면, 통신사나 회사에서 지정한 로컬 DNS 서버(리졸버)에 질의를 보냅니다. 이 서버가 실제 IP 주소를 찾아주는 역할을 시작합니다.

4. 루트 DNS 서버 질의 로컬 DNS 서버는 먼저 루트(Root) DNS 서버에 질의합니다. 루트 서버는 최상위 도메인(.com, .net, .kr 등)을 관리하는 서버의 위치를 알려줍니다.

5. TLD DNS 서버 질의 다음으로 최상위 도메인(TLD) 서버에 질의해서, 해당 도메인을 관리하는 네임서버의 위치를 확인합니다.

6. 네임서버(권한 서버) 질의 마지막으로 실제 도메인을 관리하는 네임서버에 질의해서, 최종적으로 해당 도메인의 IP 주소를 받아옵니다.

7. 응답 및 캐싱 로컬 DNS 서버는 받은 IP 주소를 브라우저에 전달하고, 이후 빠른 응답을 위해 일정 시간 동안 해당 정보를 캐싱해둡니다.

8. 실제 서버 접속 브라우저는 전달받은 IP 주소로 실제 웹서버에 접속해서 화면을 받아옵니다.

이 모든 과정이 사용자 입장에서는 단 몇백 밀리초 안에 이루어지기 때문에, 우리는 이런 복잡한 절차가 일어나고 있다는 사실조차 인지하지 못하는 경우가 많습니다.

재귀적 질의란 무엇인가

위 과정에서 로컬 DNS 서버가 루트 서버부터 네임서버까지 순차적으로 질의해서 최종 답을 찾아주는 방식을 "재귀적 질의(Recursive Query)"라고 합니다. 클라이언트(브라우저)는 로컬 DNS 서버에게 한 번만 요청하면 되고, 나머지 복잡한 탐색 과정은 로컬 DNS 서버가 대신 처리해줍니다.

반대로 로컬 DNS 서버가 각 상위 서버에 질의할 때는 "반복적 질의(Iterative Query)" 방식을 사용합니다. 각 서버는 자신이 아는 만큼만 답해주고, 다음 서버의 위치를 알려주는 방식으로 진행됩니다.

TTL과 캐싱의 역할

DNS 응답에는 TTL(Time To Live)이라는 값이 함께 전달됩니다. TTL은 해당 IP 정보를 얼마나 오래 캐싱해둘지를 나타내는 값(초 단위)입니다.

TTL이 길게 설정되어 있으면 캐싱된 정보를 오래 사용하기 때문에 조회 속도는 빨라지지만, 만약 서버 IP가 변경되었을 때 반영되는 데 시간이 오래 걸릴 수 있습니다. 반대로 TTL이 짧으면 변경 사항이 빠르게 반영되지만, 매번 새로 조회해야 하므로 응답 속도가 상대적으로 느려질 수 있습니다. 그래서 서버 이전 작업을 앞두고 있다면 미리 TTL 값을 짧게 조정해두는 것이 실무에서 흔히 쓰이는 방법입니다.

DNS 레코드의 대표적인 종류

레코드 종류역할
A 레코드도메인을 IPv4 주소로 연결
AAAA 레코드도메인을 IPv6 주소로 연결
CNAME 레코드도메인을 다른 도메인으로 연결(별칭)
MX 레코드메일 서버 정보 지정
TXT 레코드도메인 소유권 확인 등 텍스트 정보 저장

마무리

DNS는 평소에는 존재조차 의식하지 못하지만, 우리가 인터넷을 사용하는 모든 순간에 관여하는 핵심 인프라입니다. 도메인 접속 과정을 단계별로 이해해두면, 실제로 서버 이전이나 도메인 연결 작업을 할 때 어디서 문제가 발생했는지 훨씬 빠르게 파악할 수 있습니다.지금까지 웹서버와 WAS, 리버스 프록시, 로드밸런싱, DNS까지 이어지는 서버 기초 개념을 정리해봤습니다. 이 흐름을 이해하고 나면 실제 서버 아키텍처가 어떻게 구성되는지 한결 명확하게 그려질 것입니다.