DNS

네트워크 상의 도메인 네임을 IP 주소에 매핑해 주는 시스템으로, 초기에 호스트 네임 별로 IP 주소 정보를 시스템 안의 hosts.txt 파일로 관리하던 것이 관리 대상이 증가하고, 기술의 발달에 따라 분산 구조로 관리가 가능하도록 개발된 시스템이다.
DNS
도메인 네임은 a-z, A-Z, 0-9, 하이픈(-) 문자만 허용한다.


DNS Components


-       TLD: Top Level Domain. 루트 도메인 하위의 상위 도메인

Country code TLD

Generic TLD

국가적 성격

국제적 성격

kr, jp, us, uk, it

com, org, net, edu, gov, mil

 

-       SLD: Second Level Domain. 도메인 등록 조직, 국가 등 소속 기관의 성격으로 분류. gTLD의 하위 도메인일 경우, 최종 사용자가 정의한 도메인을 등록하여 사용한다.


-       Third Level Domain: SLD 하위 도메인으로, gTLD를 제외하고 최종 사용자에 의해 정의된 도메인

Sub Domain: 사용 목적에 따라 최종 사용자에 의해 정의된 도메인. a.b.com의 경우 a 가 서브 도메인에 해당한다.

 


Name Server

  도메인 네임 스페이스에 대한 정보를 저장하는 호스트. 일반적으로 네임 스페이스에 대한 정보를 파일 형태로 가지고 있고, 해당 존에 대한 권한을 가지고 있다. 마스터/슬레이브 구성의 네임 서버의 경우, 보조 네임 서버에서 마스터 네임 서버의 존 파일을 읽어 서비스 한다. 또한 캐싱 기능으로 TTL 값을 이용한다. 한번 들어온 질의에 대하여 응답을 저장해 두고, 같은 질의 시 해당 응답을 돌려준다.

 

Zone

네임 스페이스 내부의 일부분으로, 해당 존의 네임 서버는 도메인 파일이 아닌 존 파일을 읽는다.



Resolver 
   
OS에 포함된 네트워크 소켓 라이브러리에 포함된 프로그램으로, 브라우저 등 DNS 클라이언트의 요청을 네임 서버로 전달하고, 메인 네임과 IP 주소를 받아 클라이언트에 제공하는 기능을 수행.

 


-       Recursive DNS
일반적인 재귀적 네임 서버. 클라이언트로 최종 결과값을 반환하며, 리졸버로부터 질의 요청이 들어온 경우, 네임 서버가 직접 탐색하여 결과를 반환한다.


-       Iterative DNS
루트 네임서버, 일부 TLD 네임 서버의 형태. 자신이 직접 관리 하지 않는 질의는 응답이 가능한 네임 서버 목록으로 응답하는 방식.



-       PQDN (Partially Qualified Domain Name): 호스트 네임으로 시작하지만 루트 도메인까지 명시되지 않은 도메인.

-       FQDN (Fully Qualified Domain Name): 호스트 네임부터 네임 스페이스의 루트까지 표시된 도메인 네임. DNS 존 파일에서는 PQDN과 구분하기 위해 도메인 끝에 마침표를 붙여 FQDN임을 식별한다.



DNS zone, 도메인 네임과 관련된 정보를 갖는 레코드로, 각 값들이 이름과 값으로 바인딩 된다. 이 정보들이 DNS 네임 서버 내에 레코드 집합으로 구성된다. DNS 쿼리에 대해 1개 이상의 레코드 값을 포함한 DNS 메시지를 응답한다.

Record type

설명

NAME

VALUE

A

호스트 네임에 대한 IPv4 주소

호스트 네임

IP 주소

AAAA

호스트 이름에 대한 IPv6 주소

호스트 네임

IP 주소

NS

, 도메인 네임에 대한 권한 네임 서버의 호스트네 임

도메인 네임

호스트 네임

CNAME

별칭 호스트 네임에 대한 공식 호스트 네임

별칭 호스트 네임

공식 호스트 네임

SOA

DNS zone 시작. 모든 zone1개의 SOA 레코드를 가짐

Zone 이름, 마스터 네임 서버 이름, 관리자 메일 주소, 보조 네임 서버의 갱신 시간 등

PTR

포인터. IP 주소에 대한 도메인 네임(RDNS)

4.4.8.8.in-addr.arpa  google-public-dns-b.google.com

HINFO

호스트 정보

 

MX

메일 서버 별칭에 대한 호스트 네임

메일서버 별칭

호스트 네임

TXT

텍스트. 다양한 정보 기입

 

 

-       AXFR (Authoritative Zone Transfer)
마스터 네임 서버에서 보조 네임 서버로 전체 존 파일을 전송하는 것

-       IXFR (Incremental Zone Transfer)
존 파일의 이전 값과 비교하여 변경된 부분만 전송하는 것. 권한 서버가 요청 받은 내용이 부족할 경우 무시되고 AXFR 응답을 보낸다.


리소스 레코드는 도메인 네임에 설정할 수 있는 데이터 타입이다도메인 네임을 키 값으로 하여 이를 도메인 네임에 필요한 데이터를 설정하는데사전에 정의된 데이터 타입과 포맷으로 해야 한다도메인 네임과 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 사용한다.


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

HTTP - 6. Proxy  (0) 2018.07.24
HTTP - 5. Web Server  (0) 2018.07.24
HTTP - GET, PUT, POST  (0) 2018.07.24
HTTP - 3. URI, URL  (0) 2018.07.12
TCP/IP - 2. IP  (0) 2018.07.10

+ Recent posts