우분투 리눅스 Bind9 버전에서 DNS서버를 Master/Slave로 구축하는 방법입니다.
구축하기 앞서서 방화벽을 사용하신다면 TCP/UDP 53번을 열어 주셔야 합니다.
 

– Bind 설치
bind를 설치 합니다.

[email protected]:~$ su root
[email protected]:~# apt-get update
[email protected]:~# apt-get install bind9

 

– rndc 생성
생성된 key의 이름을 named.conf 설정 파일에 추가할때 적절한 이름으로 변경합니다.

[email protected]:~# rndc-confgen
# Start of rndc.conf
key “rndc-key” {
algorithm hmac-md5;
secret “yHH6sSaUxOo8m8Fd0t+uyQ==”;
};

options {
default-key “rndc-key”;
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf

# Use with the following in named.conf, adjusting the allow list as needed:
# key “rndc-key” {
# algorithm hmac-md5;
# secret “yHH6sSaUxOo8m8Fd0t+uyQ==”;
# };
#
# controls {
# inet 127.0.0.1 port 953
# allow { 127.0.0.1; } keys { “rndc-key”; };
# };
# End of named.conf

 

– Master 서버 설정

[email protected]:~# vi /etc/bind/named.conf
options {
// zone file이 위치할 곳을 지정합니다.
directory “/etc/bind/db”;
// NXDOMAIN으로 응답 여부 (기본값 no)
auth-nxdomain no;
// IPv6
listen-on-v6 { any; };
// BIND 버전을 강제로 지정합니다.
version “Yongbok.net”;
// 자체 네임서버를 사용할 경우 허용할 아이피 또는 대역을 설정합니다.
allow-recursion { 127.0.0.1; 14.63.161.177; 192.168.0.1/24; };
// 네임서버의 zone data 정보를 남에게 보여줄 껀지 여부입니다.
allow-transfer { 14.63.161.177; };
// 자체 네임서버도 사용안하며 OpenDNS를 사용하지 않으려면 주석 해제 하세요.
// 단, allow-recursion는 주석처리 하셔야 합니다.
//recursion no;
};
//———————————————-//
// rndc-confgen으로 생성한 key 파일의 내용 및 key 이름을 변경해서 추가합니다.
key “yongbok-key” {
algorithm hmac-md5;
secret “yHH6sSaUxOo8m8Fd0t+uyQ==”;
};
controls {
inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { “yongbok-key”; };
};
//———————————————-//
// root 도메인의 정보를 가지고 있는 파일을 지정 해줍니다.
zone “.” {
type hint;
file “/etc/bind/db.root”;
};
//———————————————-//
// 네임 서버로 사용할 도메인을 지정 해줍니다.
zone “yongbok.net” IN {
type master;
file “inverse.yongbok.net”;
allow-update { 14.63.161.177; }; // Slave로 사용될 서버의 IP를 입력 합니다.
allow-transfer { 14.63.161.177; }; //
};
zone “164.63.14.in-addr.arpa” {
type master;
file “reverse.yongbok.net”;
allow-update { 14.63.161.177; };
allow-transfer { 14.63.161.177; };
};
zone “0.0.127.in-addr.arpa” {
type master;
file “loopback.yongbok.net”;
allow-update { 14.63.161.177; };
allow-transfer { 14.63.161.177; };
};
//—————————————————————-//

 

– Inverse Zone 파일 생성
인버스 존파일은 아이피 주소를 문자로 변환 해주는 역할을 담당 합니다.

[email protected]:~# vi /etc/bind/db/inverse.yongbok.net
; Inverse Zone
$TTL 300
@ IN SOA ns.yongbok.net. ruo91.yongbok.net. (
2013042809 ; Serial
21600 ; Refresh
1800 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;———————————————————————————————-
@ IN NS ns.yongbok.net.
@ IN NS ns2.yongbok.net.
;
; MX records (Mail 서버)
IN MX 10 yongbok.net.net.
; SPF 설정
yongbok.net. IN TXT “v=spf1 ip4:14.63.164.124 ~all”
;
A 14.63.164.124
ns A 14.63.164.124
ns2 A 14.63.161.117
www A 14.63.164.124
ruo91 A 14.63.164.124
;——————————————————————————

 

– Revers Zone 파일 생성
리버스 존파일은 문자로된 도메인 주소를 아이피로 변환 해주는 역할을 담당합니다.

[email protected]:~# vi /etc/bind/db/reverse.yongbok.net
; Reverse Zone
$TTL 300
@ IN SOA ns.yongbok.net. ruo91.yongbok.net. (
2013042809 ; Serial
21600 ; Refresh
1800 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;———————————————————————————————-
@ IN NS ns.yongbok.net.
@ IN NS ns2.yongbok.net.
;
; MX records (Mail 서버)
IN MX 10 yongbok.net.net.
; SPF 설정
yongbok.net. IN TXT “v=spf1 ip4:14.63.164.124 ~all”
;
300 PTR ns.yongbok.net
300 PTR ns2.yongbok.net
300 PTR yongbok.net
300 PTR www.yongbok.net
300 PTR ruo91.yongbok.net
;——————————————————————————

 

– Loopback Zone 파일 생성
루프백 리버스 존파일도 만들어 줍니다.

[email protected]:~# vi /etc/bind/loopback.yongbok.net
; Loopback Zone
$TTL 300
@ IN SOA ns.yongbok.net. ruo91.yongbok.net. (
2013042809 ; Serial
21600 ; Refresh
1800 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;———————————————————————————————-
@ IN NS ns.yongbok.net.
@ IN NS ns2.yongbok.net.
;
; MX records (Mail 서버)
IN MX 10 yongbok.net.net.
; SPF 설정
yongbok.net. IN TXT “v=spf1 ip4:14.63.164.124 ~all”
;
300 PTR localhost.
;——————————————————————————

 

2차 DNS – Slave 서버 설정

[email protected]:~# vi /etc/bind/named.conf
options {
// zone file이 위치할 곳을 지정합니다.
directory “/etc/bind/db”;
// NXDOMAIN으로 응답 여부 (기본값 no)
auth-nxdomain no;
// IPv6
listen-on-v6 { any; };
// BIND 버전을 강제로 지정합니다.
version “Yongbok.net”;
// 자체 네임서버를 사용할 경우 허용할 아이피 또는 대역을 설정합니다.
allow-recursion { 127.0.0.1; 14.63.164.124; 192.168.0.1/24; };
// 네임서버의 zone data 정보를 남에게 보여줄 껀지 여부입니다.
allow-transfer { 14.63.164.124; };
// 자체 네임서버도 사용안하며 OpenDNS를 사용하지 않으려면 주석 해제 하세요.
// 단, allow-recursion는 주석처리 하셔야 합니다.
//recursion no;
};
//———————————————-//
// root 도메인의 정보를 가지고 있는 파일을 지정 해줍니다.
zone “.” {
type hint;
file “/etc/bind/db.root”;
};
//———————————————-//
// 네임 서버로 사용할 도메인을 지정 해줍니다.
zone “yongbok.net” IN {
type slave; // type을 slave로 변경 합니다.
masters { 14.63.164.124; }; // master의 IP를 입력 합니다.
file “inverse.yongbok.net”;
};
zone “164.63.14.in-addr.arpa” {
type slave;
masters { 14.63.164.124; };
file “reverse.yongbok.net”;
};
zone “0.0.127.in-addr.arpa” {
type slave;
masters { 14.63.164.124; };
file “loopback.yongbok.net”;
};
//—————————————————————-//

 

– BIND 재시작

[email protected]:~# service bind9 restart
* Stopping domain name service… bind [ OK ]
* Starting domain name service… bind [ OK ]

 

– 도메인 정보 확인
nslookup 명령어로 DNS 서버 정보를 확인 합니다.

[email protected]:~# nslookup www.yongbok.net
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.yongbok.net
Address: 14.63.164.124

 

DNS 점검 해보시길 권장합니다.
KISA : http://krnic.or.kr/jsp/dns/nameServerInfo/dnsCheck.jsp
IntoDNS : http://www.intodns.com/