* 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 개수를 표시한다.
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)->