DNS는 UDP나 TCP를 통해 실행할 수 있으며, TCP를 이용하는 경우는 Zone 전달이나 큰 DNS 쿼리를 보낼 때 이용 하며, 일반적으로 UDP를 이용하는 DNS 쿼리/응답 패킷만 볼 수 있다. DNS 메시지의 형태는 기본적으로 다음과 같이 구성 되어 있으며, 생략되는 경우도 있다.
Header |
Question |
Answer |
Authority |
Additional |
[그림.1 DNS 메시지 기본 형태]
ID |
|||||||
OR |
Opcode |
AA |
TC |
RD |
RA |
Z |
RCODE |
QDCOUNT |
|||||||
ANCOUNT |
|||||||
NSCOUNT |
|||||||
ARCOUNT |
[그림.3 DNS 표준 Query]
Opcode |
Name |
0 |
Query |
1 |
Inverse Query |
2 |
Status |
3 |
Unassigned |
4 |
Notify |
5 |
Update |
6 – 15 |
Unassigned |
Number |
Name | Description |
0 | NoError |
오류 없음 |
1 |
FormErr |
형식 오류 (쿼리가 잘못된 경우) |
2 |
ServFai |
서버 실패 (DNS 서버 자체의 문제로 실패) |
3 |
NXDomain |
네임 오류 (도메인 네임이 존재하지 않는 경우) |
4 |
NotImp |
DNS 서버가 Query를 지원하지 못함 |
5 |
Refused |
거부 (정책적인 이유로 Query를 거절함) |
Name |
Type |
Class |
weather05naver03com00으로 표시가 된다. (구분하기 쉽게 영문자는 헥사코드로 변경하지 않았다.) 아래 [그림.8]을 보면 이해하기 쉬울것이다.
Type |
Value and Meaning |
A |
Host Address |
NS |
Authoritative Name Server |
MX |
Mail Exchange |
HINFO |
Host Information |
PTR |
Domain Name Pointer |
[표.3 Type 값]
Class |
Name |
IN |
Internet Class |
CS |
CSnet Class |
CH |
Chaos Class |
HS |
HeSiod Class |
Name |
Type |
Class |
TTL |
RDLength |
Rdata |
예를 들어 사용자가 DNS 서버에 등록되지 않은 www.abc.gov라고 브라우징을 시도 하였을 경우, DNS 서버 응답은 아래와 같이 이름이 없다고 표시한다.
참고
기본적인 TCP Packet 분석 (0) | 2013.01.30 |
---|---|
기본적인 DHCP Packet 분석 (0) | 2013.01.30 |
기본적인 UDP Packet 분석 (0) | 2013.01.30 |
기본적인 ICMP Packet 분석 (0) | 2013.01.30 |
기본적인 ARP Packet 분석 (0) | 2013.01.30 |