Network

DNS란 무엇이며 어떻게 동작하는가?

WoongIT 2022. 7. 27. 09:41
반응형
SMALL

DNS(Domain Name System)

  • TCP/IP 네트워크 서비스인 DNS가 등장
  • 네트워크 상에 존재하는 모든 PC는 IP 주소가 있다.
  • 그러나 모든 IP 주소가 도메인 이름을 가지는 것은 아니다.

 

DNS 서버의 종류

DNS 서버는 크게 권한 없는 네임 서버권한 있는 네임 서버로 나뉜다.

 

권한 없는 네임 서버 (non-Authoritative Name Server)

Recursive DNS Server (리커시브; 재귀)

  • 인터넷 사용자가 가장 먼저 접근하는 DNS 서버이다. 매번 3개의 DNS 서버를 거친다면 효율이 떨어지므로, 한 번 DNS 서버에 요청해 얻은 데이터를 일정 기간 동안 캐시라는 형태로 저장
  • 직접 도메인과 IP 주소의 관계를 기록/저장/변경하지 않고 캐시만을 보관하기 때문에, Authoritative와 비교되는 의미로 non-Authoritative, Recursive라는 이름을 붙었다.

 

권한 있는 네임 서버 (Authoritative Name Server)

Root DNS Server

  • ICANN이 직접 관리하는 서버로,
  • TLD(최상위 도메인) DNS 서버 IP 주소들을 저장해 두고 안내하는 역할을 한다.

TLD (최상위 도메인) DNS Server

  • 도메인 등록 기관이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해 두고 안내하는 역할을 한다.

Authoritative DNS Server (어쏘러테이티브; 권한있는)

  • 실제 개인 도메인IP 주소의 관계기록/저장/변경되는 서버이다.

 

DNS 리소스 레코드

  • DNS 서버데이터베이스 서버의 한 유형이며
  • 클라이언트로부터 질의를 받았을 때 그에 맞는 데이터를 응답해야 한다.
  • 데이터베이스의 한 항목(Row)을 DNS 서버에서는 리소스 레코드라고 부른다.

 

도메인(Domain)

  • 통상적으로 도메인의 가장 끝에 있는 점(.)은 생략되어 있다.
  • 이것을 `Root`도메인이라고 부른다.
  • Root 도메인의 직속 하위 도메인Top-level 도메인이라고 부르며 com, net, co .kr 등이 있다.
  • Top-level 도메인 직속 하위 도메인은 Second-level도메인이라고 부르며
  • 그 직속 하위 도메인을 Sub도메인이라고 부른다.

 

DNS의 규칙

  • 직속 하위 레벨의 DNS 서버 리스트를 알고 있어야 한다.
  • 모든 컴퓨터는 적어도 Root 도메인의 DNS 서버를 알고 있어야 한다.

 

질의메시지

  • 클라이언트가 DNS 서버에게 질의를 보낼 때, 도메인 주소만 보내는 것이 아니라 다음과 같은 정보도 포함해서 보낸다.
  • Query Name String: 요청하고자 하는 도메인 이름
  • Type: 질의의 데이터 타입. 타입에 따라 응답 정보의 내용이 달라진다.
  • Class: 현재는 인터넷만 사용하므로 기본으로 IN 값을 보낸다.

 

A 레코드 (A Record)

  • DNS에 저장되는 정보의 타입으로 도메인 주소서버의 IP 주소직접 매핑시키는 방법
  • IP 직통 방법이라 접속이 빠르다
  • 장점) 한번의 요청으로 찾아갈 서버의 IP 주소를 한번에 알 수 있다
  • 단점) IP 주소가 자주 바뀌는 환경에서는 조금 번거로울 수 있다

 

CNAME (Canonical Name)

  • 도메인 주소를 또 다른 도메인 주소로 매핑 시키는 형태의 DNS 레코드 타입이다.
  • 장점) IP 주소자주 변경되는 환경에서 유연하게 대응
  • 단점) 실제 IP 주소를 얻을 때까지 여러번 DNS 정보를 요청 → 성능저하
    naver.com 192.168.0.1
    dev.plusblog.co.kr 172.17.0.1
    develop.plusblog.co.kr dev.plusblog.co.kr.
  1. 사용자develop.plusblog.co.kr 주소를 요청
  2. DNS 서버dev.plusblog.co.kr을 리턴
  3. 사용자는 다시 dev.plusblog.co.kr 정보를 DNS 서버에 요청
  4. DNS 서버는 이제 172.17.0.1 을 리턴
A 도메인에 대한 IP 정보를 담고 있습니다.
ANY 도메인에 대한 모든 정보를 질의합니다. (DNS 증폭 DRDOS 공격에 악용)
CNAME 특정 A레코드에 대한 별칭을 지정한다.
MX Mail eXchange의 약자
메일 서버에 대해 질의합니다. (해당 Domain의 Mail서버 정보)
NS Name Server에 대한 질의를 합니다.
SOA 해당 Domain 관리 권한 및 Zone Transfer(영역 전송)과 관련된 정보가 들어 있다.
HINFO Host에 대한 정보의 질의를 합니다.
PTR 역방향 조회에 사용되는 레코드, 특정 IP주소에 대한 FQDN 정보를 가지고 있다.

 

DNS 처리 순서

  1. 브라우저에서 Nesite.com을 검색한 뒤, 사용하고 있는 통신사인 KT DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청한다. (브라우저 기본 DNS 설정은 통신사 DNS 서버이다.)
  2. ISP 서버에서는 캐시 데이터가 없다는 것을 확인하고 Root DNS 서버에게 어디로 가야 하는지 요청한다. (만약 캐시가 있다면 8번 단계로 건너뛴다.)
  3. Root DNS 서버TLD DNS 서버 주소만 관리하므로 ***.com 도메인을 보고, com 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내한다.
  4. ISP 서버com 서버에게 어디로 가야 하는지 다시 요청한다.
  5. com 서버가비아 DNS 서버해당 도메인이 관리되고 있다는 사실을 확인하고, 가비아 DNS 서버 주소를 안내한다.
  6. ISP 서버가비아 서버에게 다시 요청한다.
  7. 가비아 서버요청 받은 도메인 주소의 IP 주소를 확인하고 알려준다. 동시에 ISP 서버해당 정보를 캐시로 기록한다.
  8. ISP 서버브라우저에게 알아 낸 IP 주소를 안내한다.

 

요약

DNS란 ?

  • TCP/IP 네트워크 상에서 사람이 기억하기 쉽게 문자로 만들어진 도메인숫자로 된 IP 주소바꾸는 서버DNS라고 한다.

DNS 서버에게 IP 주소를 요청할 때 UDP를 사용하는 이유는?

  • DNS는 신뢰성보다 속도가 더 중요하고, 많은 클라이언트를 수용하는 것을 필요로 한다.
  • 따라서 속도가 빠르고, 연결 상태를 유지하지 않고 정보 기록을 최소화하여 많은 클라이언트 수용이 가능한 UDP를 사용한다.

DNS 서버의 종류에 대해 설명하라.

  • Root DNS Server : ICANN이 직접 관리하는 서버,
  • TLD(최상위 도메인) DNS 서버 IP 주소들을 저장해 두고 안내
  • TLD DNS Server, : 도메인 등록 기관이 관리하는 서버로,
  • Authoritative DNS 서버 주소를 저장해 두고 안내하는 역할을 한다.
  • Authoritative DNS Server : 실제 개인 도메인IP 주소의 관계기록/저장/변경되는 서버
  • Recursive DNS Server : 인터넷 사용자가 가장 먼저 접근하는 DNS 서버, 캐시라는 형태로 저장

DNS 서버를 여러 종류로 나누는 이유는?

  • 존재하는 도메인 수가 많기 때문에 하나의 DNS 서버만 사용한다면 성능, 유지 관리 등 많은 문제가 생김
  • 따라서 DNS 서버 종류를 계층화해 트래픽을 분산하고 유지 및 관리
반응형
LIST