BBUWOO'S [ LIKE UNIX ] WORLD Home > Lecture > Bind > Bind-3  

HOME
WHAT's BBUWOO?
LInux AnNyung
Open Source
    GitHUB
    GitHUB (for PHP)
LECTURE
MINI LECTURE
QnA BOARD
ENGLISH POEM


WARNNING

강좌의 모든 권리는 본인 김정균에게 있으며 이 강좌를 상업적 목적 으로 이용
하거나 다른 곳으로 옮길시에는 본인의 허락이 있어야 한다. 이글의 가장 최신글은
http://oops.org 에서 확인할수 있다.



1. Named.conf Configuration for Bind 8.x

named.conf file은 named.boot file의 문법만 잘알면 의외로 쉽게 만들수가 있다. Bind 8.x대에는 named-bootconf.pl 라는 named.boot를 named.conf로 변환 시켜 주는 script가 들어 있다. 우선 먼저 위의 내용을 참고하여 /etc에 named.boot를 만든다음 이 file을 이용하여

[root@bbuwoo /etc]# /$PATH/named-bootconf.pl named.boot > named.conf

라는 명령으로 간단하게 해결을 할수가 있다. 보통 named-bootconf.pl 의 경로는 /usr/doc/bind-(version)/ 에 위치하게 된다.

그럼 이것과는 별도로 named.conf의 사용법에 대해서 알아 보도록 하겠다.

 Hanterm - /etc/named.conf

 [root@bbuwoo /etc]$ cat named.conf

   // generated by named-bootconf.pl

   options {
           directory "/var/named";
           allow-transfer {
                   210.96.230.250;
           };
           /*
            * If there is a firewall between you and nameservers 
            * you want to talk to, you might need to uncomment 
            * the query-source directive below.  Previous versions 
            * of BIND always asked questions using port 53, but 
            * BIND 8.1 uses an unprivileged port by default.
            */
           // query-source address * port 53;
   };

   logging {
           category lame-servers { null; };
           category cname { null; };
           category response-checks { null; };
           category notify { null; };
   };

   //
   // a caching only nameserver config
   //
   zone "." IN {
           type hint;
           file "named.ca";
   };
   
   // primary              oops.kr.net             oops.zone
   zone "oops.kr.net" IN {
           type master;
           file "oops.zone";
   };

   zone "babo.co.kr" IN {
           type master;
           file "babo.zone";
   };

   zone "154.24.210.in-addr.arpa" IN {
           type master;
           file "oops.rev";
   };

   zone "0.0.127.in-addr.arpa" IN {
           type master;
           file "named.local";
   };

   // secondary		netusers.net		netusers.bak

   // Reverse Zone에대한 Secondary 설정
   zone "154.24.210.in-addr.arpa" IN { 
           type slave;
           file "154.24.210.in-addr.arpa.bak";
           masters { 210.24.154.1; };  // Primary NS의 IP 주소
   };

   //'netusers.net'의 Secondary 설정
   zone "netusers.net" IN {  
           type slave;
           file "netusers.bak";
           masters { 210.24.154.1; };
   };

 [root@bbuwoo /etc]$

위의 예제는 named.boot를 named.conf로 변환했을때의 내용을 보여주고 있다. 먼저 option 부분의 내용을 먼저 보도록 하자.

설명에 들어가기전에 주의 할것중에 하나는 named.boot와 named.conf 에서 달라진점 하나를 더 주의를 한다. named.boot에서는 주석처리를 할때 ";" 를 이용을 했으나 named.conf에서는 ";"을 사용하지 않고 "//"을 사용한 다는 것을 명심을 하도록 한다. 또한 다른 설정 file에서는 해당되지 않는다.

directory "/var/named";
dump-file "/var/tmp/named_dump.db";
statistics-file "/var/tmp/named.stats";
pid-file "/var/run/named.pid";
allow-transfer { 210.96.230.250; };

이 부분을 보면 named.boot의 설정 보다는 좀 더 상세한 설정이 첨가 되었다는 것을 볼수 있다. 또한 다음에 설명할 logging 부분 역시 named.boot보다 추가된 기능을 볼 수가 있다.

Directory : zone file이 위치할 곳을 지정하게 된다.
dump-file : Dump 파일이 생성되는 경로를 지정한다.
statistics-file : 통계파일이 생성되는 경로를 지정한다.
pid-file : PID가 담긴 파일 생성 경로를 지정한다.
allow-transfer : named.boot에서의 xftnets와 동일한 역할을 한다.

다음은 logging부분을 보겟다. 이역시 named.conf에서 새로 추가된 부분이다. 아래의 설정은 불필요한 log를 log file에 남기지 않도록 설정을 한것이다.

category lame-servers { null; };
category cname { null; };
category response-checks { null; };
category notify { null; };

기본적으로 named의 log는 /var/log/message에 남게 된다. 이때 이 message file을 보게 되면 lame-server 등과 같이 생판 처음 들어 보는 log밑 error가 있는 것을 볼수 있다. 보통 이런것들은 system에 의해서 작성이 되는 것들로 특별히 우리가 어떻게 해 줘야 하는 것들은 아니다. 그러므로 불필요한 정보를 log에 남겨둘 필요는 없다고 생각하므로 위와 같이 불필요한 정보들을 null로 날려 버리게 설정을 한 것이다.

그럼 primary 부분을 살펴 보도록 하자.

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
};

zone "154.24.210.in-addr.arpa" IN {
        type master;
        file "oops.rev";
};

zone " oops.kr.net" IN {
        type master;
        file "oops.zone";
};

zone "babo.co.kr" IN {
        type master;
        file "babo.zone";
};

primary 부분에서는 named.boot에서 설정한 것들을 위의 형식과 같이 변경해 주면 된다. 일단 named.boot에서 primary라고 지정하던 것이 type master 로 변경이 되었다. 그 외에는 두개의 file을 비교해 보면 그리 어려울 것이 없다고 생각된다.

Revers map 에 대한 내용은 named.boot의 설명과 동일하므로 여기서는 생략을 하도록 하겠다.

Secondary 영역 역시 secondary가 type slave로 바뀌었을 뿐 별 달라진 것은 없다. 그저 형식만 바뀌었을 뿐이다. 단 주의 할 것은 bind 가 named 의 권한으로 작동할 경우에는 다음을 체크해 주어야 한다.

1. /var/named 에 named user 에게 쓰기 권한이 있는지
2. master 서버의 named.conf 에서 allow-transfer 를 설정해 주었는지

를 체크해 보아야 한다. 1번 사항은 chown named.named /var/named 로 해결을 할수 있으며, 두번째는 1차 네임서버의 named.conf 에서 allow-transfer 에 2차 네임서버를 등록해 줘야 한다.

이 설명들이 잘 이해가 되지 않는다면 bind 4.x 의 named.boot 의 설정을 먼저 이해를 하면 더욱 쉬울 것이다.

참고할 것은 zone "domainname" IN { .. } 의 설정에서 IN 은 zone 의 CLASS 를 지정한다. zone 의 CLASS 에는 IN, HS, HESIOD, CHAOS 가 있으나 IN 외의 HS, HESIOD, CHAOS 는 별로 사용을 안하므로 언급을 하지 않는다. 또 한 CLASS 를 생략했을 경우에는 Default 로 IN 이 적용이 된다. 즉

zone "domainname" IN { .. }
zone "domainname" { .. }

위의 두 설정은 동일한 효과를 갖는다. 하지만 나중에 문법이 어떻게 적용될지 모르므로 설정은 정석으로 IN 을 써 주는 것이 좋다.

하나의 host에서 여러 개의 도메인을 처리할 때 간편하게 하는 방법을 알아 보도록 하겠다. 일단 기본적으로 하나의 sample zone file을 만들어 두도록 한다. 그리고 named.boot(bind-4의 경우)나 named.conf(bind-8의 경우) 에서 서로 공유가 가능한, 즉 IP address가 같은 경우에는 위에서 만든 sample file을 지정을 하도록 하여 사용할수도 있다.

 Hanterm - /etc/named.conf

 [root@bbuwoo /etc]$ cat named.conf

   options {
           directory "/var/named";
           allow-transfer {
                   210.96.230.250;
           };

           // query-source address * port 53;
   };

   logging {
           category lame-servers { null; };
           category cname { null; };
           category response-checks { null; };
           category notify { null; };
   };

   //
   // a caching only nameserver config
   //
   zone "." IN {
           type hint;
           file "named.ca";
   };
   
   // primary              oops.kr.net             oops.zone
   zone "oops.kr.net" IN {
           type master;
           file "sample.zone";
   };

   zone "babo.co.kr" IN {
           type master;
           file "sample.zone";
   };

   zone "154.24.210.in-addr.arpa" IN {
           type master;
           file "oops.rev";
   };

   zone "0.0.127.in-addr.arpa" IN {
           type master;
           file "named.local";
   };

   // secondary		netusers.net		netusers.bak   

   zone "154.24.210.in-addr.arpa" IN { 
           type slave;
           file "154.24.210.in-addr.arpa.bak";
           masters { 210.24.154.1; };
   };

   zone "netusers.net" IN {  
           type slave;
           file "netusers.bak";
           masters { 210.24.154.1; };
   };

 [root@bbuwoo /etc]$

다음은 /etc/resolv.conf를 보겠다.



>> 이전 : Name Service 란?
>> 다음 : resolv.conf configuration



    



 Home > Lecture > Bind > Bind-3

Copyright 1997-2024 JoungKyun Kim 
LAST MODIFIED: 2017/01/18