IT Technology/System

DNS(Domain Name System)란?

by빵수 2024. 6. 28. 11:43
728x90
반응형

DNS에 대해서 알아보자

 

 

 

DNS(Domain Name System)란?

 

  • Domain Name System의 약자 DNS는 인터넷의 전화번호부이다. 
  • 사용자가 'naver.com' 또는 'google.com'과 같은 도메인 이름을 웹 브라우저에 입력하는 경우 DNS는 해당 사이트의 올바른 IP 주소를 찾는 역할을 한다.
  • 일반적으로 우리는 웹사이트에 접속할 때 외우기 어려운 IP 주소 대신 도메인 이름을 사용한다.
  • 인터넷에서 모든 장치는 고유한 IP 주소를 가지고 있지만, 우리는 IP 주소보다 도메인 이름을 더 쉽게 기억하고 이해할 수 있기 때문이다.
  • 때문에 이 도메인은 일종의 별명으로 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요하다.
  • 이러한 과정, 전체 시스템을 DNS(도메인 네임 시스템)라고 한다.
  • DNS(도메인 네임 시스템)은 전세계적으로 약속된 규칙을 공유하는데 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 ‘권한’을 부여한다.
  • DNS는 이처럼 상위 기관과 하위 기관과 같은 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가진다.

 

왜 이런 계층 구조를 가지는 분산 데이터 베이스 구조를 가질까?

 

  • "이 도메인 좀 IP 주소로 바꿔줄래?”라고 할 수 있는 서버(네임서버)가 한 대만 있지 않기 때문이다.
  • 한 대로 돌리려면 당연히 느릴 수 밖에 없고 비효율적이기 때문이다.
  • 그렇다면 여러 서버(네임서버)를 만들면 되지 않을까?
  • 그렇게 되면 해당 정보(도메인과 IP 주소)를 모든 서버에서 공유해야 한다. 
  • 안 그러면 어떤 서버(네임서버)에서는 ‘http://www.hanamon.kr’의 IP 주소를 모른다고 할 수도 있다.
  • 그래서 도메인을 계층적으로 구분하는, 정보(도메인과 IP주소)를 분산하는 구조를 선택하게 되었다.
  • 그래서 도메인에 닷(dot), 점이 있는 것이다. 
  • 점이 계층을 나타낸다.
  • 쉽게 말해 단 한 권의 두꺼운 책에 모든 전화번호를 기입해 찾는 것보다 여러 권으로 나누되, 하위로 연관되어 있는 여러 권으로 나누는 방식을 채택한 것이다.

 

DNS 구성 요소

 

  • 도메인 네임 스페이스(Domain Name Space) : DNS가 저장 관리하는 계층적 구조 
    • 도메인 네임 스페이스라는 규칙(방법)으로 도메인 이름 저장을 분산한다.
  • 네임 서버(Name Server) : 권한 있는 DNS 서버
    • 네임 서버(DNS 서버와 같은 말, 그런데 리졸버 서버 등 시스템 안에서 다른 역할을 하는 서버도 있기에 그냥 DNS 서버라고 하는 것보다 네임 서버라고 하는 게 더 의미가 전달되는 듯)가 해당 도메인 이름의 IP 주소를 찾는다.
  • 리졸버(Resolver) : 권한 없는 DNS 서버
    • 리졸버가 DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능을 수행한다.

 

리졸버는 어떤 네임 서버에서 찾아야하는지, 이미 캐시 되어있는지 등을 찾아서 클라이언트에게 찾았으면 찾은 것을 못 찾았으면 못 찾았다고 전달하는 역할을 수행한다고 생각하면 된다.

대표적인 것이 KT, LG 유플러스, SK 브로드밴드와 같은 ISP(통신사) DNS 있고, 브라우저 우회 용도로 많이 쓰는 구글 DNS, 클라우드플레어와 같은 Public DNS 서버가 있다.

그래서 거의 Resolver = Recursive DNS Server = Local Server(of ISP) = Recursor라고 생각하면 될 것 같다.

 

 

도메인 네임 스페이스




DNS는 전세계적인 거대한 분산 시스템으로 도메인 네임 스페이스는 이러한 DNS가 저장 관리하는 계층적 구조를 의미한다.

도메인 네임 스페이스는 최상위에 루트 DNS 서버가 존재하고 그 하위로 연결된 모든 노드가 연속해서 이어진 계층 구조로 되어있다.

폴더 구조와 상당히 흡사하다.


네임 서버(Name Server = DNS Server)

 

 

  • 문자열로 표현된 도메인 이름을 실제 컴퓨터가 통신할 때 사용하는 IP 주소로 변환시키기 위해서는 도메인 네임 스페이스의 트리 구조에 대한 정보가 필요한데 이러한 정보를 가지고 있는 서버를 네임 서버라고 한다.
  • 일반적으로 데이터베이스 역할(저장, 관리), 찾아주는 역할, 요청 처리 응답 구현의 역할을 수행한다.
  • 전 세계에 13개의 Root DNS 서버가 구축되어 있으며 이 네임 서버를 복사하여 같은 기능을 담당하는 미러서버가 존재한다.
  • 네임 서버는 총 네 가지로 분류할 수 있다

 

네임 서버 종류

 

1. Root DNS Server : DNS 서버의 최상위 네임서버로 DNS 해석부터 발생한 DNS 요청에 대하여 적절한 TLD 네임서버 정보를 반환한다.

 

2. Top-Level Domain(TLD) DNS Server

 - 도메인 등록 기관이 관리하는 서버로 Authoritative DNS 서버의 주소를 저장하고 안내하는 역할을 한다.
 - 도메인 판매 업체(가비아 등)의 DNS 설정이 변경되면 도메인 등록 기관으로 전달되기 때문에 어떤 도메인이 어떤 판매업체(가바이 등)에서 구매했는지 알 수 있다.

 

3. Second-Level Domain(SLD) DNS Server (Authoritative DNS Server)
 - 실제 개인 도메인과 IP 주소의 관계가 기록(저장, 변경)되는 서버다.
 - 그래서 권한의 의미인 Authoritative가 붙었으며 일반적으로 도메인/호스팅 업체의 네임서버를 말한다.

 

4. Anauthoritative DNS Server
 - 권한이 없는 DNS 서버로 리졸버 서버, 리컬시브 서버, 리커서가 있다.
 - DNS 서버는 도메인 네임 스페이스를 위한 권한 있는 DNS 서버와 권한이 없는 DNS 서버로 구분된다.
 - 위 1,2,3은 권한 있는 DNS 서버(Authoritative DNS Server)이다.
 - 네임 스페이스를 위한 권한 있는 DNS 서버는 IP 주소와 도메인 이름을 매핑한다.
 - 하지만 네임 스페이스를 위한 권한 없는 DNS 서버는 질의를 통해 IP 주소를 알아내거나 캐시한다(리졸버의 역할).

 

DNS Resolver 

 

DNS Resolver는 사용자의 컴퓨터나 네트워크에 위치한 DNS 클라이언트이다.

DNS Resolver는 사용자가 도메인 이름을 입력하면, 해당 도메인 이름을 IP 주소로 변환하기 위해 DNS 서버에 요청하여 질문하는 역할을 한다.

 

 

 

 

  • DNS 서버에 요청하여 조회한다는 것은 DNS 서버에 요청을 하고 반송되는 응답을 받는과정이 이루어진다는 것이다.
  • 이러한 과정은 DNS 서버에 대해 클라이언트로 동작한다고 볼 수 있으며 이 역할을 DNS Resolver가 수행한다.
  • 간단하게 DNS Resolver는 도서관의 어딘가에서 특정한 책을 찾아달라고 요청받는 사서로 생각할 수 있다.
  • DNS Resolver는 어떤 네임 서버에서 찾아야하는지, 이미 캐시 되어있는지 등 어떻게든 찾아서 클라이언트에게 찾았으면 찾은 것을 못 찾았으면 못 찾았다고 전달하는 역할을 한다.
  • 대표적인 것이 KT/LG/SK와 같은 ISP(통신사) DNS 있고, 브라우저 우회 용도로 많이 쓰는 구글 DNS, 클라우드플레어와 같은 Public DNS 서버가 있다.
  • 그래서 거의 Resolver = Recursive DNS Server = Local DNS Server(of ISP) = Recursor라고 생각하면 될 것 같다.

 

 

출처

https://velog.io/@zinukk/9kpyzbdt

반응형