
zone 파일
1. zone 파일의 개요
- zone 파일은 /etc/named.conf 파일에 지정된 디렉터리 안에 지정한 파일명으로 생성해야 함
- 기본 설정 디렉터리는 /var/named 디렉터리이므로 이 디렉터리에 생성하면 되고, 최근에 zone 파일명은 /etc/named.rfc1912.zones에 설정하므로 이 파일에 지정한 이름대로 생성
- 사용하는 도메인에 대한 zone 파일은 일반 존 파일과 리버스 존 파일로 나누고, 파일명은 관리자가 임의로 지정 가능
- 리버스 존 파일은 반드시 생성할 필요는 없지만, 리버스 존 파일이 없는 경우 IP주소에 따른 도메인 조회를 하는 사이트로 메일 전송할 때 스팸처리가 될 수도 있음
- 존 파일은 메인 도메인뿐만 아니라, 2차 도메인을 관리하는 역할도 함
- linux.or.kr이라는 도메인을 이용하는 경우 2차 도메인으로 game.linux.or.kr, edu.linux.or.kr 등을 2차 도메인으로 지정하여 사용 가능
💡 존 파일 설정에 대하여
일반적으로 zone 파일을 vi와 같은 편집기로 생성하는 경우에 소유권 및 허가권 문제로 인해 DNS 서버가 동작하지 않는 경우가 있음. 이 경우에는 다음의 명령을 사용해서 소유권 및 허가권을 변경해야 함
1. 소유권 변경
chown root.named linux.zone
2. 허가권 변경
chmod 640 linux.zone
2. zone 파일의 구조
- zone 파일은 크게 SOA(Start Of Authority) 레코드와 자원 레코드(Resource Record)로 나눌 수 있음. Bind 9 버전의 기본 구조
[기본 구조]
$TTL 1D
@ IN SOA nameserver contract-email-address (
serial_number ; serial
refresh_number ; refresh
retry_number ; retry
expire_number ; expire
minimum_number) ; minimum
도메인 TTL class type Rdata
3. zone 파일의 항목 설명
- $TTL
- Time To Live의 약자로 zone 파일의 첫 줄에 설정
- 다른 서버에서 도메인 관련 정보를 조회한 경우, 조회한 서버의 캐시에 해당 정보가 얼마나 머물지를 결정
- 도메인 관련 설정 항목에서 별도의 TTL을 설정하지 않았을 경우에는 이 값이 적용됨
- 값은 초 단위로 설정하면 되는데, 86400이라고 지정하면 1일이 됨
- 최근에는 단위를 붙일 수 있는데, 대소문자 구분 없이 W(주), D(일), H(시), M(분)을 붙여서 사용해도 됨
- SOA record
- 존 파일을 시작하는 레코드로 시작은 도메인명 또는 도메인명을 나타내는 기호인 ‘@’을 사용
- 항목에 대한 설명이 필요한 경우 주석 기호인 세미콜론(;)을 사용하면 됨
| 주요 구성 | 설명 |
| nameserver | 네임 서버의 호스트명과 도메인명을 적음 전체 도메인으로 기재할 경우에는 마지막 루트 도메인을 뜻하는 ‘.’을 찍어야 함 ex. ns.linux.or.kr. |
| contact_email_address | 관리자의 이메일 주소를 적음 ’계정.도메인’ 형태로 기재해야 하고, 마지막에 루트 도메인을 뜻하는 ‘.’을 찍어야 함 ex. posein.linux.or.kr. |
| serial_number | 일종의 일련 번호로 zone 파일이 갱신되면 숫자가 더 크도록 설정 보통 ‘YYYYMMDDNN’ 형식을 사용하는데, ‘YYYYMMDD’는 해당 연월일을 적고 NN은 수정한 횟수를 기재 ex. 2018012801, 180128 |
| refresh_number | 보조 네임 서버가 자신의 정보를 업데이트하기 위해 주 네임 서버에 얼마나 자주 체크할 것인지를 설정 ex. 86400, 1D, 1d 등 |
| retry_number | 보조 네임 서버가 주 네임 서버 접근에 실패했을 경우 재시도할 주기를 설정 ex. 3600, 1H 등 |
| expire_number | 보조 네임 서버가 주 네임 서버에 접근을 실패하여 retry_number에 설정한 주기로 재시도할 때의 만기 시간을 지정 ex. 1W |
| minimum_number | 일종의 SOA 영역의 TTL로서 가져간 정보의 최소 보관 시간을 설정 ex. 3H |
- 도메인
- 도메인명, 호스트명, 공백, @, * 등이 올 수 있음
- @는 현재 도메인을 가리키고, *는 모든 호스트명을 뜻함
- 호스트명만 기입하면 ‘호스트명.도메인이름’으로 인식하고, 전체 도메인명으로 지정할 때는 반드시 맨 뒤에 ‘.’을 붙여야 함
- 공백은 바로 윗 줄의 항에 설정된 ‘도메인’ 값을 이어서 사용
- TTL
- 해당 레코드에 대한 TTL 값을 설정하는 항목
- 보통 생략해서 사용하는데 생략한 경우에는 $TTL 항목에 설정된 값이 반영됨
- class
- 레코드의 클래스를 지정하는 부분으로 IN, CH, HS 등을 사용할 수 있음
- 보통 Internet을 의미하는 IN을 사용하는데, 생략해도 무방
- type
- 해당 레코드의 타입을 지정하는 영역으로 주요 타입은 다음과 같음
| 타입 | 설명 |
| A | 도메인 주소를 IPv4 형식의 주소로 매핑할 때 사용 |
| AAAA | 도메인 주소를 IPv6 형식의 주소로 매핑할 때 사용 |
| NS | 도메인의 네임 서버(Name Server)를 지정할 때 사용 |
| MX | 메일 서버(Mail Exchanger)를 지정할 때 사용 MX 다음에 0 또는 양의 정수값을 기입해서 우선순위를 지정해야 함 |
| CNAME | Canonical Name 레코드로 일종의 별칭(alias)을 지정할 때 사용 예를 들어 ‘www1 CNAME www’로 설정하면 www1.posein.org에 대한 요청을 www.posein.org로 서비스 |
| PTR | 리버스 존에서만 사용하는 레코드로 IP 주소를 도메인으로 변환하기 위해 지정(Pointer) |
| TXT | 도메인에 대한 텍스트 정보를 기재할 때 사용 최근 스팸으로 분류되는 것을 막기위해서 사용되는 SPF(Sender Policy Framework) 등을 기재할 때 사용 |
- Rdata
- IP 주소, 도메인명, 호스트명을 지정하는 영역
- 호스트명만 기입했을 경우에는 자동으로 도메인을 붙여서 인식하고, 전체 도메인명을 명기하려면 반드시 맨 뒤에 ‘.’을 붙여야 함
4. zone 파일의 생성 및 설정 예
- zone 파일을 생성하기 위해서는 먼저 zone 파일이 위치하는 디렉터리인 /var/named로 이동
- 이 디렉터리에는 zone 파일의 샘플(sample) 파일들이 존재하므로 복사해서 사용. cp 명령으로 복사할 때에 소유권 및 허가권까지 같이 유지하는 옵션인 -p를 사용하면 번거로운 절차를 줄일 수 있음
- 리버스 존 파일은 zone 파일 작업 후에 복사해서 쓰는 것을 권장
[복사 예]
[root@www ~]# cd /var/named
[root@www ~]# ls
data dynamic named.ca named.empty named.localhost named.loopback slaves
[root@www ~]# cp -p named.localhost linux.zone
[설정 조건]
- DNS 서버의 IP 주소가 10.0.2.15이고, 신청한 도메인이 linux.or.kr임
- 관리자 메일 주소는 posein@linux.or.kr이고, 하나의 시스템에 메일 및 웹서버도 구성
- /etc/named.rfc1912.zones에 존 파일명은 linux.zone, 리버스 존 파일명은 linux.rev로 지정했다는 가정하에 진행
1. linux.zone
[root@www named]# cat linux.zone
$TTL 1D
@ IN SOA ns.linux.or.kr. posein.linux.or.kr. (
220712 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS ns.linux.or.kr.
A 10.0.2.15
MX 10 linux.or.kr.
ns A 10.0.2.15
www A 10.0.2.15
2. linux.rev
[root@www named]# cat linux.rev
$TTL 1D
@ IN SOA ns.linux.or.kr. posein.linux.or.kr. (
220712 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H) ; minimum
NS ns.linux.or.kr.
15 PTR linux.or.kr.
15 PTR ns.linux.or.kr.
15 PTR www.linux.or.kr.
💡위치 / 옵션 찾기
- zone 파일, 리버스 존파일 구조 암기 필요
zone 파일
$TTL 1D
@ IN SOA nameserver contract-email-address (
serial_number ; serial
refresh_number ; refresh
retry_number ; retry
expire_number ; expire
minimum_number) ; minimum
도메인 TTL class type Rdata
리버스 zone 파일
$TTL 1D
@ IN SOA 네임서버 이메일주소 (
serial_number ; serial
refresh_number ; refresh
retry_number ; retry
expire_number ; expire
minimum_number) ; minimum
DNS_서버_IP_마지막주소 PTR 도메인'Linux' 카테고리의 다른 글
| [Linux] DHCP(Dynamic Host Configuration Protocol) (0) | 2026.03.31 |
|---|---|
| [Linux] Squid Proxy (0) | 2026.03.16 |
| [Linux] DNS 서버 - /etc/named.conf 파일 (0) | 2026.03.02 |
| [Linux] 메일 서버 sendmail (0) | 2026.02.22 |
| [Linux] FTP(File Transfer Protocol) 서버 관리 (0) | 2026.02.17 |