본문 바로가기
CS/Network

[Network] DNS란?

by 원만사 2021. 12. 9.
반응형

도메인 네임 시스템(Domain Name System, DNS)

 DNS는 인터넷 전화번호부와 같다. 사람은 naver.com이나 google.com과 같은 도메인 이름을 통해서 인터넷에 접속한다. DNS는 브라우저가 인터넷 자원을 로드할 수 있도록 해당 도메인 이름을 IP 주소(192.168.1.0과 같은)로 변환한다.

 

 사람은 숫자와 영문으로 이루어진 복잡한 IP 주소를 기억하지 않고 기억하기 쉬운 도메인 이름을 통해서 서버에 접속한다.

 

 DNS는 이러한 도메인 이름을 IP 주소로 변환하고 라우팅 정보를 제공하는 분산형 데이터베이스 시스템이다.

 

DNS 용어

  1. 재귀적 질의(Recursive Query)
    - 사용자 호스트가 Recursive 네임서버로 질의할 때 사용되는 방식으로 Recursive 네임서버로 대상 도메인의 리소스 레코드 정보를 조회해어 응답해 달라는 질의를 의미한다.
    - Recursive 네임서버는 자신의 캐시 데이터를 조회한 후 데이터가 있으면 사용자 호스트로 그 결과를 반환하고 데이터가 없으면 최상위 Root 네임서버부터 질의 대상 도메인 네임서버까지 반복적 질의를 수행한 후 그 결과를 사용자 호스트에 반환한다.

  2. 반복적 질의(Iterative Query)
    - Recursive 네임서버가 도메인을 관리하는 각 네임서버로 질의할 때 사용하는 방식이다
    - 최상위 Root 네임서버부터 계층구조에 따라 대상 도메인 네임서버까지 각 네임서버가 응답하는 위임된 네임서버 정보에 따라 순차적으로 반복하여 진행하는 질의를 의미한다.

DNS 서버의 종류

 DNS 서버는 여러 종류로 나뉘어 관리되고 있다. 하나의 서버에서 관리하지 않는 이유는 도메인의 수가 굉장히 많기 때문이다. 그렇기 때문에 DNS 서버 종류를 계층화해서 단계적으로 처리하는 과정을 거친다.

  • Root DNS Server : ICANN(국제인터넷주소관리기구)이 직접 관리하는 서버로, TLD DNS 서버 IP들을 저장해주도 안내하는 역할을 한다.

  • TLD(최상위 도메인) DNS Server : 도메인 등록 기관(Registry)이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해두고 안내하는 역할을 함. 어떤 도메인 묶음이 어떤 Authoritative DNS Server에 속하는지 알 수 있는 이유는 도메인 판매 업체의 DNS 설정이 변경되면 도메인 등록 기관으로 전달되기 때문이다.

  • Authoritative DNS Server : 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버. 그래서 권한의 의미인 Authoritative가 붙는다. 일반적으로 도메인/호스팅 업체의 '네임서버'를 말하지만, 개인 DNS 서버 구축을 한 경우에도 여기에 해당한다.

  • Recursive DNS Server : 인터넷 사용자가 가장 먼저 접근하는 DNS 서버. 위 3개의 서버를 거친 후 얻은 데이터를 일정 기간 (TTL / Time To Live)동안 캐시라는 형태로 저장해 두는 서버이다. 직접 도메인과 IP 주소의 관계를 기록/저장/변경하지는 않고 캐시만을 보관하기 때문에, Authoritative와 비교되는 의미로 반복의 Recursive가 붙는다. 

 브라우저는 캐시가 저장된 Recursive를 사용하고, 실제 네임서버를 설정하는 곳은 Authoritative 서버라는 점을 알아두자.

 

DNS 동작 과정

  1. 브라우저에서 Nesite.com을 검색하고, 사용하고 있는 통신사인 KT DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청한다.

  2. ISP 서버에 캐시 데이터가 없다는걸 확인하고 루트 DNS 서버에게 어디로 가야 하는지 요청함 (캐시가 있다면 8번으로 건너뛴다)
  3. 루트 서버는 TLD DNS 서버 주소만 관리하기 때문에, ***.com 도메인을 보고 COM 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내한다.
  4. ISP 서버는 COM 서버에게 어디로 가야 하는지 다시 요청한다.

  5. COM 서버는 가비아 DNS 서버에서 해당 도메인이 관리되고 있는 걸 확인하고 안내한다.

  6. ISP 서버는 가비아 서버에게 또 다시 요청한다.

  7. 가비아 서버는 "Nesite.com = 12.123.123.123"이라는 정보를 확인하고 해당 IP 주소를 알려준다. 동시에 ISP 서버는 해당 정보를 캐시로 기록해 둔다.

  8. ISP 서버는 브라우저에게 12.123.123.123 주소를 안내한다.

  9. 브라우저는 12.123.123.123 IP 주소를 갖고 있는 호스팅 서버에게 웹 사이트를 출력하라고 요청한다.

  10. 해당 웹 사이트 정보가 웹 브라우저에 출력된다.

 

참고

- DNS란 | Cloudflare | Cloudflare

- DNS (Domain Name System) (tistory.com)

- DNS란 뭐고, 네임서버란 뭔지 개념정리 | 살살살림 (gentlysallim.com)

 

 

반응형

댓글