Nameserver Howto

Ubuntu Korea Community Wiki
imported>Drake님의 2014년 7월 18일 (금) 07:18 판 (새 문서: 우분투 리눅스 Bind9 버전에서 DNS서버를 Master/Slave로 구축하는 방법입니다. 구축하기 앞서서 방화벽을 사용하신다면 TCP/UDP 53번을 열어 주...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)
둘러보기로 이동 검색으로 이동

우분투 리눅스 Bind9 버전에서 DNS서버를 Master/Slave로 구축하는 방법입니다.

구축하기 앞서서 방화벽을 사용하신다면 TCP/UDP 53번을 열어 주셔야 합니다.


    • Bind 설치**

bind를 설치 합니다. ruo91@yongbok:~# su root root@yongbok:~# apt-get update root@yongbok:~# apt-get install bind9


    • rndc 생성**

생성된 key의 이름을 named.conf 설정 파일에 추가할때 적절한 이름으로 변경합니다. root@yongbok:~# 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 서버 설정**

root@yongbok:~# 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 파일 생성**

인버스 존파일은 아이피 주소를 문자로 변환 해주는 역할을 담당 합니다. root@yongbok:~# 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 파일 생성**

리버스 존파일은 문자로된 도메인 주소를 아이피로 변환 해주는 역할을 담당합니다. root@yongbok:~# 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 파일 생성**

루프백 리버스 존파일도 만들어 줍니다. root@yongbok:~# 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.



    • Slave 서버 설정**

root@yongbok:~# 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 재시작**

root@yongbok:~# service bind9 restart * Stopping domain name service... bind [ OK ] * Starting domain name service... bind [ OK ]


    • 도메인 정보 확인**

nslookup 명령어로 DNS 서버 정보를 확인 합니다. root@yongbok:~# 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/