1. DNS 메세지
ㅇ DNS 질의 및 DNS 응답에 관련되어, 단일 기본 구조를 갖지만, 여러 용도로 전달되는 메세지
ㅇ DNS 메세지 용도 : 전체 DNS의 원활한 동작을 위한 주고받기,복사 등
- 질의 : 도메인네임에 대한 상세 정보를 요청 (DNS 쿼리)
- 응답 : 질의에 대한 상세 정보의 응답 (DNS 응답)
- 영역 전달 : 영역과 관련된 자원레코드 집합을 다른 네임서버로 복사하는 것
- 통지 (notification)
- 동적 갱신 (dynamic update)
ㅇ 용도별로, DNS 클라이언트 및 서버 간에, 또는 DNS 서버들(네임서버) 간에, 전달됨
ㅇ 표준 : RFC 6895 "Domain Name System (DNS) IANA Considerations"
2. DNS 메세지 구분
ㅇ DNS 메세지는 크게, 질의메세지(Query) 또는 응답메세지(Response)로 구분
- 질의 메세지 (2개 영역 만 있음) = ( Header ) + ( 질의 )
- 응답 메세지 (5개 영역 가능) = ( Header ) + ( 질의 + 응답 + 책임 + 부가정보 )
3. DNS 메세지 기본 포멧
ㅇ 크게, 5가지 영역으로 구분 가능 = (Header) + (질의, 응답, 책임, 부가정보)
- 12 바이트의 고정길이의 헤더 영역 및 가변길이의 4가지의 기타 영역들로 구성
ㅇ 특징
- 단일 기본 포멧 : 위 그림 처럼 모든 DNS 패킷 포멧은 단일 기본 구조를 사용
- 운반용 프로토콜 : 대부분, UDP에 실려 전송됨
- 크기 제한 : UDP 512 바이트로 크기 제한 (512 바이트 이상이면 TCP로 전환됨)
- 조회 실패시 재 전송 간격 : 2 ~ 5 초
4. DNS 메세지 헤더 영역 (DNS Header Section) : 필수, 12 바이트 고정
※ 세부사항 ☞ DNS 헤더 참조
- 트랜잭션 ID : DNS 질의 및 DNS 응답을 연결시켜주는 식별자 (16 비트)
- Flags : DNS 쿼리의 성격을 기술함 (QR, Op, AA, TC, RD, RA, 000, rCode)
- Question 카운트 : 질의 수
- Answer 카운트 : 응답 자원레코드 수
- 네임서버 카운트 : 책임 자원레코드 수
- 부가정보 레코드 카운터 : 추가 자원레코드 수
5. DNS 메세지 질의 영역 (DNS Query Section) : 가변 길이
ㅇ 질의 영역은, 1 이상의 질의/문의 레코드들로 구성됨
- 질의 메세지,응답 메세지 모두에 존재할 수 있음
- 단, 영역 내 자원레코드 항목들은, DNS 응답 메세지에 만 있고, DNS 질의 메세지에는 없음
※ 세부사항 ☞ DNS 질의 메세지 참조
- 질의 메세지(2개 영역 만 있음) = `Header 영역` + `질의 영역`
. Query Section = (Query Domain Name string) + (Query type) + (Query class)
6. DNS 메세지 응답, 책임, 부가정보 영역 : 가변 길이
ㅇ DNS 응답 메세지에 만 존재하는 영역들 임 : 가변 길이
- 응답 영역 (DNS Answer Section)
- 책임 영역 (Authority Section)
- 부가정보 영역 (Additional Section)
ㅇ 포멧 형식이 공통됨 : 1 이상의 자원레코드 (Resource Record)들로 구성됨
- 자원레코드 형식
- 네임서버 데이터베이스 라하면 이러한 자원레코드들로 구성된 것임
. 즉, 이 정보들이 인터넷 상에서 분산 네임 데이터베이스를 형성하게됨