본문 바로가기
개발 지식/기본지식

DNS와 그 작동 원리

by greenyellow-s 2025. 4. 30.
728x90

DNS 란

Domain Name System

 

사람은 도메인 이름을 통해 온라인으로 정보를 액세스하고 웹 브라우저는 인터넷 프로토콜 (IP) 주소를 통해 상호작용한다.

따라서, 이 둘을 변환시켜주는 작업이 필요한데

DNS는 브라우저가 인터넷 자원을 로드할 수 있도록 도메인 이름을 IP주소로 변환해준다.

 

 

도메인 이름을 사용하는 이유는

IP주소 ( ex. 192.168.1.1(IPv4) 또는 2400:cb00:2046:1::c629:d7a2(IPv6) ) 를 사용자가 기억하기 어렵기 때문에

사용자가 쉽게 웹 사이트를 방문할 수 있도록 도메인 주소(ex. google.com) 를 사용한다.

 


DNS가 작동하는 방법

DNS 확인 프로세스에는 호스트 이름을 컴퓨터 친화적인 IP 주소로 변환하는 과정이 포함된다.

즉, 도메인 주소 → IP 주소 과정이 포함됐다는 의미이다.

 

 

IP 주소는 인터넷에 연결된 각 기기에 부여되는 고유한 식별자이다. 마치 거리 주소처럼 특정 기기를 찾는 데 사용된다.

사용자가 도메인 이름(예: example.com)을 입력하면, 컴퓨터는 이를 이해할 수 있도록 해당 도메인에 연결된 IP 주소로 변환해야 한다.

이 변환 과정을 DNS(Domain Name System)가 담당합니다.

 

최종적으로는 웹 브라우저가 해당 IP 주소를 가진 서버에 접속해 웹 페이지를 받아온다.

 

 

 

 

웹 페이지 로드와 관련된 4개의 DNS 서버

  • DNS 리커서
    • 사용자의 요청을 처음 받는 DNS 서버
    • 직접 IP 주소를 알지 못하면, 나머지 서버들을 대신 찾아다니며 정보를 얻어온다.
  • 루트 이름 서버
    • 최상위 DNS tjqj
    • .com, .net, .org 같은 최상위 도메인(TLD)을 관리하는 서버들의 위치를 알려준다.
  • TLD 이름 서버
    • .com, .org, .kr 등 특정 TLD에 대한 정보를 제공한다.
    • example.com의 .com 에 대한 정보를 가지고 있다.
  • 권한 있는 이름 서버
    • 최종적으로 실제 IP 주소를 알고 있는 서버
    • www.example.com = 192.168.1.1 같은 답은 제공

 

DNS 쿼리
도메인 이름의 IP 주소

 

 

 

 

권한 있는 DNS 서버 vs 재귀 DNS 확인자 의 차이

 

권한 있는 DNS 서버

특정 도메인에 대한 최종 답변을 알고 있는 DNS 서버

해당 도메인의 실제 IP 주소를 저장하고 있음

도메인 소유자가 직접 설정한 DNS 레코드를 가지고 있음 (ex. A, AAAA, CNAME 등)

 

재귀 DNS 확인자

사용자의 브라우저나 앱이 보낸 DNS 쿼리를 가장 먼저 받는 서버

직접 IP 주소를 알지 못하면 대신 다른 DNS 서버(루트 → TLD → 권한 있는) 들을 차례대로 조회

마지막 IP 주소를 찾아 사용자에게 반환

캐시에 결과를 저장하여 나중에 같은 요청이 들어오면 빠르게 응답 가능

 

구분 재귀 DNS 확인자 권한 있는 DNS 서버
위치 사용자 가까이 (ISP나 회사 내부) 도메인 소유자가 지정한 서버
역할 사용자의 요청을 대신 찾아줌 도메인에 대한 최종 IP 주소 제공
데이터 보유 캐시 원본 DNS 레코드
예시 8.8.8.8, 1.1.1.1 ns1.example.com 같은 도메인별 DNS 서버

 

 

 

DNS 조회 단계

1. 사용자가 웹 브라우저에 'example.com'을 입력하면, 쿼리는 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신

2. 이어서 확인자가 DNS 루트 이름 서버(.) 를 쿼리한다.

3. 루트 서버가 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버의 주소로 확인자에 응답

  • example.com → 요청 → .com TLD 가리킴

4. 확인자 .com TLD 에 요청

5. TLD 서버가 도메인 이름 서버의 IP 주소로 응답

6. 재귀 확인자가 도메인의 이름 서버로 쿼리 보냄

7. IP 주소가 이름 서버에서 확인자에게 반환

8. DNS 확인자가 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답

 

9. 브라우저가 IP 주소로 HTTP 요청 보냄

10. 해당 IP의 서버가 브라우저에서 랜더링할 웹 페이지를 반환

 


정리

 

사용자
 ⇓ 입력
'example.com'

 

 ⇓  인터넷을 통해 쿼리 전송


DNS 재귀 확인자

 ⇓ 쿼리 전송

           ⇑ .com TLD 주소 응답
루트 이름 서버
 ⇓ 쿼리 전송


TLD 서버 (.com)
⇓ 권한 있는 이름 서버 주소 응답
          ⇓ 쿼리 전송

 

권한 있는 이름 서버
⇓ 최종 IP 주소 응답
          ⇑
DNS 재귀 확인자
⇓ IP 주소 반환


브라우저
⇓ HTTP 요청 전송 (IP 주소 기반)

 

웹 서버
⇓ 웹 페이지 반환

 

브라우저 (렌더링 완료)

 


 

참고 문서
https://www.cloudflare.com/ko-kr/learning/dns/what-is-dns/

 

728x90

'개발 지식 > 기본지식' 카테고리의 다른 글

호스팅이란  (0) 2025.05.02
도메인 이름이란?  (0) 2025.05.02
브라우저는 어떻게 동작하는가  (3) 2025.04.30
HTTP 란  (0) 2025.04.24
인터넷은 어떻게 동작하는가  (2) 2025.04.24