LETO

존 파일

존 파일은 한 도메인의 DNS 레코드 전체를 한곳에 적어 둔 파일입니다. 네임서버는 이 파일을 읽어 질의에 답합니다.

작성

존 파일(zone file)은 한 도메인이 가진 DNS 레코드 전체를 한곳에 적어 둔 파일입니다. 권한 네임서버는 이 파일을 읽어 "이 이름의 주소가 무엇인가" 같은 질의에 답합니다. 관리 화면에서 레코드를 한 줄씩 추가하는 작업도 내부에서는 결국 이 파일(또는 같은 구조의 데이터)을 고치는 일입니다.

파일의 머리: SOA와 NS

존 파일은 항상 SOA(Start of Authority) 레코드로 시작합니다. SOA에는 이 존을 관리하는 기준 네임서버, 관리자 메일 주소, 시리얼 번호, 보조 네임서버가 참고하는 재시도·만료 시간이 들어 있습니다. 그다음에 이 존에 답하는 네임서버 목록인 NS 레코드가 옵니다. 이 두 종류가 없으면 존은 성립하지 않습니다.

$ORIGIN example.co.kr.
$TTL 3600
@     IN SOA ns1.example-dns.com. hostmaster.example.co.kr. (
              2026091201 ; serial
              7200       ; refresh
              3600       ; retry
              1209600    ; expire
              3600 )     ; minimum
@     IN NS  ns1.example-dns.com.
@     IN NS  ns2.example-dns.com.
@     IN A   203.0.113.10
www   IN CNAME example.co.kr.
@     IN MX  10 mx.example-mail.com.
@     IN TXT "v=spf1 include:_spf.example-mail.com -all"
shop  IN A   203.0.113.20

레코드 한 줄의 형식

레코드 한 줄은 왼쪽부터 이름, TTL, 클래스, 타입, 값 순서입니다.

항목예설명
이름www, @레코드가 붙는 이름. 생략하면 위 줄의 이름을 이어받습니다
TTL3600생략하면 파일 머리의 기본값을 씁니다
클래스IN인터넷. 실무에서는 항상 IN입니다
타입A, MX, TXT레코드 종류
값203.0.113.10타입마다 형식이 다릅니다

@는 도메인 자체, 즉 apex 도메인을 가리킵니다. 이름에 점이 없으면 상대 이름으로 보고 뒤에 도메인이 자동으로 붙습니다. www는 www.example.co.kr.이 됩니다. 반대로 점으로 끝나는 이름은 절대 이름이라 그대로 쓰입니다. 값 쪽에서 점을 빼먹으면 mx.example-mail.com.example.co.kr. 같은 엉뚱한 이름이 만들어지므로, 외부 호스트를 가리키는 값에는 끝점을 꼭 붙입니다. 타입별 작성법은 DNS 레코드 종류에 정리되어 있습니다.

시리얼 번호와 존 전송

한 존은 보통 여러 네임서버가 함께 답합니다. 기준 서버(primary)의 존 파일을 고치면 보조 서버(secondary)가 그 내용을 복사해 가는데, 이 과정이 존 전송(AXFR/IXFR)입니다. 보조 서버는 SOA의 시리얼 번호를 보고 자기가 가진 값보다 큰지 확인한 뒤에만 가져갑니다. 그래서 내용을 고치고 시리얼을 올리지 않으면 기준 서버만 새 값을 답하고 보조 서버는 이전 값을 계속 답하는, 조회할 때마다 결과가 달라지는 상태가 됩니다. 날짜와 순번을 붙인 2026091201 형식이 관행입니다.

실무에서 알아둘 것

  • 레코드를 많이 건드릴 예정이라면 작업 전에 존을 내보내 보관합니다. 되돌릴 때 한 줄씩 기억해 내지 않아도 됩니다.
  • 새 DNS 호스팅으로 옮길 때는 기존 존 내용을 먼저 그대로 올린 뒤 네임서버 변경을 합니다. 순서가 바뀌면 빈 존을 바라보는 시간이 생깁니다.
  • 하위 도메인을 다른 팀이나 다른 서버에 맡길 때는 같은 존 안에 레코드를 넣는 방법과 NS 레코드로 별도 존으로 위임하는 방법이 있습니다. 차이는 서브도메인에서 다룹니다.
  • 존 파일의 기본 TTL과 개별 레코드의 TTL은 따로 지정할 수 있습니다. 옮길 예정인 A 레코드만 낮춰 두는 식으로 쓰면 전환이 쉬워집니다.

자주 묻는 질문

결과는 같습니다. DNS 호스팅 콘솔의 입력 화면은 존 파일의 한 줄을 항목별로 나눠 놓은 것이고, 저장하면 같은 존 데이터가 만들어집니다. 콘솔에 존 파일 내보내기 기능이 있으면 지금 상태를 텍스트로 확인할 수 있습니다.

콘솔을 쓰는 경우에는 저장할 때 자동으로 올라갑니다. 직접 네임서버를 운영하며 파일을 손으로 고칠 때만 신경 쓰면 되고, 이 값을 올리지 않으면 보조 네임서버가 변경을 가져가지 않습니다.

아닙니다. 존 파일은 네임서버 안의 내용이고, 어느 네임서버가 답할지는 레지스트리에 등록된 위임 정보가 정합니다. 새 DNS 호스팅에 존을 올린 뒤 네임서버 변경을 따로 해야 실제로 적용됩니다.