본문 바로가기

Programming & Network/Network

DNS(Domain Name System)

About DNS

  • 웹사이트에 접속 할 때 우리는 외우기 어려운 IP 주소 대신 도메인 이름을 사용한다.
  • 도메인 이름을 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요하다.
  • 이러한 과정, 전체 시스템을 DNS(도메인 네임 시스템)라고 한다.
  • 이러한 시스템은 전세계적으로 약속된 규칙을 공유한다.
  • 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 ‘권한’을 부여한다.
  • DNS는 이처럼 상위 기관과 하위 기관과 같은 ‘계층 구조’를 가지는 분산 데이터베이스 구조를 가진다.

DNS 구성 요소

  1. 도메인 네임 스페이스(Domain Name Space)
  2. 네임 서버(Name Server) = 권한 있는 DNS 서버
  3. 리졸버(Resolver) = 권한 없는 DNS 서버
  • 우선 “이 도메인 이름은 이 IP 주소이다”라는 ‘텍스트’를 저장하는 데이터베이스가 필요하다.
  • 그리고 분산된 데이터가 어디 저장되어 있는지 찾을 프로그램들이 필요하고 찾았으면 해당 IP 주소로 이동할 프로그램(브라우저 등)이 필요하다.
  • 도메인 네임 스페이스라는 규칙(방법)으로 도메인 이름 저장을 분산한다.
  • 네임 서버(DNS 서버와 같은 말, 그런데 리졸버 서버 등 시스템 안에서 다른 역할을 하는 서버도 있기에 그냥 DNS 서버라고 하는 것보다 네임 서버라고 하는게 더 의미가 전달되는 듯)가 해당 도메인 이름의 IP 주소를 찾는다.
  • 리졸버가 DNS 클라이언트 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능을 수행한다.
  • 어떤 네임 서버에서 찾아야하는지, 이미 캐시 되어있는지 등 어떻게든 찾아서 클라이언트에게 찾았으면 찾은 것을 못 찾았으면 못 찾았다고 전달하는 역할을 한다.
  • 리졸버는 단말에 구현하는 것은 무리수라 보통은 리졸버가 구현된 네임 서버의 IP 주소만을 파악한다.
  • 대표적인 것이 KT/LG/SK와 같은 ISP(통신사) DNS 있고, 브라우저 우회 용도로 많이 쓰는 구글 DNS, 클라우드플레어와 같은 Public DNS 서버가 있다.
  • 그래서 거의 Resolver = Recursive DNS Server = Local Server(of ISP) = Recursor
  • 어떤 자료에서는 리졸버라는 요소를 생략하기도 하는 듯하다.




참조 : 01

'Programming & Network > Network' 카테고리의 다른 글

CIDR(Classless Inter-Domain Routing)  (0) 2023.09.07
UTM (Unified Threat Management)  (0) 2023.09.06
OSI 7 계층  (0) 2023.08.29
X-Forwarded-For (XFF)  (0) 2023.08.23
About Cloud network tools  (0) 2023.01.05