"PowerDNS"의 두 판 사이의 차이
(새 문서: DNS 솔루션인 PowerDNS를 정리 합니다. *홈페이지 : https://www.powerdns.com/ *다운로드 : *라이선스 : *플랫폼 : = PowerDNS 개...) |
잔글 |
||
(같은 사용자의 중간 판 35개는 보이지 않습니다) | |||
7번째 줄: | 7번째 줄: | ||
= PowerDNS 개요 = | = PowerDNS 개요 = | ||
+ | |||
+ | PowerDNS의 테이블간 관계도 | ||
+ | |||
+ | [[File:PowerDNS Architecture.png|700px|PowerDNS Architecture.png]] | ||
= CentOS 6.5에 설치 = | = CentOS 6.5에 설치 = | ||
+ | |||
+ | == PowerDNS 설치 == | ||
+ | |||
+ | [[CentOS#EPEL .EC.84.A4.EC.B9.98|CensOS용 EPEL 설치]]를 합니다. | ||
+ | |||
+ | PowerDNS를 설치 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | yum install pdns pdns-backend-mysql pdns-recursor<br/> | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | [[MariaDB|MariaDB]]에서 Database 등을 생성 합니다. | ||
+ | |||
+ | vi pdns.sql | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | create table domains (<br/> id INT auto_increment,<br/> name VARCHAR(255) NOT NULL,<br/> master VARCHAR(128) DEFAULT NULL,<br/> last_check INT DEFAULT NULL,<br/> type VARCHAR(6) NOT NULL,<br/> notified_serial INT DEFAULT NULL, <br/> account VARCHAR(40) DEFAULT NULL,<br/> primary key (id)<br/>) Engine=InnoDB;<br/>CREATE UNIQUE INDEX name_index ON domains(name); | ||
+ | |||
+ | CREATE TABLE records (<br/> id INT auto_increment,<br/> domain_id INT DEFAULT NULL,<br/> name VARCHAR(255) DEFAULT NULL,<br/> type VARCHAR(10) DEFAULT NULL,<br/> content VARCHAR(64000) DEFAULT NULL,<br/> ttl INT DEFAULT NULL,<br/> prio INT DEFAULT NULL,<br/> change_date INT DEFAULT NULL,<br/> primary key(id)<br/>) Engine=InnoDB;<br/>CREATE INDEX rec_name_index ON records(name);<br/>CREATE INDEX nametype_index ON records(name,type);<br/>CREATE INDEX domain_id ON records(domain_id); | ||
+ | |||
+ | create table supermasters (<br/> ip VARCHAR(25) NOT NULL, <br/> nameserver VARCHAR(255) NOT NULL, <br/> account VARCHAR(40) DEFAULT NULL<br/>) Engine=InnoDB; | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | mysql -uroot -p mysql | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | create database powerdns;<br/>grant all privileges on powerdns.* to powerdns@127.0.0.1 identified by 'demo1234';<br/>grant all privileges on powerdns.* to powerdns@localhost identified by 'demo1234';<br/>update user<br/> set select_priv = 'Y', <br/> insert_priv = 'Y', <br/> update_priv = 'Y', <br/> delete_priv = 'Y', <br/> create_priv = 'Y', <br/> drop_priv = 'Y', <br/> reload_priv = 'Y', <br/> shutdown_priv = 'Y', <br/> process_priv = 'Y', <br/> file_priv = 'Y', <br/> grant_priv = 'Y', <br/> references_priv = 'Y', <br/> index_priv = 'Y', <br/> alter_priv = 'Y', <br/> show_db_priv = 'Y', <br/> super_priv = 'Y', <br/> create_tmp_table_priv = 'Y', <br/> lock_tables_priv = 'Y', <br/> execute_priv = 'Y', <br/> repl_slave_priv = 'Y', <br/> repl_client_priv = 'Y', <br/> create_view_priv = 'Y', <br/> show_view_priv = 'Y', <br/> create_routine_priv = 'Y', <br/> alter_routine_priv = 'Y', <br/> create_user_priv = 'Y'<br/>where user = 'powerdns';<br/>commit;<br/>flush privileges; | ||
+ | |||
+ | select host, user, password from user where user = 'powerdns' order by user, host;<br/>select * from user where user = 'powerdns' order by user, host; | ||
+ | |||
+ | use powerdns;<br/>source pdns.sql<br/>commit;<br/>show tables;<br/>quit; | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | vi /etc/pdns/pdns.conf | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | setuid=pdns #--- 이미 있음<br/>setgid=pdns #--- 이미 있음<br/>#launch=bind #--- 삭제 | ||
+ | |||
+ | launch=gmysql<br/>allow-recursion=127.0.0.1,192.168.70.1<br/>config-dir=/etc/pdns<br/>daemon=yes<br/>disable-axfr=yes<br/>guardian=yes<br/>local-port=53<br/>module-dir=/usr/lib64/pdns<br/>recursor=127.0.0.1:5300<br/>socket-dir=/var/run<br/>version-string=powerdns<br/> <br/>gmysql-host=localhost<br/>gmysql-user=powerdns<br/>gmysql-password=demo1234<br/>gmysql-dbname=powerdns<br/>gmysql-port=3306<br/>#gmysql-socket=/var/lib/mysql/mysql.sock #--- 향후 사용 | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | vi /etc/pdns-recursor/recursor.conf | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | local-port = 5300<br/>allow-from=127.0.0.0/8<br/> | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | setup 명령을 사용하여 방화벽 설정을 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | 53/tcp, 53/udp | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | PowerDNS를 시작 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | service pdns restart | ||
+ | |||
+ | service pdns-recursor restart | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | PowerDNS 설치 확인 | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | <font color="#333333" face="sans-serif, Arial, Verdana, Trebuchet MS"><span style="line-height: 20.7999992370605px;">yum install bind-utils</span></font> | ||
+ | |||
+ | <font color="#333333" face="sans-serif, Arial, Verdana, Trebuchet MS"><span style="line-height: 20.7999992370605px;">dig @localhost www.jopenbusiness.com<br/></span></font>nslookup www.jopenbusiness.com localhost<font color="#333333" face="sans-serif, Arial, Verdana, Trebuchet MS"><span style="line-height: 20.7999992370605px;"></span></font> | ||
+ | |||
+ | |} | ||
+ | |||
+ | == PowerAdmin 설치 == | ||
+ | |||
+ | <span style="color:#0000FF;">'''<span style="font-size:larger;">PowerAdmin 사이트 정보</span>'''</span> | ||
+ | |||
+ | *홈페이지 : [http://www.poweradmin.org/ http://www.poweradmin.org/] | ||
+ | *GutHub : [https://github.com/poweradmin/poweradmin https://github.com/poweradmin/poweradmin] | ||
+ | |||
+ | |||
+ | |||
+ | <span style="color:#0000FF;"><span style="font-size:larger;">'''PowerAdmin 설치'''</span></span> | ||
+ | |||
+ | |||
+ | |||
+ | PowerAdmin을 다운로드 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | wget [http://jaist.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz http://jaist.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz]<br/>tar xvfz poweradmin-2.1.7.tgz<br/>chown -R apache:apache poweradmin-2.1.7<br/>mv poweradmin-2.1.7 /nas/www/ossnode101/public_html/poweradmin | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | <div> | ||
+ | 필요한 PHP 라이브러리를 설치 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | wget [http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm]<br/>rpm -Uvh epel-release-6-8.noarch.rpm #--- EPEL 라이브러리가 없으면 설정 합니다. | ||
+ | |||
+ | |||
+ | |||
+ | yum install php-mcrypt | ||
+ | |||
+ | |} | ||
+ | </div> | ||
+ | <br/>[http://ossnode101.ossbiz.co.kr/poweradmin/install/ http://ossnode101.ossbiz.co.kr/poweradmin/install/] 로 접속하여 설치를 진행 합니다. | ||
+ | |||
+ | Step 1<br/>[[File:PowerAdmin Install 001.png|File:PowerAdmin Install 001.png]] | ||
+ | |||
+ | Step 2<br/>[[File:PowerAdmin Install 002.png|700px|PowerAdmin Install 002.png]] | ||
+ | |||
+ | Step 3<br/>[[File:PowerAdmin Install 003.png|700px|PowerAdmin Install 003.png]] | ||
+ | |||
+ | Step 4<br/>[[File:PowerAdmin Install 004.png|700px|PowerAdmin Install 004.png]] | ||
+ | |||
+ | Step 5<br/>[[File:PowerAdmin Install 005.png|700px|PowerAdmin Install 005.png]] | ||
+ | |||
+ | Step 6<br/>[[File:PowerAdmin Install 006.png|700px|PowerAdmin Install 006.png]] | ||
+ | |||
+ | Step 7<br/>[[File:PowerAdmin Install 007.png|700px|PowerAdmin Install 007.png]] | ||
+ | |||
+ | <br/>설치 완료 후 install 폴더를 삭제 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | cd /nas/www/ossnode101/public_html/poweradmin | ||
+ | |||
+ | rm -rf install | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | [http://ossnode101.ossbiz.co.kr/poweradmin/ http://ossnode101.ossbiz.co.kr/poweradmin/] 사이트에 admin / demo1234 사용자로 접속하여 사용 합니다. | ||
+ | |||
+ | |||
+ | |||
+ | 설치 후 config.inc.php 파일이 없다는 오류가 표시되면서 정상적으로 동작하지 않을 경우 아래와 같이 작업 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | cd inc<br/>cp config-me.inc.php config.inc.php | ||
+ | |||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | vi config.inc.php | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | $db_host = 'localhost';<br/>$db_port = '3306';<br/>$db_user = 'powerdns';<br/>$db_pass = 'demo1234';<br/>$db_name = 'powerdns';<br/>$db_type = 'mysql';<br/>$session_key = 'dfjdd762he';<br/>$iface_lang = 'en_EN'; | ||
+ | |||
+ | |} | ||
+ | |||
+ | = PowerDNS 설정 = | ||
+ | |||
+ | == Database 입출력으로 관리 == | ||
+ | |||
+ | <span style="color:#0000FF;">'''<span style="font-size:larger;">records 테이블의 type 종류</span>'''</span> | ||
+ | |||
+ | {| border="1" cellspacing="0" cellpadding="2" style="width: 100%;" | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">'''type'''</span> | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">'''상세'''</span> | ||
+ | |- | ||
+ | | style="text-align: center;" | <span style="color:#000000;">NS</span> | ||
+ | | <span style="color:#000000;">Name Server</span> | ||
+ | |- | ||
+ | | style="text-align: center;" | <span style="color:#000000;">A</span> | ||
+ | | <span style="color:#000000;">도메인에 IP 할당</span> | ||
+ | |- | ||
+ | | style="text-align: center;" | <span style="color:#000000;">MX</span> | ||
+ | | <span style="color:#000000;">Mail Exchange</span> | ||
+ | |- | ||
+ | | style="text-align: center;" | <span style="color:#000000;">CNAME</span> | ||
+ | | <span style="color:#000000;">도메인 별칭에 IP 할당</span> | ||
+ | |- | ||
+ | | style="text-align: center;" | <span style="color:#000000;">PTR</span> | ||
+ | | <span style="color:#000000;">IP에 도메인 할당</span> | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | <span style="color:#FFFFFF;"><span style="color:#FFFFFF;"><span style="color:#FFFFFF;"><span style="color:#0000FF;"><span style="font-size:larger;">'''DNS 설정 샘플'''</span></span></span></span></span> | ||
+ | |||
+ | <span style="color:#FFFFFF;"><span style="color:#FFFFFF;">설치 후 config.inc.php 파일이 없다는 오류가 표시되면서 정상적으로 동작하지 않을 경우 아래와 같이 작업 합니다.</span></span> | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | #--- 도메인 등록<br/>INSERT INTO domains (name, master, type, notified_serial) VALUES ('jopenbusiness.com', '', 'MASTER', 1);''<br/>select id, name from domains where name = 'jopenbusiness.com'; | ||
+ | |||
+ | #--- NS : Name Server 등록<br/>INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) <br/> VALUES (1, 'jopenbusiness.com', 'NS', 'ns.jopenbusiness.com', 300, 0, 1267002606); | ||
+ | |||
+ | #--- A : 도메인에 IP 할당<br/>INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) <br/> VALUES (1, 'mail.jopenbusiness.com', 'A', '192.168.70.1', 300, 0, 1267002606); | ||
+ | |||
+ | #--- MX : Mail Exchange 설정<br/>INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) <br/> VALUES (1, 'jopenbusiness.com', 'MX', 'mail.jopenbusiness.com', 300, 10, 1267002606);<br/> <br/> #--- CNAME : 도메인의 별칭에 IP 할당<br/>INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) <br/> VALUES (1, 'mail01.jopenbusiness.com', 'CNAME', '192.168.70.1', 300, 0, 1267002606);<br/> <br/> #--- PTR : IP에 도메인 할당<br/>INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) <br/> VALUES (1, '192.168.70.1', 'PTR', 'mail.jopenbusiness.com', 300, 0, 1267002606); | ||
+ | |||
+ | #--- SOA : <br/>INSERT INTO records (domain_id, name, type, content, ttl, prio, change_date) <br/> VALUES (1, 'jopenbusiness.com', 'SOA', 'ns.jopenbusiness.com dnsmaster@jopenbusiness.com2011120800 10800 3600 432000 300', 300, 0, 1267002606); | ||
+ | |||
+ | |} | ||
+ | |||
+ | == PowerAdmin으로 관리 == | ||
+ | |||
+ | <span style="color:#0000FF;"><span style="font-size:larger;">'''PowerAdmin 메뉴'''</span></span> | ||
+ | |||
+ | {| border="1" cellspacing="0" cellpadding="2" style="width: 100%;" | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">Index</span> | ||
+ | | PowerAdmin 메뉴 표시 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">Search zones and records</span> | ||
+ | | Zone과 records 검색 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">List zones</span> | ||
+ | | | ||
+ | Zone 목록 조회 및 수정<br/>Zone에 records를 등록할 수 있습니다. | ||
+ | |||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">List supermasters</span> | ||
+ | | Super Master 목록 조회 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">Add master zone</span> | ||
+ | | master zone 등록 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">Add slave zone</span> | ||
+ | | slave zone 등록 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">Add supermaster</span> | ||
+ | | Super Master 네임서버 등록 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#F0F8FF;">Change password</span> | ||
+ | | 사용자 암호 변경 | ||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">User administartion</span> | ||
+ | | | ||
+ | 사용자 정보 관리<br/>Permission template을 사용하여 사용자의 권한 관리 | ||
+ | |||
+ | |- | ||
+ | | style="text-align: center; background-color: rgb(148, 138, 84);" | <span style="color:#FFFFFF;">Logout</span> | ||
+ | | 로그 아웃 | ||
+ | |} | ||
+ | |||
+ | |||
+ | |||
+ | <span style="color:#0000FF;"><span style="font-size:larger;">'''DNS 등록 절차'''</span></span> | ||
+ | |||
+ | "Add master zone" 메뉴에서 도메인 (zztest.com)을 등록 합니다. | ||
+ | |||
+ | [[File:PowerAdmin setting01.png|700px|PowerAdmin setting01.png]] | ||
+ | |||
+ | "List zones" 메뉴를 선택 합니다.<br/> zztest.com 존의 수정 화면에서 records를 등록 합니다.<br/>[[File:PowerAdmin setting02.png|700px|PowerAdmin setting02.png]] | ||
+ | |||
+ | "Search zones and records" 에서 아래 정보를 확인할 수 있습니다.<br/>[[File:PowerAdmin setting03.png|700px|PowerAdmin setting03.png]]<br/> | ||
+ | |||
+ | DNS 등록이 정상적으로 설정 되었는지 확인 합니다. | ||
+ | |||
+ | {| cellspacing="1" cellpadding="1" style="color: rgb(0, 0, 0); font-family: sans-serif; line-height: 19.0499992370605px; width: 853px;" | ||
+ | |- | ||
+ | | style="background-color: rgb(241, 241, 241);" | | ||
+ | dig @localhost www.zztest.com | ||
+ | |||
+ | |} | ||
+ | |||
+ | = DNS Server 등록 = | ||
+ | |||
+ | Whois에 DNS 서버를 등록하는 방법을 설명 합니다. | ||
+ | |||
+ | "도메인 활용/부가서비스 -> 네임서버 고급설정" 메뉴를 선택 합니다.<br/>도메인을 선택한 후 "DNS 호스트 설정" 버튼을 선택하여 DNS 호스트를 등록 합니다.<br/>(주의, 등록한 DNS host는 등록하려는 DNS Server에 설정되어 있어야 합니다.) | ||
+ | |||
+ | [[File:Whois 001.png|File:Whois 001.png]] | ||
+ | |||
+ | "변경/이전 -> 등록정보/네임서버 변경" 메뉴를 선택 합니다.<br/>도메인을 선택한 후 "네임서버 변경" 버튼을 선택하여 네임서버에 새로 등록한 DNS 호스트를 설정 합니다. | ||
+ | |||
+ | [[File:Whois 002.png|700px|Whois 002.png]] | ||
= 참고 문헌 = | = 참고 문헌 = | ||
+ | <ul style="/* insecure input */"> | ||
+ | <li>[[Network|Network]]</li> | ||
+ | <li>[[DNS|DNS]]</li> | ||
+ | <li>[http://www.jopenbusiness.com/mediawiki/index.php/CentOS#DNS_.EC.84.9C.EB.B2.84_.EA.B5.AC.EC.B6.95 DNS 서버 구축] : bind를 사용한 [[DNS|DNS]] 서버 구축</li> | ||
+ | </ul> | ||
+ | [[Category:Network|Category:Network]] |
2014년 9월 24일 (수) 21:43 기준 최신판
DNS 솔루션인 PowerDNS를 정리 합니다.
- 홈페이지 : https://www.powerdns.com/
- 다운로드 :
- 라이선스 :
- 플랫폼 :
목차
PowerDNS 개요
PowerDNS의 테이블간 관계도
CentOS 6.5에 설치
PowerDNS 설치
CensOS용 EPEL 설치를 합니다.
PowerDNS를 설치 합니다.
yum install pdns pdns-backend-mysql pdns-recursor |
MariaDB에서 Database 등을 생성 합니다.
vi pdns.sql
create table domains ( CREATE TABLE records ( create table supermasters ( |
mysql -uroot -p mysql
create database powerdns; select host, user, password from user where user = 'powerdns' order by user, host; use powerdns; |
vi /etc/pdns/pdns.conf
setuid=pdns #--- 이미 있음 launch=gmysql |
vi /etc/pdns-recursor/recursor.conf
local-port = 5300 allow-from=127.0.0.0/8 |
setup 명령을 사용하여 방화벽 설정을 합니다.
53/tcp, 53/udp |
PowerDNS를 시작 합니다.
service pdns restart service pdns-recursor restart |
PowerDNS 설치 확인
yum install bind-utils dig @localhost www.jopenbusiness.com |
PowerAdmin 설치
PowerAdmin 사이트 정보
- 홈페이지 : http://www.poweradmin.org/
- GutHub : https://github.com/poweradmin/poweradmin
PowerAdmin 설치
PowerAdmin을 다운로드 합니다.
wget http://jaist.dl.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz |
필요한 PHP 라이브러리를 설치 합니다.
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install php-mcrypt |
http://ossnode101.ossbiz.co.kr/poweradmin/install/ 로 접속하여 설치를 진행 합니다.
설치 완료 후 install 폴더를 삭제 합니다.
cd /nas/www/ossnode101/public_html/poweradmin rm -rf install |
http://ossnode101.ossbiz.co.kr/poweradmin/ 사이트에 admin / demo1234 사용자로 접속하여 사용 합니다.
설치 후 config.inc.php 파일이 없다는 오류가 표시되면서 정상적으로 동작하지 않을 경우 아래와 같이 작업 합니다.
cd inc |
vi config.inc.php
$db_host = 'localhost'; |
PowerDNS 설정
Database 입출력으로 관리
records 테이블의 type 종류
type | 상세 |
NS | Name Server |
A | 도메인에 IP 할당 |
MX | Mail Exchange |
CNAME | 도메인 별칭에 IP 할당 |
PTR | IP에 도메인 할당 |
DNS 설정 샘플
설치 후 config.inc.php 파일이 없다는 오류가 표시되면서 정상적으로 동작하지 않을 경우 아래와 같이 작업 합니다.
#--- 도메인 등록 #--- NS : Name Server 등록 #--- A : 도메인에 IP 할당 #--- MX : Mail Exchange 설정 #--- SOA : |
PowerAdmin으로 관리
PowerAdmin 메뉴
Index | PowerAdmin 메뉴 표시 |
Search zones and records | Zone과 records 검색 |
List zones |
Zone 목록 조회 및 수정 |
List supermasters | Super Master 목록 조회 |
Add master zone | master zone 등록 |
Add slave zone | slave zone 등록 |
Add supermaster | Super Master 네임서버 등록 |
Change password | 사용자 암호 변경 |
User administartion |
사용자 정보 관리 |
Logout | 로그 아웃 |
DNS 등록 절차
"Add master zone" 메뉴에서 도메인 (zztest.com)을 등록 합니다.
"List zones" 메뉴를 선택 합니다.
zztest.com 존의 수정 화면에서 records를 등록 합니다.
"Search zones and records" 에서 아래 정보를 확인할 수 있습니다.
DNS 등록이 정상적으로 설정 되었는지 확인 합니다.
dig @localhost www.zztest.com |
DNS Server 등록
Whois에 DNS 서버를 등록하는 방법을 설명 합니다.
"도메인 활용/부가서비스 -> 네임서버 고급설정" 메뉴를 선택 합니다.
도메인을 선택한 후 "DNS 호스트 설정" 버튼을 선택하여 DNS 호스트를 등록 합니다.
(주의, 등록한 DNS host는 등록하려는 DNS Server에 설정되어 있어야 합니다.)
"변경/이전 -> 등록정보/네임서버 변경" 메뉴를 선택 합니다.
도메인을 선택한 후 "네임서버 변경" 버튼을 선택하여 네임서버에 새로 등록한 DNS 호스트를 설정 합니다.