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에 접속하여 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); |
– 테이블에 저장되어 있는 데이터를 좀 더 효율적이고 빠르게 찾기위하여 기본적인 인덱스들을 만들어줍니다.
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 |
– chkconfig수정 후 pdns데몬을 시작해줍니다.
– 데몬이 정상적으로 올라온 것을 확인할 수 있습니다.
3. Poweradmin설치
3-1. 아파치설정
# vi /usr/local/apache/conf/extra/httpd-vhosts.conf |
– 아파치설정파일을 열어 poweradmin을 설치할 경로와 도메인 호스트를 정해줍니다.
# cd /usr/local/src |
– poweradmin을 받고 압축을 푼 후 웹소스경로에 옮겨줍니다.
3-2. 기타설정
# cd /home/poweradmin/inc |
– 웹소스파일을 옮기고 도메인에 접속해보면 위와 같은 에러문구가 나타나게 됩니다. 에러내용대로 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/ |
– 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를 하였을때 정상적으로 질의가 잘 되는 것을 확인할 수 있습니다.