존 파일
존 파일은 한 도메인의 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, @ | 레코드가 붙는 이름. 생략하면 위 줄의 이름을 이어받습니다 |
| TTL | 3600 | 생략하면 파일 머리의 기본값을 씁니다 |
| 클래스 | 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 호스팅에 존을 올린 뒤 네임서버 변경을 따로 해야 실제로 적용됩니다.
관련 가이드
- DNS 레코드 설정 (A, AAAA, CNAME, MX, TXT, SRV)A, AAAA, CNAME, MX, TXT, SRV 레코드가 각각 무엇을 하고 어떤 값을 넣어야 하는지 예시로 정리했습니다. 루트 도메인에 CNAME을 걸 수 없는 이유와 TTL 기준도 함께 다룹니다.
- 네임서버 변경하기레토 대시보드에서 네임서버를 바꾸는 방법과, 바꾸기 전에 새 네임서버에 레코드를 먼저 옮겨 두어야 하는 이유. 반영 시간, 검증 방법, 흔한 실패 원인까지 정리했습니다.
- 서브도메인 만들기blog.example.com 처럼 앞에 이름을 붙인 서브도메인을 A 또는 CNAME 레코드로 만드는 방법입니다. 자주 쓰는 구성, 외부 서비스 연결, NS 위임, SSL 인증서와의 관계까지 정리했습니다.