bind 1차 2차 네임서버 구성하기
- 꼬반
- 2015. 6. 8. 09:20
====== 네임서버 점검 및 구축 가이드 라인 ======
KISA 점검 사이트 : http://dns.kisa.or.kr/kor/dns/dnsIntro03A.jsp
KISA 구축 가이드라인 : {{:리눅스:dnsguide_2011.pdf|}}
네임서버는 53번 포트가 열려있어야만 정상적으로 동작한다.
제일먼저 확인할것
# netstat -an | grep :53
====== 네임서버 기본 구성 ======
1. bind package check
<code>
# rpm -qa bind*
bind-chroot-9.8.2-0.10.rc1.el6_3.5.x86_64
bind-utils-9.8.2-0.10.rc1.el6_3.5.x86_64
bind-libs-9.8.2-0.10.rc1.el6_3.5.x86_64
bind-9.8.2-0.10.rc1.el6_3.5.x86_64
위 4개가 전부 설치되어 있지 않으면
# yum install bind-*
으로 설치.
</code>
2. bind 기본 정보
<code>
/var/named : 설정 파일 및 DNS 구성에 필요한 파일들이 위치
/etc/named.conf : named 데몬 실행에 관한 설정
/etc/named.rfc1912.zones : 존 파일에 대한 설정
/etc/rndc.key : named 데몬을 제어하기 위한 rndc key 값
</code>
3. named.conf 파일 내용
<code>
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
#listen-on port 53 { 127.0.0.1; };
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
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";
#allow-query { localhost; };
#allow-query { any; };
#recursion no;
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
</code>
4. named.rfc1912.zone
<code>
zone "kisa.or.kr" in {
type master;
file "kisa.or.kr.zone"; // kisa.or.kr 도메인에 대한 영역 설정 파일 지정
};
zone "50.30.202.in-addr.arpa" in {
type master;
file "db.50.30.202"; //202.30.50.24 네트워크에 대한 역방향 설정 파일 지정
};
zone "localhost" in {
type master;
file "localhost.zone"; // 루프백 주소에 대한 파일 지정
};
zone "0.0.127.in-addr.arpa" in {
type master;
file "db.127.0.0"; // 루프백 주소에 대한 파일 지정
};
zone "." in {
type hint;
file "db.cache"; // 루트 힌트 파일 지정
};
</code>
====== 1차 네임서버 설정 ======
1. named.conf 설정
<code>
options {
directory "/var/named";
allow-transfer{ 2차 네임서버 ip; }; //2nd DNS
version "No !!";
};
zone "kisa.or.kr" in {
type master;
file "kisa.or.kr.zone"; // kisa.or.kr 도메인에 대한 영역 설정 파일 지정
allow-transfer{ 2차 네임서버 ip; }
};
</code>
====== 2차 네임서버 설정 ======
1. named.conf 혹은 named.rfc1912.zone 파일 수정
<code>
zone "kisa.or.kr" in {
type slave; // slave 네임서버임을 설정
file "slave-kisa.or.kr.zone"; //존파일 지정
masters { 1차 네임서버 ip; }; // 존파일을 받아올 Master 네임서버의 IP를 설정
};
</code>
위의 설정을 한 후
<code>
# service named start
# tail -f /var/log/message
</code>
정상적으로 1차 네임서버에서 2차 네임서버로 존 파일을 전송받게 되면
/var/named 폴더 밑에 존 파일들이 생성된다.
====== KISA 존 파일 예제 ======
※ 존파일 설정시 '.' 점으로 끝나지 않는 경우 호스트명으로 처리하므로 도메인 입력시 주의해야합니다.
즉, 'kisa.or.kr'로 kr뒤에 점을 안찍으면 'kisa.or.kr.kisa.or.kr.'으로 인식됩니다.
존파일 예제(kisa.or.kr.zone)
<code>
$TTL 86400;(1일)
$ORIGIN kisa.or.kr.
@ IN SOA ns1.kisa.or.kr. admin.kisa.or.kr. (
2004082722 ; serial
28800 ; refresh (8시간)
7200 ; retry (2시간)
604800 ; expire (1주)
3600 ) ; negative TTL (1시간)
IN NS ns1.kisa.or.kr.
IN NS ns2.kisa.or.kr.
ns1.kisa.or.kr. IN A 202.30.50.100
ns2.kisa.or.kr. IN A 202.40.60.200
kisa.or.kr. IN A 202.30.50.101
www
</code>
리버스 도메인을 위한 예제 (30.50.202.in-addr.arpa)
<code>
$TTL 86400;(1일)
$ORIGIN kisa.or.kr.
@ IN SOA ns1.kisa.or.kr. admin.kisa.or.kr. (
2004082722 ; serial
28800 ; refresh (8시간)
7200 ; retry (2시간)
604800 ; expire (1주)
3600 ) ; negative TTL (1시간)
IN NS ns1.kisa.or.kr.
IN NS ns2.kisa.or.kr.
ns1.kisa.or.kr. IN A 202.30.50.100
ns2.kisa.or.kr. IN A 202.40.60.200
kisa.or.kr. IN A 202.30.50.101
www
</code>