CS/네트워크

[네트워크] 애플리케이션 계층 3 - DNS, TLD, Authoritative, DNS 캐싱, DNS 레코드, DNS 계층화

always-dev 2022. 8. 8.
반응형

DNS 란?

DNS(Domain Name System)는 어떠한 호스트에 대한 하나의 식별자 입니다.

IP 주소도 호스트에 대한 하나의 식별자 입니다.

DNS는 사람이 읽기 편하게 되어 있지만 IP 주소는 그렇지 않습니다.

결국 해당 호스트 네임으로 매핑되는 IP 주소를 가져올 수 있습니다.

즉, DNS는 호스트 네임을 IP주소로 변환해주는 서비스입니다.

 

 

호스트 & 도메인

하나의 도메인이 있다면

하나의 도메인에 여러 개의 호스트를 등록할 수 있습니다.

그 호스트는 IP와 매칭이 됩니다.

mail.naver.com이 있다면

  • 호스트 : 네트워크에 연결된 하나의 장치
  • 호스트 네임 : 각 네트워크 장치(컴퓨터)에 할당된 이름
    • mail
  • 도메인 네임 : 네트워크에 부여된 이름

mail.naver.com에 접속하려할 때

도메인 부분이 네이버 네트워크로 안내하고

호스트 부분이 정확한 지점으로 안내해줍니다.

[www.naver.com](<http://www.naver.com>) (123.123.123.122)
[mail.naver.com](<http://mail.naver.com>) (123.123.123.123)
[calendar.naver.com](<http://calendar.naver.com>) (123.123.123.124)

이런 식으로 각각 IP가 다르며

www, mail, calendar을 호스트로

naver.com을 도메인으로 봅니다.

 

 

DNS 서비스

  • 실제로 접속하기 위해서는 결국 IP 주소가 필요합니다.
  • 라우터는 고정 길이의 계층 구조를 가진 IP주소가 필요하기 때문입니다.
  • 때문에 호스트 네임을 IP주소로 변환해주는 디렉티브 서비스가 필요합니다.

 

 

DNS 프로토콜은 UDP 상에서 수행됩니다.

DNS는 오차 없이 정보가 신뢰성 있어야돼서 TCP를 사용할 것 같은데 왜 UDP를 사용할까요?

TCP를 이용하면 필요 없는 리소스를 낭비하며 결국 오버헤드가 발생합니다.

실제로 DNS는 40byte정도의 크기라 유실된다고 하여도 다시 UDP를 이용하여 시도하는게 더 낫습니다.

 

 

 

DNS의 동작 원리

DNS의 분산 계층 데이터베이스

DNS 서버는 계층 형태로 되어 있습니다.

만약 DNS 서버가 단일 서버 였다면 많은 단점이 생기게 됩니다.

 

단일 DNS 서버의 단점

  1. 네임 서버가 고장난다면 전세게 인터넷이 작동하지 않습니다.
  2. 전세계의 인터넷 사용자들을 홀로 감당해야 합니다.
  3. 지구 반대편의 이용자는 지구 반대편까지의 거리를 여행하는 질의(Query)를 날려야 합니다.

 

분산 계층 데이터베이스

분산 계층을 크게 세 유형으로 나룰 수 있습니다.

  1. Root DNS Server
  2. TLD DNS Server (Top Level Domain)
  3. Authoritative DNS Server

 

 

DNS Caching

각 단말은 설정되어 있는 DNS가 있는데 이 DNS를 “Local DNS”라 부릅니다.

Local DNS에서 캐시를 확인하여 요청받은 호스트 네임이 있을 시에 바로 단말(PC)에 IP 주소를 줍니다.

만약 없을 시에는 Root DNS에 물어보게 됩니다. 이후 TLD, 책임 계층으로 내려가며 해당 호스트 네임을 발견하면 Local DNS에 호스트 네임에 대한 IP 주소를 캐싱합니다.

 

 

DNS Caching 장점

지연 성능 향상과 네트워크의 DNS 메시지 수를 줄일 수 있습니다.

 

 

DNS 레코드

DNS 서버들은 호스트 네임을 IP 주소로 매핑하기 위한 자원 레코드 (resource record, RR)를 저장합니다.

Name                Value                Type                TTL
----------------------------------------------------------------
.com                DNS.a.com             NS                
DNS.a.com           123.123.123            A    
  • Type = A
    • Name은 호스트 네임이고 Value는 호스트 네임에 대한 IP 주소입니다.
  • Type = NS
    • Name은 도메인이고 Value는 책임 DNS 서버의 호스트 네임이다.
반응형

댓글