[Web]DNS: 네이버 주소가 naver.com이 아니라고?

Euiyeon Park·2024년 8월 24일

Web

목록 보기
9/13
post-thumbnail

🏠 Domain Name

📌 모든 웹 서버는 주소를 가진다.

모든 웹 서버는 주소를 가지고 있다.
웹 서버가 주소를 가진다는 것은 서버가 클라이언트(브라우저 등)와 통신할 수 있는 방법을 제공한다는 의미이기도 하다.

이 주소는 IP주소 또는 네크워크 주소 라고 하며,
웹 서버는 고유한 IP주소를 통해 네트워크 상에서 식별된다.

📌 도메인 네임

하지만 IP주소는 숫자로 이루어져 사람이 읽고 기억하기 어려운 형태이기 때문에
별칭(Alias)인 도메인 네임(Domain Name)을 사용한다.

웹 서버와의 통신을 위해서는 이름실제 IP주소를 기반으로 진행되어야 한다.
즉 어떤 도메인 네임이 어떤 웹 서버 IP주소 인지 알아야 한다.

🔎 도메인이란

Origin = Scheme + Host Name(Domain Name) + Port
Ex. https:// euiyeon.com :8080


🏠 DNS(Domain Name System)

DNS도메인 네임이 어떤 IP 주소인지 검색하고 변환하는 시스템을 의미한다.

    1. 웹 브라우저에 naver.com 도메인 네임 입력, 실제 IP주소가 무엇인지 DNS절차로 확인
    1. 실제 웹 서버의 IP주소를 알았으니 웹 브라우저는 원래 하고자했던 요청을 진행
      (웹 페이지 반환해오기)

도메인 네임과 웹 서버IP의 매핑 정보인 DNS Table을 이용하여 변환한다.
DNS Table은 특정 DNS 서버에 의해 관리되며, 그 서버가 관리하는 도메인에 대한 모든 매핑 정보를 포함하고 있다.

📌 DNS 주요 기능

1. 도메인 이름 변환

사용자가 브라우저에 도메인 이름을 입력하면, DNS서버는 이 도메인 이름을 해당하는 IP주소로 변환하여 사용자의 컴퓨터가 올바른 웹 서버와 통신할 수 있도록 한다.

2. 계층적 구조

이미지 출처

DNS는 계층적인 구조를 가지고 있으며 Root DNS서버, TLD DNS서버, Name서버로 구성된다.

Domain Name Space는 도메인 네임의 계층적 구조를 의미하며,
이를 통해 도메인 네임을 조직화하고 관리하는 방법을 제공한다.

3. 캐싱

성능 향상을 위해 DNS 응답은 캐시된다.
즉, 한 번 조회된 도메인 이름과 IP주소 쌍(pair)은 일정 기간동안 저장되어 같은 요청이 다시 발생할 때 빠르게 처리된다.

4. 분산된 시스템

DNS는 전 세계에 분산되어 있는 수많은 서버들로 구성된 시스템이다.
따라서 DNS 시스템이 매우 안정적이고 확장 가능하게 만드는 데 기여한다.

🏠 DNS 동작 원리

🔎 DNS Query
Recursive Query

  • DNS Resolver가 클라이언트로부터 받은 요청을 완전히 해결하는 방식
  • Resolver는 최종 IP주소를 반환할 때까지 필요한 모든 DNS서버와 통신을 처리한다.

Iterative Query

  • DNS 서버가 바로 답을 줄 수 없을 때, 클라이언트 또는 Resolover에게 다음에 문의할 DNS 서버의 주소를 알려주는 방식
  • 반복적으로 다른 DNS 서버에게 쿼리를 보내게 해서 응답을 하도록 요청한다.

📌 1. 브라우저와 OS 캐시 확인

웹 브라우저에 www.naver.com과 같은 도메인이 입력되면 우선 브라우저 캐시와 OS 캐시를 확인한다. 캐시에서 IP주소를 찾지 못하면 DNS Resolver가 개입한다.

🔎 DNS Resolver (Server)
DNS Resolver는 클라이언트와 DNS 서버 사이를 중재하는 역할로,
사용자의 DNS 쿼리를 받아 필요한 정보를 찾아 반환하는 기능을 수행한다.
일반적으로 DNS ResolverLocal DNS서버가 역할을 수행한다.

📌 2. Local DNS 캐시 확인

쿼리를 받은 DNS Resolver는 우선 Local DNS 서버에서 IP를 조회한다.

🔎 Local DNS (Server)
Local DNS는 보통 ISP에서 운영하는 서버로,
인터넷 통신사들의 DNS 서버로 이해할 수 있다.
사용자 회선이 KT라면 KT DNS 서버에 들리고, SK면 SK DNS 서버에 들린다.

Local DNS는 DNS 요청을 처리하는 중간 단계이며,
자신이 이전에 조회했던 도메인과 IP주소를 캐시에 저장해둔다.
클라이언트로부터 동일한 도메인에 대한 요청이 들어오면 캐시를 확인해 빠르게 응답할 수 있다.
Local DNS 캐시에 해당 도메인의 IP주소를 가지고 있지 않다면 상위 DNS서버로 요청을 전달한다.

📌 3. Root Server

DNS Resolver가 도메인의 IP주소를 찾기 위해 상위 DNS서버와 통신을 시작하는
첫 단계이다.

Root Server.(dot)을 관리하며,
.com., .net. 등의 단위를 찾아내고, 해당하는 TLD Server의 주소를 반환한다.

KeyValue
.com..com TLD Server
.net..net TLD Server

📌 4. TLD(Top Level Domain) Server

TLD Server.com, .net 등과 같은 최상위 도메인을 관리한다.
(즉, .com으로 끝나는 모든 웹 사이트 정보를 하나의 TLD Server가 가지고 있다.)
TLD Server는 해당하는 Name Server의 주소를 반환한다.

  • .com 중 naver.com은 A Name Server로
  • .com 중 google.com은 B Name Server로
KeyValue
naver.comA Name Server
google.comB Name Server

📌 5. Authoritative Name Server

Name Server.domain.com (.naver.com) 을 관리하며
실제 도메인과 IP주소의 관계가 기록/저장/변경되는 서버로 DNS 쿼리의 종착지다.
DNS Resolver에게 도메인의 IP주소를 반환한다.

또한 Name Server는 도메인(호스팅)업체들의 Name Server이다.

  • Gabia, Cafe24 등 클라이언트가 입력한 도메인(naver, google)을 등록하고 관리하는 업체의 서버
  • TLD Server는 실제로 도메인을 관리하는 도메인 업체의 Name Server 주소를 반환한다.
  • Name Server는 도메인 이름에 대한 IP주소를 포함한 DNS 레코드를 반환하고
    이 IP주소는 웹 사이트에 접근하기 위해 사용된다.

🔎 DNS의 Authoritative와 Non-Authoritative

DNS에서 AuthoritativeNon-Authoritative는 DNS서버가 제공하는 응답의 신뢰성을 나타낸다.

Authoritative : 캐싱되어있는 DNS를 반환
Non-Authoritative : 캐싱되어있지 않은 실제 Name Server에 저장된 실시간 DNS를 반환

ref

Tistory_kgworks
Tistory_inpa
Tistroy_codedatasotrage

profile
"개발자는 해결사이자 발견자이다✨" - Michael C. Feathers

0개의 댓글