DNS(Domain Name System)

Network/Network Theory 2015. 12. 12. 13:18
<DNS(Domain Name System)>
호스트의 이름(URL)과 IP주소를 매핑하여 주는 거대한 분산 네이밍 시스템이다. ARPANET 시절(옛날)에는 일정 주기마다 호스트 명단 파일(HOSTS.TXT)을 받아서 사용하였다.
인터넷의 규모와 호스트 수가 증가함에 따라 현재는 RFC 1034에 새로운 명명 체제에 대한 구현을 공식 발표하였다.
네임 스페이스 계층 구조, 분산 데이터베이스, E-mail 라우팅 개선에 주안점을 두고 탄생하였다.


Root Domain은 Top level에 대한 정보를, Top level은 하위 도메인에 대한 정보를 유지/관리하는 구조이다.
예를 들어, naver.com 도메인은 com 네임서버에 등록되어 있고, www.naver.com은 naver.com 네임서버에 등록/관리 된다.

<도메인 네임 변환 과정>
1. Client상의 응용이 'www.skku.ac.kr'에 접속하기 위해 자신의 Local Name Server에 질의

2. Local NS는 먼저 자신의 캐쉬에 자료가 있는지 확인한 후 발견되지 않을 시Root NS에 질의를 던짐

3. NS 'www.skku.ac.kr'의 자료를 갖고 있지 않으므로, kr 도메인을 관리하는 NS를 참고하라는 답변을 보냄

4. Local NS는 다시 kr NS에 질의를 던지고, kr NS는 다시 ac.kr NS를 반환

5. Local NS ac.kr NS에 질의하고 마찬가지고 skku.ac.kr NS를 참고하라는 답변을 보냄

6. Local NS는 다시 skku.ac.kr NS에 질의하고 skku.ac.kr NS는 서브도메인에 대한 자료를 관리하는 실제 NS 이므로, 'www.skku.ac.kr'에 대한 IP주소인210.94.224.184를 반환
 
7. 마지막으로, Local NS Client에게 결과를 전송


<DNS 헤더구조>



크기는 12 바이트이며, 질의와 응답 메시지 모두 같은 형태

식별자, 플래그, 질의 레코드 수, 응답 레코드 수, 권한 레코드 수, 추가 레코드 수 필드가 있다.

 

1. 식별자 (16비트)

클라이언트의 질의에 대한 응답을 매칭시키기 위해 사용

 

2. 플래그 (16비트)

8개의 서브 필드로 구성

① QR(query/response) : 1 비트로 구성, 0 이면 질의, 1 이면 응답을 나타냄

② OpCode : 4비트로 구성, 질의나 응답의 종류를 나타냄

③ AA(authoritative answer) : 1비트로 구성, 1일 경우 네임 서버가 권한이 인정된 서버임을 나타냄

④ TC(truncated) : 1비트로 구성, 1일 경우 응답이 512바이트 이상이라서 512바이트로 잘리어 졌음을 나타냄 (UDP 서비스에서 사용)

⑤ RD(recursion Desire) : 1비트로 구성, 1일 경우 클라이언트가 반복적인 응답을 원함

⑥ RA(recursion available) : 1비트로 구성, 응답에서 지정될 경우 반복적인 응답이 가능

⑦ Reserved  : 000으로 지정된 3비트 서브 필드

⑧ rCode : 4비트로 구성, 응답에 들어가는 오류 상태를 나타냄

 

3. 질의 레코드의 수(16비트)
메시지의 질의 섹션내의 질의 수

 

4. 응답 레코드의 수(16비트)
응답 메시지의 응답 섹션에 있는 응답 레코드의 수를 포함

 

5. 권한 레코드의 수(16비트)
응답 메시지의 권한 섹션내의 권한 레코드의 수를 포함

 

6. 추가 레코드의 수(16비트)
응답 메시지의 추가 섹션에 있는 추가 레코드의 수를 포함

헤더 외의 섹션
- 질의 섹션 : 하나 이상의 질의 레코드들로 구성
- 응답 섹션 : 서버로부터 클라이언트로의 응답을 포함
- 권한 섹션 : 질의에 대한 권한이 있는 서버에 대한 정보를 포함
- 추가적인 정보 섹션 : 질의 해결에 도움이 될 만한 추가적인 정보를 제공
예) 권한이 있는 서버의 도메인 네임을 제공하면서 동시에 IP 주소를 추가 정보 섹션에서 제공


'Network > Network Theory' 카테고리의 다른 글

IPv6 헤더구조  (0) 2015.12.12
TELNET  (0) 2015.12.12
포트 번호(Port Number)  (0) 2015.12.11
서브넷팅(Subnetting), 슈퍼넷팅(Supernetting)  (0) 2015.12.11
IP주소 체계 (Class A, Class B, Class C, Class D)  (0) 2015.12.11
posted by 경원구