DNS

Domain Name System(server)


네트워크 상의 도메인 이름을 IP 주소를 매핑해 주는 시스템초기에 호스트 네임 별로 IP 주소 정보를 시스템의 hosts.txt 파일로 관리하던 것이 기술이 발달하고 관리 대상이 증가함에 따라분산 구조로 관리가 가능하게 개발된 시스템이다.

DNS Components

Domain Name Space

DNS에서 사용할 데이터 자료구조를 정의하는 항목이다도메인 네임 스페이스는 도메인 네임을 중복되지 않게 네임을 생성하여 사용하도록 정의된 구성체계이다최상위 루트 도메인을 시작으로 트리 구조의 네임 체계를 이루며, DNS에서 하나의 도메인 네임은 유일한 값이다
  
상위 노드와 그 노드 아래로 연결된 공간을 모두 상위 노드의 도메인이라고 한다노드에 레이블을 붙여 노드를 구분하는데 루트 도메인 계층인 루트 도메인의 레이블은 null’이다모든 도메인은 루트 도메인으로부터 시작한다루트 도메인 네임은 하위 도메인들을 분배할당한다.

TLD (Top Level Domain)

 루트 도메인 계층 하위에 해당하는 계층으로국가 할당 도메인과 국제적 업체 할당 도메인으로 분류된다.

     -country code TLD: 국가를 나타내고하위 도메인들은 그 성격을 나타내는 도메인 네임을 사용한다.
-generic TLD: 국가 단위가 아닌국제적 단위로 사용되는 도메인으로전 세계를 기준으로 비영리상업적지역별 등 목적에 따라 분류된다


Second Level Domain

도메인 등록 조직이나 국가에 속하는 기관의 성격으로 분류된다. gTLD 하위의 경우 최종 사용자(개인이나 조직) 호스트 네임을 사용하여 도메인을 등록할 수 있다.


최종적으로 호스트 네임과 도메인 네임을 합쳐(Fully Qualified Domain Name) 완성된다. FQDN이 아닌 부분적인 경로만으로 식별 가능한 Partially Qualified Domain Name을 사용하기도 한다이는 하나의 도메인 안에서만 사용할 수 있으며, w.naver.com 이라는 FQDN에서 w PQDN이 된다일반적으로 루트 도메인의 마지막에 오는 점은 주로 생략하며, DNS에서는 마지막에 오는 점을 사용하면 FQDN으로 인식한다.
  
레이블은 기업의 이름 등 특정 단어로 만든다. ccTLD 하위의 경우에는 호스트와 조직의 성격을 나타내는 도메인이 위치한다.


Sub Domain

SLD에서 최종 사용자가 정의한 도메인일 경우서브 도메인으로서사용자 필요에 따라 만든 하위 도메인이다사용자 목적에 따라 도메인 네임 스페이스를 분할하여 웹 서버 도메인을 www.naver.com, café.naver.com, ns1.naver.com 등으로 나누어 사용할 수 있다.

Third Level Domain

SLD 하위 도메인으로, 사용자가 등록할 도메인



Name Server

도메인 zone에 속하는 노드들의 정보를 리소스 레코드로 정의하여 저장한 호스트를 네임 서버라고 하며, 1개 이상이 존재한다. 해당 도메인 존의 정보를 가진 마스터 네임 서버와 보조로 슬레이브 네임 서버가 있다. 해당 도메인 존에 속하는 네임에 대한 질의가 올 경우 해당 도메인 존의 하위 네임 서버 주소를 응답하여 질의를 유도한다.


Resolver

웹 브라우저 등의 DNS 클라이언트의 요청을 name server로 전달하고도메인 네임과 IP 주소를 받아 클라이언트에게 제공하는 기능을 수행한다. DNS 서버에 resolver 기능을 구현하고클라이언트에는 resolver routine을 구현하여 단말 시스템 자원 한계 등의 제약을 극복한다. Stub resolver 각 네임 서버의 구조를 파악할 필요 없이 resolver가 구현된 네임 서버의 IP 주소만 파악하면 된다


Resource Record (RR)

 리소스 레코드는 도메인 네임에 설정할 수 있는 데이터 타입이다도메인 네임을 키 값으로 하여 이를 도메인 네임에 필요한 데이터를 설정하는데사전에 정의된 데이터 타입과 포맷으로 해야 한다도메인 네임과 IP 주소 매치를 위해 사용된다

  -A 리소스 레코드: Host Address란 의미로 도메인 네임에 매치되는 IPv4를 정의한다

Name 

Class 

TTL 

Type 

Address 

www.naver.com 

IN 

 

202.xxx.xx.xxx 

Ø  Class: IN(InterNet) 외에도 있지만 현재 대부분 IN사용
  TTL: 
요청된 리소스 리코드는 TTL에 명시된 시간 소요 후 삭제되어 재요청이 필요생략 시 SOA 리소스 레코드에 정의된 default TTL 적용 

Ø  NS (Name Server) 리소스 레코드도메인 존의 네임서버를 정의

Ø  CNAME 리소스 레코드: Canonical Name. 도메인 네임에 별칭을 매치해당 도메인 네임에 대한 리소스 레코드를 동일하게 접근하여 사용하므로정보를 CNAME이 상속받는다
   ex) www.naver.com IN CNAME naver.com 
참조 시 naver.com 리소스 레코드를 참조하여 정보를 반환한다

-SOA 리소스 레코드: Start of a zone Of Authority. 존에 대한 권한 시작을 의미하나의 도메인 존에 반드시 하나의 SOA가 존재하는 특수 레코드로도메인 존의 default 설정과 마스터 네임 서버 지정 등에 사용된다

Name 

TTL 

Class 

Type 

Master NS 

Responsible person 

Serial; Refresh; Retry; Expire; Minimum; 

naver.com 

 

IN 

SOA 

ns.naver.com 

admin.ns.naver.com 

(

Name: 상위 도메인 존에게 위임 받은 도메인 존의 도메인 네임 
  
마스터 네임 서버: NS 리소스 레코드와 A 리소스 레코드를 통해 도메인 존에 대한 리소스 레코드 생성변경삭제 등의 권한을 위임 받음
  Responsible person: 
도메인 존 관리 담당자 메일 주소 
  Serial: 
도메인 존 파일에 대한 버전 정보정보 변경 시 증가이 값을 기반으로 슬레이브 네임 서버가 마스터 네임서버의 최신 리소스 레코드 정보를 획득한다
  Refresh: 
슬레이브 네임 서버가 마스터 네임서버에 도메인 존 파일 버전을 질의하는 초단위 시간으로해당 시간만큼 대기 후 마스터에 질의 
  Retry: 
슬레이브 네임 서버가 마스터 네임 서버에 질의 실패 시 재시도 하는 초 단위 시간으로 Refresh 보다 작은 값 작성 
  Expire: 
슬레이브 네임 서버가 질의 실패 시 마스터로부터 얻은 정보의 유효 시간 초 단위 작성해당 도메인 존에 대한 질의 무시 
  Minimum: 
도메인 존 파일에 있는 리소스 레코드들의 default TTL 값 작성(초 단위

SOA 끝 필드의 각 설정 값들은 기본 초 단위이며, D, H, W로 각각 일시간주로 작성 가능하다.


-MX 리소스 레코드: 수신 메일  서버를 정의. 호스트명이나 도메인 네임으로만 정의가 가능하다. IP 주소 입력 시 도메인으로 인식하여 존재하지 않는 도메인이 되어버린다. 레코드 입력 시 마지막에 . 붙인 FQDN 사용한다.


DNS work flow


how-route-53-routes-traffic

ref: https://aws.amazon.com/ko/route53/what-is-dns/


1. Enter the domain on web browser

2. Find the IP address of the domain from local - ISP DNS resolver

3. ISP DNS resolver requests the IP address to DNS root name server.

   DNS root server replies the TLD (Top Level Domain) server.

4. Try the domain to TLD server. (ex. .com, .kr, .jp, .net...)

   TLD server replies the name server of the domain.

5. Request to the name server

6. Name server response with IP address of the domain

7. DNS resolver response with the IP address to browser

8. Browser request to the webserver with IP address, port, and URL

9. Web server responses to the end user

'System Engineering > Network' 카테고리의 다른 글

About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
포트 미러링  (0) 2018.05.24
Difference between each layer  (0) 2018.05.16
CCNA note  (0) 2017.03.20

+ Recent posts