DNS 개념과 동작 원리

2023. 11. 10. 11:40· Theory
목차
  1. DNS란?
  2. DNS의 구성요소
  3. 도메인 네임 스페이스
  4. 네임 서버
  5. 리졸버
  6. DNS의 작동 원리
  7. DNS 동작 순서
  8. Reference
반응형

DNS란?

DNS는 Domain Name System의 줄임말로 도메인 네임 시스템을 의미한다. DNS는 호스트의 도메인 네임을 네트워크 주소(IP주소)로 변환하거나, 그 반대의 역할을 수행하는 시스템이다.

 

상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP주소를 변경할 수 있는 '권한'을 부여하는 '계층 구조'를 가지는 분산 데이터베이스 구조를 가진다.

 

예를들어, Naver, Google 같은 경우도 도메인 주소는 Naver.com과 Google.com이지만 IP 주소는 각각 233.130.200.95와 142.250.207.14이다.

더보기

터미널에서 네이버의  DN을 적어 ping을 확인해 보는 법

만약 ip주소가 다르더라도 너무 걱정하지는 않아도 된다. 네이버의 서버는 여러 대의 컴퓨터로 구성되어 있어 하나의 IP주소로 제한되어 있지 않다. 또한 네이버는 전 세계 사용자에게 서비스를 제공하므로 여러 지역에서 서로 다른 IP주소를 사용할 수도 있기 때문이다. 실제로 본인도 접속할 때마다 IP주소가 달라진다.

 

두 IP 주소가 다를 수 있는 이유는 다양하게 존재하지만, 그중 대표적인 이유로는 일부 ISP 또는 네트워크 구성에 따른 것이다. 우리가 중요하게 봐야 할 것은 naver.com으로 들어갔지만 ip 주소로 이동된다는 것이다.

 

 

즉, 우리가 naver.com으로 접속하면 아래와 같은 과정을 걸쳐서 접속이 되는 것이다.

  1. 도메인 주소 naver.com을 브라우저에 입력하게 되면, 도메인 주소들을 가지고 있는 DNS서버에 접속된다.
  2. DNS서버에 접속한 도메인(naver.com)과 연결된 IP정보(223.130.192.95)를 확인하고, IP를 우리에게 다시 전달해 준다.
  3. 우리는 전달받은 IP주소로 접속한다.

 

 

DNS의 구성요소

DNS는 아래의 세 가지의 구성요소로 구성되어 있다.

1. 도메인 네임 스페이스 - Domain Name Space

2. 네임 서버 - Name Server = 권한이 있는 DNS서버

3. 리졸버 - Resolver = 권한이 없는 DNS서버

 

도메인 네임 스페이스

도메인 네임 스페이스는 전체적인 도메인 이름 시스템의 계층적인 구조를 나타낸다. 도메인은 계층적으로 구성되어 있어, 상위 도메인에서부터 하위 도메인으로 이어지는 구조를 가지고 있다. 이러한 계층구조는 도메인 이름의 계층적인 분류와 관리를 가능하게 한다.

 

네임 서버

네임 서버는 도메인 이름과 해당 도메인의 IP주소를 매핑시켜 주는 역할을 한다. 네임 서버는 두 가지 주요 유형으로 나뉜다.

권한이 있는 DNS서버는 특정 도메인에 대한 IP주소 정보를 가지고 있고, 이 정보를 요청받으면 정확한 응담을 할 수 있는 서버이다. 이러한 권한 서버는 도메인 이름의 소유자나 도메인 관리자가 관리하고 있다.

 

리졸버

리졸버는 사용자 컴퓨터나 네트워크 장비에서 도메인 이름을 IP주소로 변환해 주는 역할을 한다. 리졸버는 사용자가 웹 브라우저에 도메인 이름을 입력하면 이를 IP 주소로 변환하여 해당 웹 사이트에 접속할 수 있도록 도와준다. 리졸버는 일반적으로 ISP나 기업의 네트워크에 제공되며, 사용자가 도메인을 검색할 때마다 적절한 네임 서버에 요청을 보내고 응답을 받아 사용자에게 전달한다.

 

 

DNS의 작동 원리

위에서 설명했듯이 클라이언트가 도메인 명을 브라우저에 검색을 하면, 도메인 정보가 저장된 네임서버로 이동해서 도메인 정보와 일치하는 IP주소를 클라이언트에게 제공하고 클라이언트는 IP주소를 가지고 홈페이지로 접속하는 과정은 다르지 않다.

 

단지, DNS에서 도메인 & IP 정보를 얻는 과정을 쉽게 설명하였지만 사실은 복잡하게 되어 있다는 것이다.

왜냐하면 전체 도메인 수가 너무 많아서 DNS 서버 종류를 계층화해서 단계적으로 처리하기 때문이다.

 

DNS 동작 순서

1. 도메인 이름 입력

사용자가 웹 브라우저나 다른 네트워크 응용 프로그램에서 도메인이름을 입력한다.

 

2. 로컬 캐시 탐색

우선 사용자의 컴퓨터에 있는 Local DNS서버에서 이전에 해결한 도메인 이름에 대한 IP주소가 저장되어 있는지 확인한다.

저장된 경우, 추가적인 DNS를 조회하지 않고 캐시에서 IP주소를 가지고 온다.

 

3. Root DNS 서버 조회

2번 단계에서 캐시에 IP주소가 없다면, IP주소를 찾기 위해서 다른 DNS 서버들과 통신을 시작한다. 우선, Local DNS서버에서 DNS 계층 구조의 최상위에 위치한 Root DNS서버에 쿼리를 보낸다.

 

만약 Root DNS서버에서 IP주소를 찾을 수 없을 경우 Local DNS서버로 IP주소가 없다고 다른 Root DNS서버로 요청을 보내라고 전달해 준다.

 

4. Top-Level Domain DNS 서버 조회

Root DNS서버는 com 도메인을 관리하는 최상위 도메인서버(TLD)의 주소를 Local DNS서버에 알려준다.

 

역시 IP주소를 찾을 수 없는 경우 다시 Local DNS서버에 찾을 수 없다고 전달해 준다.

 

5. 도메인 네임 서버 조회

TLD DNS 서버는 실제 도메인에 대한 권한을 가지고 있는 도메인 네임 서버의 주소를 로컬 DNS 서버에 제공 한다. 이 도메인 네임 서버는 요청된 도메인에 대한 IP주소 정보를 가지고 있다.

 

6. 도메인 네임 서버로의 질의

Local DNS 서버는 도메인 네임 서버에 질의를 보내 도메인에 대한 IP주소 정보를 요청한다.

 

7. Local DNS 서버에서 클라이언트로 응답 전송

Local DNS 서버는 받은 IP 주소 정보를 로컬 캐시에 저장하고, 도메인 이름을 요청한 클라이언트에게 IP주소를 전송한다.

 

8. 클라이언트 응용 프로그램에서 웹 서버로 접속

최종적으로, 클라이언트 응용 프로그램은 받은 IP주소를 사용하여 웹 서버에 직접 접속한다.

 

 

DNS 서버의 종류

 

 

Reference

 

🌐 DNS 개념 & 동작 ★ 알기 쉽게 정리

​DNS (Domain Name System) 란? 도메인 네임 시스템 (Domain Name System, DNS) 은 호스트의 도메인네임 (www.example.com)을 네트워크주소(192.168.1.0)로 변환하거나, 그 반대의 역할을 수행하는 시스템이다. 예를 들

inpa.tistory.com

 

 

반응형
저작자표시 (새창열림)

'Theory' 카테고리의 다른 글

운영체제(OS) 메모리 관리  (1) 2023.11.19
DNS 서버의 종류  (1) 2023.11.11
인터넷은 어떻게 동작하는가?  (1) 2023.11.09
WebSocket과 HTTP, SSE  (1) 2023.10.17
Django csrftoken  (0) 2023.08.08
  1. DNS란?
  2. DNS의 구성요소
  3. 도메인 네임 스페이스
  4. 네임 서버
  5. 리졸버
  6. DNS의 작동 원리
  7. DNS 동작 순서
  8. Reference
'Theory' 카테고리의 다른 글
  • 운영체제(OS) 메모리 관리
  • DNS 서버의 종류
  • 인터넷은 어떻게 동작하는가?
  • WebSocket과 HTTP, SSE
Jong_seoung
Jong_seoung
기록하자, 머리는 생각하는 곳이지 저장장치가 아니다.
반응형
Jong_seoung
Today_developStory
Jong_seoung
전체
오늘
어제

블로그 메뉴

  • Home
  • Git Hub
  • 분류 전체보기 (351)
    • Theory (16)
    • Java (3)
      • 알고리즘 (2)
      • 문법 (0)
    • Spring (7)
      • 스프링 입문 (6)
      • PickTalk (0)
      • 에러처리 (1)
    • Python (80)
      • 알고리즘 - 이론 (17)
      • 알고리즘 - 내장함수, 라이브러리 등등 (3)
      • 알고리즘 - 백준 (53)
      • 나도코딩 정리 (2)
      • 기타 (5)
    • Django (159)
      • DRF (105)
      • 인프라 (46)
      • DataBases (2)
      • API Docs (6)
    • FrontEnd (22)
      • htmx (2)
      • React (8)
      • 자바스크립트 (12)
    • GIT (16)
    • 기타 (8)
      • 정리 (2)
      • Flutter (1)
      • 마이크로프로세서 - ATmega128 (2)
      • 개발환경 세팅 (3)
    • 자격증 (37)
      • 정보처리기사 (19)
      • SQLD자격증 (18)

인기 글

최근 글

태그

  • alarm
  • BFS
  • CSRF
  • Django
  • django channels
  • django sse
  • django tutorial
  • django 배포
  • django 스웨거 적용
  • Django 이미지 저장

최근 댓글

hELLO · Designed By 정상우.v4.3.0
Jong_seoung
DNS 개념과 동작 원리
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.