본문 바로가기
Computer Science/네트워크

[네트워크] DNS란? (도메인과 URL 차이, URL 구성, 도메인 구조와 규칙, DNS 종류, DNS 동작원리, DNS가 분산 데이터베이스 구조를 가지는 이유)

by 그적 2024. 2. 19.

목차

  • URL이란?
  • URL 구성
  • DNS란?
  • 도메인 구조와 규칙
  • DNS 종류
  • DNS 동작 원리
  • DNS가 분산 데이터베이스 구조를 가지는 이유

 


1. URL이란?

검색 창에 google.com을 치는 것과 URL은 다르다. URL은 google.com과 같은 도메인 네임을 포함한 인터넷상에서 자원을 요청하기 위한 규약이다. google.com이라는 도메인 네임은 자원이 어디에 존재하는지 나타내는지를 나타내는 경로이고, 자원을 어떻게 송수신할지에 대한 정보인 프로토콜 등을 포함한 것이 URL이다.

 


2. URL 구성

  • Protocol : 자원을 요청해야 하는 프로토콜
  • Domain name : 자원의 주소

[옵션]

  • Port : 자원에 접근할 수 있는 포트 번호
  • Path : 자원이 위치하는 경로
  • Parameters : 자원을 요구하기 위해 필요한 정보
  • Fragment : 페이지의 책갈피 지점 표시

옵션의 경우에는 요청 시 반드시 필요한 정보를 제외하고 반드시 입력될 필요는 없다. 하지만 HTTP는 80번, HTTPS는 443번과 같이 프로토콜을 사용할 때 일반적으로 연결되는 포트 번호가 아닌, 임의의 포트 번호를 사용할 경우에는 반드시 입력해주어야 한다.

 

https://abcde.com:5656/image/123?type=img

 

만약 위와 같은 URL이 존재한다면, 다음과 같이 구분할 수 있다.

  • Protocol : https
  • Domain name : abcde.com
  • Port : 5656
  • Path : image/123
  • Paramters : type=img

 


3. DNS란?

IP 주소는 네트워크 상에서 사용되는 논리적 주소이다. 하지만 IP 주소는 사람이 읽기 힘들기 때문에 google.com이나 naver.com과 같이 사람이 읽기 쉬운 주소로 컴퓨터를 나타내고, 이러한 도메인 네임을 IP 주소로 변환하는 시스템이 DNS이다.

 


4. 도메인 구조와 규칙

https://webtute.com/what-is-a-subdomain/

 

도메인은 점(.)을 기준으로 서브 도메인 + Second-Level 도메인 + Top-Level 도메인으로 구성되어 있다. Top - Level 도메인은 도메인 네임의 가장 오른쪽 부분을 나타내며, 제일 오른쪽부터 순서대로 각 레벨이 부여된다. 통상적으로 도메인의 가장 끝에 있는 점은 생략되어 있고, 이것을 루트 도메인이라고 부른다.

 

  • Top - Level 도메인 규칙
국가코드 최상위 도메인 (ccTLD)
.kr - 한국 .jp - 일본 .cn - 중국 .us - 미국 .uk - 영국

** ccTLD는 Second-Level 도메인 뒤에 붙는 경우가 많다. (ex. co.kr 혹은 or.kr 등)

 

일반 최상위 도메인 (gTLD)
.com - 영리기관 .org - 비영리기관 .int - 국제기구 .net - 네트워크 관련 .edu - 미국 교육 기관
.biz- 비즈니스 .gov - 미국 정부기관 mil - 미국 국방기관    

 

소속 기관 서브 도메인
.co - 영리기관 .go - 정부기관 .or - 비영리기관 .re - 연구소 ..ac - 대학 교육 기관
ne - 네트워크 관련 .pe - 개인 hs - 고등학교 .ms - 중학교 .es - 초등학교

 


5. DNS 종류 (= 네임서버 종류)

네임서버는 도메인 네임을 IP 주소로 변환하기 위한 데이터베이스 역할을 한다.

 

  • Root DNS Server, 루트 네임서버

가장 최상위 네임서버로 모든 컴퓨터는 루트 네임서버 정보를 가지고 있으며, 전 세계 13개의 루트 네임서버가 구축되어 있다. TLD 네임서버 정보를 반환한다.

 

  • TLD DNS Server, TLD 네임서버

도메인 등록 기관이 관리하는 서버이다. SLD 네임서버 정보를 반환한다.

 

  • Authoritative DNS Server, SLD 네임서버

실제 도메인과 IP 주소를 저장 및 변경하는 서버이다. 더 하위 계층 네임서버 정보를 반환하거나 IP 주소를 반환한다.

 


6. DNS 동작 원리

1) 사용자가 google.com을 검색한다.

 

2) ISP가 요청을 대신 수행한다.

 

3) ISP는 본인 캐시에 매칭되는 도메인이 없으면, 루트 네임서버로 요청을 전달한다.

 

4) 루트 네임서버에서 받은 데이터를 바탕으로, ISP는 다시 TLD 네임서버로 요청을 전달한다.

 

5) TLD 네임서버에서 받은 데이터를 바탕으로, ISP는 Authoritative 네임서버로 IP를 요청한다.

 

6) Authoritative 네임서버는 google.com 레코드를 찾아 IP 주소를 반환한다.

 

7) ISP는 데이터를 캐싱하고 사용자에게 IP 주소를 반환한다.

 

8) 사용자는 IP 주소를 이용해 데이터를 요청하고, 응답받는다.

 


7. DNS가 분산 데이터베이스 구조를 가지는 이유

 

IP 주소를 알기 위해 네임서버에 도메인 네임을 질의했을 때 결과를 알려주는 네임서버는 존재하지 않는다. 도메인은 점(.)을 기준으로 각 계층이 나뉘고, 하위 계층의 네임서버 정보를 가지고 있다. 따라서 DNS 요청이 들어왔을 때 루트 도메인부터 하위 레벨 도메인을 이용해 각 레벨 네임 서버에 질의하는 것이다.

 

왜 이러한 분산 데이터베이스 구조를 가지고 있을까?

정답은 확장성이 좋기 때문이다. 점(.)을 기준으로 계층을 넓히거나 포함하고 있는 자식 노드의 개수를 늘리기 쉽다는 장점으로 트래픽을 분산시키기에 좋다.

 

댓글