리눅스

Total 331
Today 0
profile_image
윤진한
08-02-27 23:53 0개 13회
일반문서
[FreeBSD] DNS 설치하기
www# pkg_add -r bind
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-4.9-release/Latest/bind.tgz...tar: +CONTENTS: time stamp Oct  6 07:43 2003 is 5718267 s in the future
 
www# pkg_info|grep bind
bind-8.3.6          The Berkeley Internet Name Domain, an implementation of DNS
www# cd /etc/namedb
www# l
total 14
-rw-r--r--  1 root  wheel   427 Oct 28 00:26 PROTO.localhost-v6.rev
-rw-r--r--  1 root  wheel   423 Oct 28 00:26 PROTO.localhost.rev
-rw-r--r--  1 root  wheel  1032 Oct 28 00:26 make-localhost
-rw-r--r--  1 root  wheel  3478 Oct 28 00:26 named.conf
-rw-r--r--  1 root  wheel  2583 Oct 28 00:26 named.root
 
--------------------------------------------
www# vi named.conf
// aaa.co.kr ////////////////////////////////////
zone "aaa.co.kr" IN{
        type master;
        file "aaa.co.kr.zone";
};
// 34.12.210 /////////////////////////////////////////
zone "34.12.210.IN-ADDR.ARPA" IN{
        type master;
        file "56.rev";
};
 
리눅스와 달리 IN을 넣을 경우 에러가 발생하는 것 같음..
Aug  1 04:14:28 www named[6226]: master zone "aaa.co.kr" (IN) rejected due to errors (serial 2834675887)
IN을 삭제해야 함..
그리고 IN-ADDR-ARPA를 소문자로 in-addr-arpa로 사용하면 nslookup에서 해당 도메인을 찾지 못하게 되니 유의하자..
-------------------------------------------
 
www# sh make-localhost
www# l
total 22
-rw-r--r--  1 root  wheel   264 Aug  1 03:57 56.rev
-rw-r--r--  1 root  wheel   427 Oct 28 00:26 PROTO.localhost-v6.rev
-rw-r--r--  1 root  wheel   423 Oct 28 00:26 PROTO.localhost.rev
-rw-r--r--  1 root  wheel   290 Aug  1 04:18 aaa.co.kr.zone
-rw-r--r--  1 root  wheel   451 Aug  1 04:19 localhost-v6.rev
-rw-r--r--  1 root  wheel   447 Aug  1 04:19 localhost.rev
-rw-r--r--  1 root  wheel  1032 Oct 28 00:26 make-localhost
-rw-r--r--  1 root  wheel  3737 Aug  1 04:14 named.conf
-rw-r--r--  1 root  wheel  2583 Oct 28 00:26 named.root
 
make-localhost는 localhost파일을 만드는 쉘 스크립트이다..
이것을 실행하지 않고.. ndc를 실행하게 되면 아래와 같은 에러가 발생하게 된다.
--------------------------------------------
Aug  1 04:18:56 www named[6231]: starting (/etc/namedb/named.conf).  named 8.3.6-REL Mon Oct 27 14:55:35 GMT 2003 root@freebsd-stable.sentex.ca:/usr/obj/usr/src/usr.sbin/named
Aug  1 04:18:56 www named[6231]: db_load could not open: localhost.rev: No such file or directory <== 에러
Aug  1 04:18:56 www named[6231]: db_load could not open: localhost-v6.rev: No such file or directory <== 에러
Aug  1 04:18:56 www named[6231]: db_load could not open: localhost-v6.rev: No such file or directory <== 에러
--------------------------------------------
 
아래 zone 파일과 rev 파일은 에러가 있는 것들이다..
우선 읽어보고 넘어가기 바란다.
--------------------------------------------
www# vi aaa.co.kr.zone
$TTL 345600
@       IN      SOA     ns.aaa.co.kr     kan.aaa.co.kr. (
                200403171503    ;Serial
                86400           ;Refresh -- 24h
                7200            ;Retry -- 2h
                259200          ;Expire -- 30days
                345600)         ;mininum -- 4days
        IN      NS      aaa.co.kr.
        IN      A       210.12.34.56
        IN      MX 10   mail
 
        IN      CNAME   www.aaa.co.kr.
www     IN      A       210.12.34.56
 
이 zone파일에서는 Expire의 기간이 너무 적어서 경고를 발생하게 된다.
Aug  1 04:26:40 www named[6268]: aaa.co.kr.zone: WARNING SOA expire value is less than 7 days (259200)
즉 expire 기간이 7일이상 되어야 한다는 것이다.. 30일로 하려다 0(영)이 하나 빠져서 기간이 잘못된 경우이다.(259200으로 수정)
 
그리고
IN      MX 10   mail => IN      MX 10   aaa.co.kr.
변경해 주어야 한다.. 아니면 에러를 발생시킨다..
 
마지막으로
IN      CNAME   www.aaa.co.kr. 이곳에서 에러가 발생하는데.. 이것은  IN CNAME @ 로 해도 마찬가지다..
그래서
ns      IN      A       210.12.34.56
www     IN      CNAME   ns 
이처럼 사용해 에러를 해결했다..
       IN      A        210.12.34.56
이 필드가 없다면 nslookup에서 해당 도메인명(aaa.co.kr)을 찾을수 없게 된다..
당연히 www.aaa.co.kr은 찾을수 있지만..
--------------------------------------------
 
--------------------------------------------
www# vi 56.rev
@TTL 345600
@       IN      SOA     ns.aaa.co.kr.    kan.aaa.co.kr. (
                0403171512      ;Serial
                86400           ;Reflash -- 24h
                7200            ;Retry -- 2h   
                2592000         ;Expire -- 30days
                345600)         ;minum -- 4days
 
        IN      NS      ns.aaa.co.kr.
        IN      MX 10   mail        
 
56      IN      PTR     aaa.co.kr.
 
$TTL을 @TTL로 에러로 사용한 발생한 에러..
Aug  1 04:51:14 www named[6333]: Zone "34.12.210.in-addr.arpa" (file 56.rev): No default TTL ($TTL <value>) set, using SOA minimum instead
-------------------------------------------
 
### 최종적으로 완성된 zone파일과 rev파일
-----------------------------------------------------------------
www# vi aaa.co.kr.zone
$TTL 345600
@       IN      SOA     ns.aaa.co.kr.    kan.aaa.co.kr. (
                0403181506      ;Serial
                86400           ;Refresh
                7200            ;Retry
                2592000         ;Expire
                345600)         ;mininum
        IN      NS      aaa.co.kr.
        IN      A       210.12.34.56
        IN      MX 10   mail
ns      IN      A       210.12.34.56
bsd     IN      A       210.12.34.56
www     IN      CNAME   ns
mail    IN      A       210.12.34.56
www# vi 56.rev
$TTL 345600
@       IN      SOA     ns.aaa.co.kr.    kan.aaa.co.kr. (
                0403181512      ;Serial
                86400           ;Reflash -- 24h
                7200            ;Retry -- 2h
                2592000         ;Expire -- 30days
                345600)         ;minum -- 4days
        IN      NS      aaa.co.kr.
        IN      MX 10   mail
56      IN      PTR     aaa.co.kr.
56      IN      PTR     bsd.aaa.co.kr.
56      IN      PTR     kan.aaa.co.kr.
56      IN      PTR     mail.aaa.co.kr.
--------------------------------------------------------------------
 
www# ndc start
new pid is 6189
 
www# vi /etc/resolv.conf
search aaa.co.kr
domain aaa.co.kr
nameserver 127.0.0.1
nameserver 210.12.34.56 
 
www# vi /etc/hosts
127.0.0.1               aaa localhost.localdomain localhost
210.12.34.56          aaa www.aaa.co.kr www
210.12.34.56          aaa www.aaa.co.kr
시스템 부팅과 함께 named를 실해하려면.. /etc/rc.conf 파일을 수정해 주면 된다.
www# vi /etc/rc.conf
named_enable="YES" <== 이것만 추가해도 된다.
named_program="named"
named_flags=""

댓글목록

등록된 댓글이 없습니다.