메뉴 닫기

PDNS설치

1. PDNS의 정의

1-1. PDNS?

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

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

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

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

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

 

2. PDNS 설치 및 설정

2-1. PDNS 설치

# yum -y install pdns pdns-backend-mysql

제일 먼저 yum을 통하여 pdnspdns-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 기존 bindgmysql로 변경합니다.

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

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

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

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

넘어갑니다.

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

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

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

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

# rm -rf /home/poweradmin/install

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

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

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

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

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

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

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

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x