
/etc/named.conf
1. 파일의 구성과 특징
- 파일의 구성은 크게 주석문과 구문으로 구성되어 있음
- 주석은 C에서 사용하는 /* */, C++에서 사용하는 //, 유닉스 계열에서 사용하는 # 등 모두 사용 가능
- 구문에는 options, logging, controls, zone, acl, view, key, masters, server 등이 존재
- 각 구문은 중괄호({})로 둘러싸고 끝날 때는 세미콜론(;)을 사용
- include 지시자를 선언하여 별도의 파일에 추가 정의 가능
2. 주요 구문
1. options 구문
- DNS 서버의 동작 및 제어와 관련된 여러가지 설정을 하는 영역으로 존 파일이 위치하는 디렉터리명은 방드시 명기해야 함
- listen-on port 53 { 127.0.0.1; };
- DNS 서버의 포트 번호인 53번 포트에 접근할 수 있는 호스트를 지정하는 항목. 기본값은 로컬 호스트만 가능하므로 다른 호스트의 접근이 가능하게 하려면 이 항목을 주석 처리하거나 기본 설정 값인 127.0.0.1을 any로 변경
- listen-on-v6 port 53 { ::1; };
- DNS 서버의 포트 번호인 53번 포트에 접근할 수 있는 호스트를 지정하는 항목으로 IPv6 주소 기반 설정 시에 사용. IPv6 주소 기반의 접근 제어를 사용하지 않는다면 주석처리 하거나 지우도록함
- directory “/var/named”;
- 존 파일이 위치하는 디렉터리명을 명기
- dump-file “/var/named/data/cache_dump.db”;
- named는 정보가 갱신될 때 dump 파일로 저장하는데, 그 덤프 파일이 생성될 위치와 파일명을 지정
- statistics-file “/var/named/data/named_stats.txt”;
- 네임 서버의 통계 파일을 생성할 위치와 파일명을 지정
- memstatistics-file “/var/named/data/named_mem_stats.txt”;
- 네임 서버의 메모리 통계 파일을 생성할 위치와 파일명을 지정
- forward (only|first);
- forwarders 구문과 함께 사용되며, only나 first 두 값 중 하나를 가짐.
- only는 자신에게 들어온 도메인 질의를 지정한 다른 서버로 넘기도록 하는 것으로 다른 서버가 그에 대한 응답이 없을 경우 그 자신도 그 질의에 대해 응답하지 않을 경우에 설정.
- first는 타 서버에서 응답이 없을 때 자신이 응답하도록 할 때 설정
- forwarders { 네임서버주소1; 네임서버주소2; …};
- 도메인에 대한 질의를 다른 서버로 넘길 때 사용하는 구문으로 복수 형태로 지정할 수도 있는데, 구분은 세미콜론(;)으로 함
- allow-query { 192.168.0/24; };
- 네임서버에 질의할 수 있는 호스트를 지정. 위와 같이 지정하면 192.168.0.0 네트워크 주소 대역에 속한 호스트만이 질의 가능
- allow-transfer { 192.168.0/24; };
- zone 파일의 내용을 복사할 대상에 제한을 걸 때 지정. 이 항목을 명기하지 않으면 제한없이 zone 파일을 복사할 수 있게됨. 현재 설정은 192.168.0.0 네트워크 대역에 속한 호스트만 zone 파일 복사가 가능하고, none이라고 하면 모든 호스트를 제한 가능
- datasize 512M;
- DNS 관련 정보를 캐싱할 때 사용하는 메모리를 제한하는 설정
- recursion yes;
- 질의(query) 중 인터넷을 통해 다른 DNS 서버에 질의를 보내고, 질의를 다시 받을 수 있음
2. acl 구문
- ACL(Access Control List)의 약자로 여러 호스트를 하나의 명칭으로 지정할 때 사용. 지정한 이름은 options 구문의 allow-query, allow-transfer 등에 사용할 수 있음. 주의할 점은 acl 구문의 선언은 options 구문 이전에 해야함
[acl 에서 사용 가능한 주소 매칭 이름]
| 매칭 이름 | 설명 |
| any | 모든 호스트를 나타냄 |
| none | 어떠한 호스트도 거부 |
| localhost | 시스템에 부여된 IPv4 및 IPv6 주소를 매칭 |
| localnet | 시스템에 부여된 IPv4 및 IPv6 네트워크의 모든 호스트를 매칭시킴 |
[사용 예]
acl "member" { 210.96.52.100; 203.247.40/24; 211.58.96.100; };
options {
listen-on port 53 { 127.0.0.1; any; };
directory "/var/named";
allow-transfer { 203.247.50/24; 203.247.51.30; };
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
forward only;
forwarders { 203.247.32.31; };
allow-query { 203.247.50/24; 203.247.51.33; member; };
datasize 512M;
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
3. zone 구문
- 도메인을 관리하는 데이터베이스 파일인 zone 파일을 지정. 기본적으로 루트(.) 도메인 서버에 대한 정보 파일인 named.ca에 대한 선언이 되어 있고 추가로 localhost, localhost.domain 등에 대한 존 파일 선언이 되어 있음. 기본적으로 선언된 것은 그대로 두는 것이 좋으며, 특히 named.ca 항목을 지우면 리졸빙이 불가능하므로 주의해야함. RHEL 7부터는 /etc/named.conf 파일의 복잡해지는 것을 막기 위해 include 지시자를 사용해서 root zone 파일 관련한 설정을 제외한 zone 구문 자체를 /etc/named.rfc1912.zones라는 별도의 파일에서 설정하도록 권장하고 있음. 따라서 이 파일에 존(zone) 파일과 리버스 존(reverse zone)을 추가로 선언하면 됨. 일반적으로 존 파일은 도메인에 대한 질의시 IP 주소를 알려주는 역할을 수행하고, 리버스 존 파일을 사용하지 않으면 IP주소에 대한 도메인이 질의가 되지 않는데, 특정 사이트에서는 이러한 경우 차단을 하여 메일이 거부될 수 있으므로 주의해야 함
[기본 형식]
zone "도메인명" IN {
type (master | slave | hint);
file "존파일명";
};
| 항목 | 설명 |
| zone | 도메인명 자리에 설정하려는 도메인 이름을 기재 리버스 존 파일에 대한 설정은 맨 마지막 주소를 제외하고 “50.247.203.in-addr.arpa” 형식으로 기재 Reverse Zone 파일에 맨 마지막 IP주소를 생략할 경우에는 전체 IP 주소를 역순으로 기재해도 됨 ex 1) zone “linux.co.kr” ex 2) zone “50.247.203.in-addr.arpa” ex 3) zone “15.2.0.10.in-addr.arpa” |
| type | DNS 서버의 종류를 나타냄 master는 Primary, slave는 Secondary, hint는 리졸빙을 위한 root zone서버를 나타냄 ex 1) type master; ex 2) type slave; masters { 203.247.40.243; }; |
| file | 사용하려는 존 파일명을 기재 일반적인 존 파일은 “도메인명.zone”으로 설정하고 리버스 존 파일인 경우에는 “도메인명.rev”로 설정 ex 1) file “linux.zone” ex 2) file “linux.rev” |
| allow-update | 동적 업데이트를 지원한 호스트의 IP주소를 기재 허가된 시스템에서 nsupdate 명령을 이용해서 zone 파일을 업데이트할 수 있음 보안이 취약하므로 꼭 필요한 경우가 아니라면 권장하지 않음 ex 1) allow-update { none; }; ex 2) allow-update { 192.168.12.22; }; |
[설정 예]
# IP 주소가 10.0.2.15이고 도메인이 linux.or.kr 인 경우
zone "linux.or.kr" IN {
type master;
file "linux.zone";
};
zone "2.0.10.in-addr.arpa" IN {
type master;
file "linux.rev";
};
💡위치 / 옵션 찾기
- DNS 관련 설정이 /etc/named.conf 인 것은 암기

- /usr/share/doc/bind/sample/etc/named.conf 파일 확인 시 샘플 코드 확인 가능

options 구문
- forward (only | first); : 질의 넘기는 설정
- only : 응답 없으면 자기도 안 함
- first : 응답 없으면 자기가 함
- forwarders { 네임서버주소1; 네임서버주소2; };
- allow-query { 192.168.2/24; }; : 질의 가능 호스트
- allow-transfer { 192.168.2/24; }; : zone 파일 복사/받을 수 있는 호스트
acl 구문
- acl "멤버" { 호스트; 192.168.2/24; };
zone 구문
- zone "도메인명" IN {
type (master | slave | hint);
file "존파일명";
} - zone "2.168.192.in-addr.arpa" IN {
type master
file "linux.rev";
};
'Linux' 카테고리의 다른 글
| [Linux] Squid Proxy (0) | 2026.03.16 |
|---|---|
| [Linux] DNS 서버 - zone 파일 (0) | 2026.03.09 |
| [Linux] 메일 서버 sendmail (0) | 2026.02.22 |
| [Linux] FTP(File Transfer Protocol) 서버 관리 (0) | 2026.02.17 |
| [Linux] NFS 관련 명령어 - rpcinfo / exportfs / showmount / nfsstat (0) | 2026.02.10 |