현재 선택한 정보보안 과정

정보보안기사 필기 이론 학습

이론 목록으로 돌아가기

DNS 이름 해석과 서비스 운영

재귀·반복 질의, 레코드, 캐시와 존 전송을 연결합니다.

예상 읽기 5

1. DNS의 이름 공간과 역할

DNS는 이름에 대응하는 주소·메일 서버·권한 서버 등의 정보를 찾는 분산·계층형 시스템이다. www.example.com.은 오른쪽부터 루트, com, example.com, www.example.com으로 (새 창) 읽는다. 루트까지 포함한 완전한 이름이 FQDN이다.

도메인은 논리적 하위 트리, 존(Zone)은 한 권한 관리 단위다. dev.example.com을 따로 위임하면 example.com 도메인에는 포함되지만 example.com 존이 그 하위의 실제 데이터를 모두 관리하지는 않는다.

역할기능
Stub Resolver단말에서 설정된 해석기에 질의하는 DNS 클라이언트
Recursive Resolver사용자 대신 최종 답을 찾고 캐시하는 재귀 해석기
Authoritative Server담당 존의 원본 데이터에 대해 권한 있는 응답을 제공

2. 재귀 요청과 반복 해석

캐시에 답이 없는 경우의 대표 흐름이다.

  1. 단말이 재귀 해석기에 최종 결과를 요청한다.
  2. 재귀 해석기가 루트 서버에 질의하여 TLD 서버 정보를 얻는다.
  3. TLD 서버에서 해당 도메인의 권한 서버 정보를 얻는다.
  4. 권한 서버에서 최종 레코드를 받아 단말에 응답하고 캐시한다.

재귀는 요청을 받은 서버가 최종 결과를 대신 찾는 방식이다. 반복은 질의한 쪽이 다음 서버 안내를 따라 다시 질의하는 방식이다. 재귀 해석기가 내부적으로 반복 질의를 사용할 수 있으므로 서로 배타적인 전체 시스템 분류가 아니다.

루트가 모든 웹 호스트의 IP를 보관하는 것은 아니다. 또한 루트 서버의 A부터 M까지 13개 식별자와 실제 물리 서버 수를 혼동하지 않는다.

좌우로 이동해 그림을 확인하세요.그림 크게 보기
재귀 요청 안에서 이루어지는 반복 해석
재귀 요청 안에서 이루어지는 반복 해석

3. 주요 자원 레코드

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
NAME                  TTL  CLASS TYPE RDATA
www.example.com.      300  IN    A    192.0.2.10

TTL은 캐시 유효시간의 상한을 초 단위로 나타낸다. TYPE에 따라 실제 데이터인 RDATA의 형식이 달라진다.

레코드역할
A / AAAA이름에 대응하는 IPv4 / IPv6 주소
NS존의 권한 네임서버 이름
CNAME다른 정식 이름을 가리키는 별칭
MX메일 수신 서버 이름과 우선순위, 작은 값 우선
PTR주소에서 이름을 찾는 역방향 조회
SOA존 관리 정보, Serial·Refresh·Retry·Expire 등
TXT텍스트 정보, SPF·DMARC 등의 정책에도 사용
SRV특정 서비스의 대상 호스트·포트 등

CNAME·NS·MX의 대상은 IP 주소 그 자체와 구분한다. IPv4로 질의를 전송해도 AAAA를 조회할 수 있다. 질의 전송의 IP 버전과 조회하는 레코드 종류는 별개다.

IPv4 역방향 조회는 주소의 옥텟을 뒤집어 in-addr.arpa 아래에서 PTR을 찾는다. 예를 들어 192.0.2.1010.2.0.192.in-addr.arpa.를 조회한다. IPv6는 ip6.arpa를 사용한다. PTR이 있다는 사실만으로 호스트의 신원이 인증되지는 않는다.

4. 캐시와 응답 상태

TTL이 남은 응답은 재사용할 수 있으므로 매번 루트부터 조회하지 않는다. 권한 서버가 주소를 바꿔도 다른 해석기에 예전 값이 남을 수 있어 사용자가 잠시 다른 결과를 볼 수 있다.

존재하지 않는 결과도 네거티브 캐시에 보관할 수 있다.

결과의미
NXDOMAIN이름 자체가 존재하지 않음
NODATA이름은 존재하지만 요청한 종류의 레코드가 없음
SERVFAIL해석·검증 등을 완료하지 못함
Timeout응답을 받지 못함, 경로·서버 상태 확인 필요

NODATA는 독립적인 DNS 응답 코드가 아니라 데이터 부재를 나타내는 상황이다. NOERROR인데 요청한 레코드가 없을 수도 있다. SERVFAIL을 NXDOMAIN과 같은 뜻으로 외우지 않는다.

5. 전송 방식과 존 동기화

일반 DNS는 UDP와 TCP 53번을 모두 사용한다. UDP가 흔하지만 큰 응답이나 운영 조건 등에 따라 TCP를 사용할 수 있다. TCP를 존 전송 전용으로 단정하지 않는다.

구성·기능의미
Primary존 데이터 원본을 관리
Secondary존 데이터를 전송받아 권한 응답을 제공
AXFRTCP를 사용하는 전체 존 전송
IXFR변경분 중심의 존 전송
SOA Serial존 변경·동기화 판단에 사용하는 버전 값

Secondary는 단순 캐시 서버와 다르다. 존 전송은 정상적인 동기화 기능이지만 아무 외부 사용자에게나 전체 정보를 제공하지 않도록 제한한다. 관련 방어는 DNS 공격과 DNSSEC·접근 통제에서 다룬다.

6. 기본 조회와 장애 판단

BASH코드 영역 안에서 좌우로 이동할 수 있습니다.
dig example.com A
dig example.com MX
dig example.com SOA
nslookup example.com

위 코드는 기본 조회 구문 예다. 이름으로만 접속이 실패하면 먼저 DNS 응답을 확인한다. 오래된 주소면 캐시·TTL, Secondary만 다른 답이면 존 동기화, SERVFAIL이면 상위 응답·DNSSEC 검증 등을 확인한다. 하나의 상태 코드만으로 원인을 확정하지 않는다.

스스로 확인하기

개념 확인 문제

문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.

01재귀 해석기는 항상 다른 서버에 재귀 질의만 보내는가?
정답 및 해설

아니다. 단말의 재귀 요청을 받아 내부적으로 루트·TLD·권한 서버에 반복 질의하여 최종 답을 찾을 수 있다. 캐시가 있으면 재사용한다.

02NXDOMAIN과 NODATA는 어떻게 다른가?
정답 및 해설

NXDOMAIN은 이름 자체의 부재다. NODATA는 이름은 있지만 요청한 종류의 데이터가 없는 상황으로, 별도의 DNS 응답 코드 이름이 아니다.