IT/네트워크

DNS(Domain Name System)란?

테크엣지 2025. 6. 22. 01:58


DNS(Domain Name System, 도메인 네임 시스템)는 인터넷에서 사람이 이해하기 쉬운 도메인 이름(예: https://www.tistory.com)을 컴퓨터가 이해하는 IP 주소(예: 211.183.210.24)로 변환하는 시스템인데요. DNS는 인터넷의 전화번호부 역할과 유사하게, 사용자가 도메인 이름을 입력하면 해당 웹사이트의 정확한 IP 주소를 찾아 연결해 줍니다.

DNS의 필요성

인터넷상의 모든 장치는 고유한 IP 주소를 가지고 있지만, 숫자로 된 IP 주소를 일일이 기억하는 것보다 문자나 단어로 기억하는 게 더 쉽겠죠. DNS가 없으면 접속하려는 웹사이트 도메인의 IP주소(숫자)를 입력해야 하는데요.
이처럼 DNS는 도메인 이름과 IP 주소를 매핑(어떤 값을 다른 값에 대응시키는 과정)하여 사용자가 쉽고 편리하게 웹사이트에 접속할 수 있도록 변환해 줍니다.

DNS의 구조

DNS는 전 세계에 분산된 계층적 데이터베이스 구조를 기반으로 하는데요. 각 서버는 정해진 역할을 수행하고, 이러한 서버들이 협력해 도메인 이름과 IP 주소 간의 매핑을 관리합니다.

DNS 서버 유형

1. 순환 DNS 서버(DNS Resolver): 사용자의 요청을 수신하여 IP 주소를 찾기 위해 다른 DNS 서버에 질의(쿼리, Query)합니다.

2. 루트 네임 서버(Root Name Server) 또는 루트 DNS 서버(Root DNS Server): 최상위 도메인 서버의 위치를 안내합니다.
‘Root name server’와 ‘Root DNS server’는 인터넷 도메인 네임 시스템(DNS)의 최상위 계층인 루트 존(root zone)을 관리하는 서버를 의미하며, 동일한 개념입니다.
DNS의 루트 존(Root Zone)에 대한 네임 서버로 루트 도메인에 대한 쿼리를 직접 처리하고 요청된 도메인의 최상위 도메인(TLD)을 관리하는 권한 있는 네임 서버 목록을 반환하는 역할을 수행합니다. DNS에서 도메인 이름과 IP 주소를 매칭하는 시스템에서 루트 영역을 관리하는 서버를 의미하며, 일반적으로 전 세계에 13대가 운영됩니다. 로컬 DNS 서버가 도메인 정보를 알지 못할 때 최상위 도메인 서버(TLD 서버)를 안내하는 역할을 합니다.

3.  최상위 도메인 DNS 서버(Top-Level Domain DNS Server): 도메인 확장자에 대한 정보를 관리합니다.
TLD 서버는 조직 유형에 따라 일반 최상위 도메인(gTLD)과 국가 코드 최상위 도메인(ccTLD)으로 나뉩니다.
gTLD 예로는 .com(상업용), .edu(교육기관), .gov(정부기관), .mil(군사기관) 등이 있고, ccTLD는 국가별 도메인 예로 .kr(한국), .us(미국) 등이 있습니다

4. 권한 네임 서버(Authoritative Name Server): 도메인 이름에 대한 최종 IP 주소 정보를 제공합니다.
특정 도메인에 대한 DNS 정보를 원본으로 보유하고, 해당 도메인 질의에 대한 최종 응답을 제공하는 DNS 서버입니다.
권한 있는 네임 서버는 도메인 이름과 IP 주소 간의 공식적인 최종 매핑 정보를 저장하고 제공하는 서버로, DNS 시스템에서 도메인 이름 해석의 핵심 역할을 수행합니다.
  A. 도메인의 원본 존(zone) 데이터를 저장하며, 관리자가 직접 구성한 정보에 따라 DNS 레코드(A, CNAME, MX, NS 등)를 제공합니다.  
  B. 권한 있는 네임 서버는 캐시 된 데이터를 제공하는 것이 아니라, 항상 최신의 공식 데이터를 응답합니다.
  C. 보통 마스터(Primary) 서버와 슬레이브(Secondary) 서버로 구분되며, 슬레이브 서버는 마스터 서버의 데이터를 복제해 유지합니다.  
  D. DNS 질의 과정에서 재귀적 DNS 서버(Recursive resolver, 사용자를 대신해 여러 DNS 서버를 차례로 조회하여 최종 IP 주소를 찾아 반환하는 중개자 역할)가 최종 IP 주소를 찾기 위해 권한 있는 네임 서버에 요청을 보내고, 권한 있는 네임서버가 정확한 도메인 IP 정보를 반환합니다.
  E. 응답 시 권한 있는 답변임을 나타내는 AA(Authoritative Answer) 비트를 설정하여 자신이 해당 도메인에 대해 권한이 있음을 표시합니다.

DNS 단계별 쿼리

(단계별 질의 과정)

1. 브라우저 캐시 확인
브라우저는 최근에 방문한 도메인의 IP 주소를 캐시에 저장합니다.(사생활 보호 모드나 브라우저 창 닫을 때 캐시를 지우도록 설정한 경우는 제외)
→ 만약 캐시에 있다면, 바로 IP를 사용해 접속.
→ 없다면 다음 단계로 넘어갑니다.

2. OS(운영체제) 캐시 확인
브라우저에 없다면, 컴퓨터의 OS DNS 캐시를 확인합니다.
→ 여전히 없다면, 로컬 DNS 리졸버라는 보통 통신사(ISP, Internet Service Provider의 약자로 한국은 KT, LG 유플러스, SK 브로드밴드)를 통해 질의합니다.

3. 리졸버(Recursive Resolver) 질의
리졸버는 사용자를 대신해 계층적 DNS 서버를 탐색해 IP를 찾는 역할을 합니다.
  A. 캐시 확인: 먼저 자신의 캐시에 해당 도메인 이름에 대한 IP 주소가 있는지 확인합니다.
  B. 캐시 히트: 캐시에 해당 정보가 있으면, 로컬 DNS 리졸버는 즉시 IP 주소를 사용자에게 반환합니다. 이 정보는 일정 시간 동안 캐시에 저장됩니다.
  C. 캐시 미스: 캐시에 해당 정보가 없으면, 로컬 DNS 리졸버는 다음 단계로 진행합니다.

4. 루트 네임 서버(Root Name Server 또는 Root DNS Server)에 질의
루트 네임 서버는 인터넷의 최상위 DNS 서버이며, TLD 네임 서버 주소를 알고 있습니다.
→ .com, .net, .kr 같은 TLD(Top Level Domain)로 연결되는 서버를 알려줍니다.
(예: https://www.tistory.com 입력 시 → .com에 대한 정보가 반환)

5. TLD 서버 질의
TLD 서버는 .com, .net, .kr 등 각 도메인의 중간 계층을 담당합니다.
→ 해당 도메인의 권한 있는 네임 서버(authoritative name server) 주소를 알려줍니다.
TLD 서버는 DNS 조회 과정에서 루트 네임서버로부터 해당 TLD에 대한 정보를 받아, 최종적으로 도메인의 권한 있는 네임 서버를 안내하는 역할을 합니다. 예를 들어 tistory.com에 접속할 때, DNS 리졸버는 먼저 루트 네임 서버에 질의하고, 이어서 .com TLD 서버에 접속해 tistory.com의 권한 있는 네임 서버 IP를 받게 됩니다.

6. 권한 있는 네임 서버
해당 도메인에 대한 DNS 정보를 관리하는 서버로 쿼리 요청이 오면 IP주소를 알려줍니다.
예: https://www.tistory.com → 211.183.210.24 등을 반환해 줍니다.

7. IP 주소 반환 및 접속
리졸버는 이렇게 얻은 IP를 사용자에게 반환하고, 사용자는 해당 IP로 서버에 접속합니다.
이후 이 IP 주소는 브라우저 / OS / 리졸버 캐시에 저장되어 다음 접속 시 속도가 빨라집니다.

728x90