메뉴 닫기

PDNS설치

1. PDNS의 정의

1-1. PDNS란?

– PDNS는 PowerDNS BV사에서 만든 네임서버 데몬입니다. 여러가지의 백엔드를 지원하는 다양한 기능의
네임서버입니다. 여기서 백엔드란 사용자나 혹은 다른 프로그램과의 인터페이스를 말하는 프론트엔드와 달리
시스템의 구축, 내부로직, DB설계 데이터처리 등을 말합니다.

1-2. PDNS의 기능
– PDNS
는 기본적으로 아는 도메인에 대해서만 응답합니다. 다른 도메인에 대해서는 응답하지 않지만, recursing
이라는 백엔드를 이용하면 가능합니다.

– PDNS는 데이터베이스를 사용해 응답하기 때문에 믿을 수 있습니다. 캐쉬에 의해 잘못된 응답을 하는 일이 없습니다.

쉬운 설정을 통한 작은 크기와 많은 수의 도메인에 대한 쿼리에도 응답할 수 있는 장점이 있습니다.

– Poweradmin과 같은 도구로 DB와 연동하여 WEB인터페이스에서 관리를 할 수 있는 장점이있습니다.

 

2. PDNS 설치 및 설정

2-1. PDNS 설치

# yum -y install pdns pdns-backend-mysql

– 제일 먼저 yum을 통하여 pdns와 pdns-backend-mysql을 설치해줍니다.

# yum -y install epel-release

– 패키지를 찾지 못한다면서 설치가 안 될경우 epel를 설치하여 저장소를 추가해준 뒤 다시 설치를 진행합니다.

# rpm -e mysql –nodeps

– mysql도 같이 설치가 되니 강제로 삭제해줍니다.

 

2-2. PDNS DB설정

# mysql -uroot -p
mysql > create database pdns_db;
mysql > grant all on pdns_db.* to pdns_admin@localhost identified by ‘pdns_admin_pass’;


– mysql에 접속하여 pdns에 대한 DB와 유저를 생성해줍니다.

mysql> use pdns_db;

mysql> create table domains ( id INT auto_increment, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, type VARCHAR(6) NOT NULL, notified_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, primary key (id) );

mysql> create table records ( id INT auto_increment, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(6) DEFAULT NULL, content VARCHAR(255) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, primary key(id) );

– pdns데이터베이스를 선택하고 기본적인 테이블들을 생성해줍니다.

mysql> create index rec_name_index on records(name);
mysql> create index nametype_index on records(name,type);
mysql> create index domain_id on records(domain_id);
mysql> create table supermasters ( ip VARCHAR(25) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) DEFAULT NULL );
mysql> flush privileges;

– 테이블에 저장되어 있는 데이터를 좀 더 효율적이고 빠르게 찾기위하여 기본적인 인덱스들을 만들어줍니다.

 

2-3. PDNS 설정파일 수정

# cp -arp /etc/pdns/pdns.conf /etc/pdns/pdns.conf_ori

– conf파일을 수정하기 전 백업을 진행합니다.

# vi /etc/pdns/pdns.conf

launch=gmysql ← 기존 bind를 gmysql로 변경합니다.

gmysql-host=localhost ← 호스트를 localhost로 설정합니다.

gmysql-user=pdns_admin ← pdns유저명 입력합니다.

gmysql-password=pdns_admin_pass ← 비밀번호를 입력합니다.

gmysql-dbname=pdns_db ← DB명을 입력합니다.

– 설명에 맞게 conf파일을 수정해줍니다.

# chkconfig –levels 235 pdns on
# /etc/init.d/pdns start

– chkconfig수정 후 pdns데몬을 시작해줍니다.

– 데몬이 정상적으로 올라온 것을 확인할 수 있습니다.

 

3. Poweradmin설치

3-1. 아파치설정

# vi /usr/local/apache/conf/extra/httpd-vhosts.conf

– 아파치설정파일을 열어 poweradmin을 설치할 경로와 도메인 호스트를 정해줍니다.

# cd /usr/local/src
# wget mirror.koreaidc.com/dns/poweradmin-2.1.6.tgz
# tar xvfz poweradmin-2.1.6.tgz
# mv ./poweradmin-2.1.6/* /home/poweradmin/

– poweradmin을 받고 압축을 푼 후 웹소스경로에 옮겨줍니다.

 

3-2. 기타설정

# cd /home/poweradmin/inc
# cp -arp ./config-me.inc.php ./config.inc.php

– 웹소스파일을 옮기고 도메인에 접속해보면 위와 같은 에러문구가 나타나게 됩니다. 에러내용대로 config파일을
만들어줍니다. Install 디렉터리를 지우라고 나오는데 설치페이지를 띄워야하기 때문에 지우지 않습니다.

# vi /home/poweradmin/inc/config.inc.php

$db_host = ‘localhost’; ← 로컬호스트로 입력합니다.

$db_port = ‘3306’; ← DB포트번호를 입력합니다.

$db_user = ‘pdns_admin’; ← DB유저명을 입력합니다.

$db_pass = ‘pdns_admin_pass’; ← DB유저의 패스워드를 입력합니다.

$db_name = ‘pdns_db’; ← DB명을 입력합니다.

$db_type = ‘mysql’; ← DB타입을 입력합니다.

– 설정파일을 위에 내용에 맞게 설정해줍니다.

 

3-3. MDB2 설치

# cd /usr/local/php/bin/
# ./pear install MDB2
# ./pear install MDB2_Driver_mysql
# ldconfig
# /etc/init.d/apachectl restart

– PDNS와 Poweradmin을 연동하기 위해서는 MDB2를 설치해줘야 합니다. 위와 같이 설치를 진행합니다.

3-4. 웹상에서의 설치 및 확인

– 도메인/install로 접근하면 설치화면에 접근할 수 있습니다. 아쉽게도 한글이 지원하지 않습니다. 기본으로 되어있는 영어로 선택하고 다음으로 진행합니다.

– 넘어갑니다.

– 내용에 맞게 입력하고 다음으로 진행합니다.

– 어드민의 계정정보를 입력하고, 1차 2차 네임서버를 입력해주고 다음으로 진행합니다.

– 최초에 Mysql에 접근하여 설정하였던 부분이니 다음으로 진행합니다.

– 확인하는 부분입니다. 틀린 부분이 없는지 확인하고 다음으로 진행합니다.

# rm -rf /home/poweradmin/install

– install디렉터리를 지우라고 나옵니다. 다시 서버로 돌아가 install디렉터리를 지워줍니다.

– admin으로 일전에 설정하였던 psdns_admin_pass라는 비밀번호로 접근합니다.

– 로그인 후 Add master zone을 클릭합니다.

– 추가할 도메인을 입력하고 Add zone을 클릭하여 추가해줍니다.

– List zones을 클릭하고 해당 도메인의 편집아이콘을 클릭합니다.

– 서브도메인을 입력하고 IP를 입력한 후 Add record를 클릭합니다.

– 설정이 완료된 후 네임서버를 로컬 IP로 설정 후 nslookup과 dig를 하였을때 정상적으로 질의가 잘 되는 것을 확인할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다