네트워크/네트워크

DNS(Domain Name System)

비니화이팅 2018. 1. 17. 10:40

* DNS

- 도메인 이름과 IP주소를 매핑시켜주는 거대한 분산시스템


[DNS 헤더]

Transaction ID

QR

Opcode

AA

TC

RD

RA

Z

RCODE

QDCOUNT

ANCOUNT

NSCOUNT

ARCOUNT


① Transaction ID(ID)

- 클라이언트가 보낸 질의와 수신된 응답 간 일치 여부를 식별한다.

- 16 byte 증가시키면서 사용한다.


② QR

- DNS Query(0)인지 Response(1)인지를 나타낸다.


③ Opcode

- Query의 유형을 정의한다.


④ Authoritative Answer(AA)

- 이 값이 응답에 설정되면 응답이 도메인상에서 인가된 Name Server(공식 DNS 서버)로부터의 응답이라는 것을 나타낸다.


⑤ Truncated(TC)

- DNS 응답이 정해진 길이(512Byte)를 초과하여 잘렸는지 표시한다.

- 클라이언트가 잘린 DNS응답을 보게 되면 TCP를 통해 다시 쿼리를 전송한다.


⑥ Recursion Desired(RD

- 재귀적인 Query가 필요하진 여부를 정의한다.

- 기본적으로 필요(1)로 되어있음


⑦  Recursion Available(RA)

- 응답한 DNS Server가 재귀질의를 사용 가능한지를 표시한다.

- Response시에만 표시된다.


⑧ Z

- 예약된 필드로 항상 0으로 설정되어있다.

- 가끔RCODE 필드의 확장으로 사용된다. 


⑨ Response code(RCode)

- 응답에서 오류가 존재하는지를 표시한다.


⑩ Question Count(QDCOUNT)

- Question Section의 개수를 표시한다.

- 일반적으로 Query패킷 당 하나의 Question을 볼 수 있다.


⑪  Answer Count(ANCOUNT)

- Answer Section의 개수를 표시한다.


⑫ Name Server Count(NSCOUNT)

- Authority Section의 개수를 표시한다.


⑬  Additional Records Count(ARCOUNT)

- Additional Section 개수를 표시한다.


[DNS 메시지 구조]

Header

Question

Answer

Authority

Additional


① Header

- DNS 헤더를 의미한다.


② Question

-  DNS Server에 송신될 하나 이상의 정보에 대한 조회를 포함하는 가변 크기의 Section이다.


③ Answer

- 조회에 응답하는 하나 이상의 리소스 Record를 전송하는 가변 크기 Section이다.


④ Authority

- 변환 과정을 계속하는 데 사용할 수 있는 인가된 Name Server를 가리키는 자원 Record를 포함하는 가변 크기 Section이다.


⑤ Additional

- 반드시 응답할 필요가 없는 조회에 관련된 부가적인 정보를 포함하는 자원 Record를 포함하는 가변 크기 Section이다.


[DNS 패킷 분석]

- 다음은 DNS Query와 Response를 캡처한 것이다.


(1)->


(2)->