본문 바로가기
工夫/Linux

리눅스 데이터베이스 서버 만들기

by 치세 2009. 7. 8.

데이터베이스를 설치하기 전에 자신의 centos에 bind 프로그램이 있는지를 확인합니다.
#  rpm -qa | grep bind


리눅스 시스템이 인터넷이 된다면 (인터넷이 되지 않으면  http://www.centos.org 에서 데몬을 받아서 설치를 합니다.)  rpm(redhat package manager) 이란 자동 인스톨 캐키지를 이용하여 몇 가지의 패키지를 받습다.

rpm으로 설치하기
# rpm - ivh 패키지 명 --force   
설치시 옵션  :  -i (install) , -v (verify), -h ( hash), -U (upgrade)
삭제시 옵션  :  -e (erase) 
 
패키지 설치시 주의 사항으로
1. 동일한 패키지가 설치 되어있는 지.
2. 각 프로그램에 맞는 설치환경이 준비 되었는 지.
3. serce 패키지 과정으로 설치된 프로그램은 없는 지.
를 확인, 준비 합니다.

bind가 설치 되어 있지 않으면  아래의 명령로 설치를 합니다. (x는 자신의 OS버전입니다.)
# rpm -ivh bind-libs-x.x.rpm
# rpm -ivh bind-utils-x.x.rpm
# rpm -ivh bind-x.x.rpm
# rpm -ivh bind-chroot-x.x.rpm

자신의 OS 버전을 알수 있는 것은
# rpm -ql sysklogd  또는  # rpm -qf /etc/syslog.conf 로 확인하실 수 있습니다.

bind 설치가 끝났으면 데이터베이스를 설정합니다. 

#vi /etc/resolv.conf 파일에서 네임 서버를 설정해 줍니다.

덧) 네임 서버도 역시 클라이언트 관련 설정을 해줘야한 네임 서버 자신이 네임서버라는 것을 알수 있습니다.

네임서버 파일로써 zone파일을 등록 시킵니다.(붉은 글씨)
#vi /etc/named.conf 파일을 열어 봅니다.
아래와 같이 붉은 부분을 제외하고 아래와 같이 나옵니다.
붉은 부분은 사용자가 직접 써 넣습니다.- zone 파일을 등록

// named.conf for Red Hat caching-nameserver
//

options {  
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        /*
         * 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;  
};
 
//
// a caching only nameserver config
//
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };  
};
 
zone "." IN {
        type hint;
        file "named.ca";
};
 
zone "localdomain" IN {
        type master;
        file "localdomain.zone";
        allow-update { none; };
};
 
zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};
 
zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

zone "gooday.net(서버명-사용자가 정함)" IN {
        type master;
        file "gooday.net.zone";
};


zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN
 {
        type master;
        file "named.ip6.local";
        allow-update { none; };
};
 
zone "255.in-addr.arpa" IN {
        type master;
        file "named.broadcast";
        allow-update { none; };
};
 
zone "0.in-addr.arpa" IN {
        type master;
        file "named.zero";
        allow-update { none; };
};
 
include "/etc/rndc.key";

붉은 부분을 직접 넣으신 후 저장하고 나옵니다.

네임서버가 실행될 때는 가장 먼저 /etc/named.conf 파일을 읽으며, /etc/named.conf파일에 여러 개의 영역에 대한 설정 파일의 위치 정보를 가지고 있습니다. 따라서 한 개의 네임서버에 여러 개의 도메인에 대해서 처리가 가능하게 됩니다. 
또한 영역파일은 보통 /var/named 디렉토리에 존재하게 되는데 도메인 이름.zone과 같은 형태의 파일로 만들어 지게 됩니다. 영역파일에는 각각의 목적에 맞는 레코드가 존재하게 됩니다.

chroot를 적용할 nameserver 루트 디렉토리를 설정 합니다.(bind 패키지애 포함되어있는 파일)# vi /etc/sysconfig/named 로 갑니다.


DB File 선언 하기
도메인과 ip를 연결시켜주는 zone파일을 선언을 해야 합니다.
/var/named/chroot/var/name 으로 이동을 합니다.
여기서 local host.zone파일을 자신이 정한 사용자 서버명으로 바꾸어 copy합니다.

# cp localhost.zone gooday.net.zone    
(/etc/named.conf에서 서버명을 gooday.net 로 했었습니다. 즉 자신이 선언한 서버명을 쓰세요.)

# cat localhost.zone 의 내용입니다.
$TTL    86400
@               IN SOA       @        root(
                                                           42              ;eriald.adams)
                                                           3H              ; refresh
                                                           15M             ; retry
                                                           1W              ; expiry
                                                           1D )            ; minimum
                  IN NS                    @
                  IN A                      127.0.0.1
                  IN A                      ::1

# vi gooday.net.zone 으로 들어 가서 세팅을 합니다.
$TTL    86400
@               IN SOA    ns.gooday.net.            root(
                                                           42              ;eriald.adams)
                                                           3H              ; refresh
                                                           15M             ; retry
                                                           1W              ; expiry
                                                           1D )            ; minimum
                  IN NS                    gooday.net.
www           IN A                     설정되어 있는 IP 주소
ns               IN A                     설정되어 있는 IP 주소


설정이 끝났으면 restart 를 합니다.
# /etc/rc.d/init.d/named restart

댓글