Powerdns JPowerAdmin 1.01安裝 附詳細配置 (分佈式主從結構)

原創,服務器php

1、 安裝前的準備html

一、 說明:java

Jpoweradmin 從1.00開始支持根用戶模式,root用戶能夠查看其它用戶的zone。而且數據庫默認使用mysql的xa事件,簡單的說就是,mysql必須建兩個庫,一個用於存放jpoweradmin的認證信息和dns記錄,就是至關於以前版本的庫,另外一個存放powerdns的dns記錄,固然這個庫,你能夠不調用,當他不存在,由於這個庫裏的信息前面一個庫都有了。mysql

本文測試使用的兩個庫分別是 jpoweradmin和pdnslinux

與bind相比Powerdns 相對靈活,配置簡單,具備相對友好的圖形化配置界面,使用數據庫存儲zone文件也支持bind dns的文件格式。git

Powerdns 官方推薦的圖形配置工具備兩種: JPowerAdmin和poweradmingithub

JPowerAdmin:使用java編寫,運行在Jboss架構下,安裝過程煩鎖,但最大的好處在於其支持API。web

poweradmin:使用php語言編寫,需php支持,安裝過程簡單。sql

本文重點介紹JPowerAdmin。本文最後也會附上 poweradmin的安裝過程。數據庫

首先請將centos 打上第三方的yum源,具體請看:《Centos6.0使用第三方YUM源(EPEL,RPMForge,RPMFusion)》http://jedy82.blog.51cto.com/425872/1136738

結構以下:

wps_clip_p_w_picpath-23680

在本例中 咱們只作一臺master dns服務器(192.168.20.100) 和一臺slave dns服務器(10.10.1.100)。

dns 服務使用53端口,請確保的53端口已開放。

Master dns 向slave dns 發送更新通知時要使用53端口,請確認master dns 與slave dns的53端口能互相訪問。

本文參照:

http://doc.powerdns.com/index.html

http://onlyzq.blog.51cto.com/1228/526504(主要參照)

http://doc.powerdns.com/generic-mypgsql-backends.html#idp9279440

https://blog.benetasso.com/en/entry/powerdns_axfr_replication (使用配置)

二、 本文的系統環境

[root@localhost ~]# uname -a

Linux localhost 2.6.32-279.22.1.el6.x86_64 #1 SMP Wed Feb 6 03:10:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

[root@ localhost ~]# more /etc/redhat-release 

CentOS release 6.3 (Final)

[root@ localhost ~]# echo "127.0.0.1 localhost">>/etc/hosts 注意將此處的localhost換成你的主機名

[root@ localhost ~]# ulimit -SHn 65535

[root@ localhost ~]# echo "ulimit -SHn 65535" >>/etc/rc.local

安裝前別忘記了 要改計算機名哦

三、 軟件版本和下載地址

請儘可能使用和我一致的版本,部分軟件對版本有特定要求,更高版本反而不能使用。

其中JPowerAdmin須要的依賴組件,以下:

? powerdns:官網最新版 本文使用的是 pdns-server-3.2-1

? mysql:5.5 本文使用的是 mysql-server-5.5.30

? JPowerAdmin: 本文使用的是 JPowerAdmin-v1.01.tar.gz

? java 1.5或1.6 本文使用的是 jdk-6u39-linux-x64.bin

? ant 1.7 及以上版本 本文使用的是 ant-1.7.1-13.el6.x86_64

? exim 4.6及以上版本 本文使用的是 exim-4.72-4.el6.x86_64

? jboss 需6.0.0 本文使用的是 jboss-as-distribution-6.0.0.Final.zip

? jboss-seam 需 2.2.x 本文使用的是 jboss-seam-2.2.2.Final.zip

? yum 源:

http://www.monshouwer.eu/download/3rd_party/pdns-recursor/el6/pdns-recursor.el6.repo

http://www.monshouwer.eu/download/3rd_party/pdns-server/el6/pdns-server.el6.repo

? powerdns:   yum方式安裝

pdns-server-3.2-1.el6.MIND.x86_64

pdns-server-backend-mysql-3.2-1.el6.MIND.x86_64

? mysql        yum方式安裝

mysql-5.5.30-1.el6.remi.x86_64

mysql-server-5.5.30-1.el6.remi.x86_64

? mysql-connector-java:

mysql-connector-java-5.1.22.zip

http://www.mysql.com/downloads/connector/j/

? JPowerAdmin:

JPowerAdmin-v1.01.tar.gz

wget http://www.nicmus.com/JPowerAdmin-v1.01.tar.gz

? Java:

jdk-6u39-linux-x64.bin

http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html

? Ant:        yum方式安裝

ant-1.7.1-13.el6.x86_64

? Exim :     yum方式安裝

exim-4.72-4.el6.x86_64

? Jboss:

jboss-seam-2.2.2.Final.zip

http://nchc.dl.sourceforge.net/project/jboss/JBoss/JBoss-6.0.0.Final/jboss-as-distribution-6.0.0.Final.zip

? Jboss-seam:

jboss-seam-2.2.2.Final.zip

http://nchc.dl.sourceforge.net/project/jboss/JBoss%20Seam/2.2.2.Final/jboss-seam-2.2.2.Final.zip

? Poweradmin:

poweradmin-2.1.6.tgz

http://cloud.github.com/downloads/poweradmin/poweradmin/poweradmin-2.1.6.tgz

2、 安裝 powerdns

http://www.powerdns.com/content/downloads.html

wps_clip_p_w_picpath-22212wps_clip_p_w_picpath-9937

一、 配置pdns源

[root@localhost ~]# cd /etc/yum.repos.d/

[root@localhost yum.repos.d]# wget http://www.monshouwer.eu/download/3rd_party/pdns-recursor/el6/pdns-recursor.el6.repo

[root@localhost yum.repos.d]# wget http://www.monshouwer.eu/download/3rd_party/pdns-server/el6/pdns-server.el6.repo

wps_clip_p_w_picpath-8396

二、 安裝pdns

[root@localhost yum.repos.d]# yum list | grep -i pdns

[root@localhost yum.repos.d]# yum install -y pdns-server pdns-server-backend-mysql

[root@localhost yum.repos.d]# more /etc/powerdns/pdns.conf | egrep -v "^$|^#"  修改配置文件

log-dns-details=yes

 log-dns-queries=yes

 log-failed-updates=yes

logging-facility=0        \\ 表示使用local0,也能夠寫成local0~local7中的任何一個未使用的,這要和syslog.conf中的一致。用來指定日誌存放路徑

 loglevel=4

 query-logging=yes

module-dir=/usr/lib64

socket-dir=/var/run/pdns-server

setuid=powerdns

setgid=powerdns

launch=gmysql          

gmysql-host=127.0.0.1

gmysql-user=power_admin

gmysql-password=power_admin_password

gmysql-dbname=pdns

[root@localhost yum.repos.d]# mkdir /var/log/pdns

[root@localhost yum.repos.d]# vi /etc/rsyslog.conf         增長紅字部分

*.info;mail.none;authpriv.none;cron.none;local0.none    /var/log/messages

local0.*                       -/var/log/pdns/pdns.log

注意:這裏的local0也能夠寫成local0~local7中的任何一個未使用的,但要和/etc/powerdns/pdns.conf中的logging-facility相對應,若是修改就要都修改。

[root@localhost yum.repos.d]# service rsyslog restart

注意先讓rsyslog配置生效再啓動pdns-server服務

[root@localhost yum.repos.d]# chkconfig --levels 235 pdns-server on

[root@localhost yum.repos.d]# /etc/init.d/pdns-server start

[root@localhost yum.repos.d]# netstat -tlnp | grep 53 保證有結果輸出

[root@localhost yum.repos.d]# tail -f /var/log/pdns/pdns.log

三、 安裝mysql

[root@localhost yum.repos.d]# yum install -y mysql mysql-server

[root@localhost yum.repos.d]# chkconfig mysqld on

[root@localhost yum.repos.d]# service mysqld restart

[root@localhost yum.repos.d]# mysqladmin -u root password rootroot

四、 初始化數據庫

Mysql咱們只用建好庫就好了,其它的表會自動建立的

[root@localhost yum.repos.d]# mysql -p

Enter password: 

mysql>CREATE DATABASE jpoweradmin;

mysql>GRANT ALL ON jpoweradmin.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';

mysql>FLUSH PRIVILEGES;

mysql>CREATE DATABASE pdns;

mysql>GRANT ALL ON pdns.* TO 'power_admin'@'localhost' IDENTIFIED BY 'power_admin_password';

mysql>FLUSH PRIVILEGES;

mysql> \q

[root@localhost yum.repos.d]# cd

3、 安裝 JPowerAdmin

一、 安裝JPowerAdmin的相依賴的組件

[root@localhost ~]# wget http://www.nicmus.com/JPowerAdmin-v1.01.tar.gz

[root@localhost ~]# tar zxvf JPowerAdmin-v1.01.tar.gz 

[root@localhost ~]# mv /root/JPowerAdmin /usr/local/JPowerAdmin-1.01

[root@localhost ~]# ln -sv /usr/local/JPowerAdmin-1.01 /usr/local/JPowerAdmin

[root@localhost ~]# more /usr/local/JPowerAdmin/README  注意以下內容:

wps_clip_p_w_picpath-16486

說明 JPowerAdmin須要的依賴組件,以下:

? java 1.5或1.6 本文使用的是 jdk-6u39-linux-x64.bin

? ant 1.7 及以上版本 本文使用的是 ant-1.7.1-13.el6.x86_64

? exim 4.6及以上版本 本文使用的是 exim-4.72-4.el6.x86_64

? jboss 需6.0.0 本文使用的是 jboss-as-distribution-6.0.0.Final.zip

? jboss-seam 需 2.2.x 本文使用的是 jboss-seam-2.2.2.Final.zip

注意:本文中,因爲JPowerAdmin v1.01(目前最新版)須要使用只支持jboss 6.0.0,因此jboss的版本只能用6.0.0 。另外,jboss-seam 的版本中支持jboss 6.0.0的只有jboss-seam 2.2.1和2.2.2。2.2.0和2.2.3都不能在jboss 6.0.0下使用。

二、 Java 安裝

上官網http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html 下載

jdk-6u39-linux-x64.bin

[root@localhost ~]# yum install -y java-1.6.0

[root@localhost ~]# java -version

[root@localhost ~]# chmod +x /root/jdk-6u39-linux-x64.bin

[root@localhost ~]# ./jdk-6u39-linux-x64.bin

[root@localhost ~]# mv /root/jdk1.6.0_39/ /usr/local/jdk1.6.0_39

[root@localhost ~]# ln -sv /usr/local/jdk1.6.0_39 /usr/local/jdk

[root@localhost ~]# vi /etc/profile          在 /etc/profile中加入如下內容

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar

export PATH=$JAVA_HOME/bin:$PATH

[root@localhost ~]# source /etc/profile

[root@localhost ~]# java -version

三、 Ant和exim 安裝

[root@localhost ~]# yum install -y ant exim

四、 Resteasy 安裝

[root@localhost ~]# wget http://nchc.dl.sourceforge.net/project/resteasy/Resteasy%20JAX-RS/2.2.2.GA/resteasy-jaxrs-2.2.2.GA-all.zip

[root@localhost ~]# cd /usr/local/

[root@localhost local]# unzip /root/resteasy-jaxrs-2.2.2.GA-all.zip

[root@localhost local]# ln -sv resteasy-jaxrs-2.2.2.GA resteasy-jaxrs

[root@localhost local]# cd 

五、 Jboss 安裝

[root@localhost ~]# wget http://nchc.dl.sourceforge.net/project/jboss/JBoss/JBoss-6.0.0.Final/jboss-as-distribution-6.0.0.Final.zip

[root@localhost ~]# cd /usr/local

[root@localhost local]# unzip /root/jboss-as-distribution-6.0.0.Final.zip

[root@localhost local]# ln -sv jboss-6.0.0.Final jboss

[root@localhost local]# cd jboss

[root@localhost jboss]# vi /etc/profile 在 /etc/profile中加入如下內容

export JBOSS_HOME=/usr/local/jboss

export PATH=$JBOSS_HOME/bin:$PATH

[root@localhost jboss]# source /etc/profile

[root@localhost jboss]# cd  設置mysql數據庫鏈接,需用mysql-xa-ds.xml,這點和Jpoweradmin 0.99的不一樣

[root@localhost ~]# cp /usr/local/jboss/docs/examples/jca/mysql-xa-ds.xml /usr/local/jboss/server/default/deploy/mysql-xa-ds.xml

[root@localhost ~]# more /usr/local/jboss/server/default/deploy/mysql-xa-ds.xml 修改紅字部分

<?xml version="1.0" encoding="UTF-8"?>

<!-- $Id: mysql-ds.xml 88948 2009-05-15 14:09:08Z jesper.pedersen $ -->

<!--  Datasource config for MySQL using 3.0.9 available from:

http://www.mysql.com/downloads/api-jdbc-stable.html

-->

<datasources>

  <xa-datasource>

    <jndi-name>MysqlDS</jndi-name>

    <track-connection-by-tx>true</track-connection-by-tx> 

    <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>

    <xa-datasource-property name="ServerName">127.0.0.1</xa-datasource-property>

    <xa-datasource-property name="DatabaseName">jpoweradmin</xa-datasource-property>

    <xa-datasource-property name="User">power_admin</xa-datasource-property>

    <xa-datasource-property name="Password">power_admin_password</xa-datasource-property>

    <!-- should only be used on drivers after 3.22.1 with "ping" support

    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>

    -->

    <!-- sql to call when connection is created

    <new-connection-sql>some arbitrary sql</new-connection-sql>

      -->

    <!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers

    <check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>

      -->

    <!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->

    <metadata>

       <type-mapping>mySQL</type-mapping>

    </metadata>

  </xa-datasource>

</datasources>

[root@localhost ~]# /usr/local/jboss/bin/run.sh -b 0.0.0.0        啓動jboss

[root@localhost ~]# netstat  -tlnp | grep 8080

tcp       0     0 0.0.0.0:8080          0.0.0.0:*      LISTEN      26288/java          

[root@localhost ~]#

http://ip:8080                       有頁面顯示 說明jboss安裝正確

設置jboss守護進程並開機啓動

[root@localhost ~]# cp /usr/local/jboss/bin/jboss_init_redhat.sh  /etc/init.d/jboss

[root@localhost ~]# vi /etc/init.d/jboss

# chkconfig: 2345 80 20                                             ←增長chkconfig 支持

JBOSS_HOST=${JBOSS_HOST:-"0.0.0.0"}         ← 若是想支持所有IP,能夠在該文件一開始追加

修改如下內容

JBOSS_HOME=${JBOSS_HOME:-"/usr/local/jboss"}      ←18行 jboss 主目錄

JBOSS_USER=${JBOSS_USER:-"root"}            ←21行 啓動jboss的用戶名

JAVAPTH=${JAVAPTH:-"/usr/local/jdk/bin"}        ←24行 java執行文件目錄

JBOSS_CONF=${JBOSS_CONF:-"default"}   ←27行,想修改啓動目錄。能夠不變

[root@localhost ~]# chkconfig --add jboss

[root@localhost ~]# chmod -f 755 /etc/init.d/jboss

六、 Jboss-seam 安裝

必須使用jboss-seam 2.2.1以上版本才能夠和 jboss 6匹配

[root@localhost ~]# wget http://nchc.dl.sourceforge.net/project/jboss/JBoss%20Seam/2.2.2.Final/jboss-seam-2.2.2.Final.zip

[root@localhost ~]# cd /usr/local/ ; unzip /root/jboss-seam-2.2.2.Final.zip

[root@localhost local]# ln -sv /usr/local/jboss-seam-2.2.2.Final /usr/local/jboss-seam

[root@localhost local]# cd jboss-seam

[root@localhost jboss-seam]# vi build.properties  加入如下內容

jboss.home /usr/local/jboss

[root@localhost jboss-seam]# cd examples/booking/

[root@localhost booking]# ant deploy

http://ip:8080/seam-booking           有頁面顯示 說明seam安裝正確

[root@localhost booking]# cd

七、 設置數據庫鏈接

[root@localhost ~]# unzip mysql-connector-java-5.1.22.zip

[root@localhost ~]# cp /root/mysql-connector-java-5.1.22/mysql-connector-java-5.1.22-bin.jar /usr/local/jboss-6.0.0.Final/server/default/lib/mysql-connector-java-5.1.22-bin.jar

八、 安裝 JPowerAdmin

[root@localhost ~]# cd /usr/local/JPowerAdmin/

[root@localhost JPowerAdmin]# vi /usr/local/JPowerAdmin/build.xml  修改紅字部分爲相對應的目錄

        <!--Libraries-->

        <property name="lib.dir" value="/usr/local/jboss-seam/lib"/>

        <!--Rest easy integration -->

        <property name="rest-easy-lib.dir" value="/usr/local/resteasy-jaxrs/lib"/>

        <!--Deployment Directories-->

        <property name="jboss-home.dir" value="/usr/local/jboss"/>

        <property name="deploy.dir" value="${jboss-home.dir}/server/default/deploy"/>

[root@localhost JPowerAdmin]# ant ear

[root@localhost JPowerAdmin]# vi /usr/local/JPowerAdmin/resources/JPowerAdmin-ds.xml修改紅字部分

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE datasources

    PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"

    "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">

<datasources>

   <xa-datasource>

     <jndi-name>JPowerAdminDS</jndi-name>

<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>

     <xa-datasource-property name="URL">jdbc:mysql://127.0.0.1:3306/jpoweradmin</xa-datasource-property>

     <driver-class>com.mysql.jdbc.Driver</driver-class>

     <user-name>power_admin</user-name>

     <password>power_admin_password</password>

     <track-connection-by-tx>true</track-connection-by-tx>

     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>

     <metadata>

       <type-mapping>mySQL</type-mapping>

    </metadata>

   </xa-datasource>

   <xa-datasource>

     <jndi-name>PowerDNSDS</jndi-name>

     <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>

     <xa-datasource-property name="URL">jdbc:mysql://127.0.0.1:3306/pdns</xa-datasource-property>

     <driver-class>com.mysql.jdbc.Driver</driver-class>

     <user-name>power_admin</user-name>

     <password>power_admin_password</password>

     <track-connection-by-tx>true</track-connection-by-tx>

     <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>

     <metadata>

       <type-mapping>mySQL</type-mapping>

    </metadata>

   </xa-datasource>

</datasources>

[root@localhost JPowerAdmin]# vi /usr/local/JPowerAdmin/resources/META-INF/persistence.xml  修改紅字部分

<?xml version="1.0" encoding="UTF-8"?>

<!-- Persistence deployment descriptor for dev profile -->

<persistence xmlns="http://java.sun.com/xml/ns/persistence" 

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" 

             version="1.0">

   <persistence-unit name="JPowerAdmin">

      <provider>org.hibernate.ejb.HibernatePersistence</provider>

      <jta-data-source>java:/JPowerAdminDS</jta-data-source>

      <class>com.nicmus.pdns.entities.User</class>

      <class>com.nicmus.pdns.entities.Domain</class>

      <class>com.nicmus.pdns.entities.Record</class>

      <class>com.nicmus.pdns.entities.PasswordResetToken</class>

      <class>com.nicmus.pdns.entities.Supermaster</class>

      <class>com.nicmus.pdns.entities.UserProperties</class>

      <exclude-unlisted-classes>true</exclude-unlisted-classes>

      <properties>

         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

         <property name="hibernate.hbm2ddl.auto" value="update"/>

         <property name="hibernate.show_sql" value="false"/>

         <property name="hibernate.format_sql" value="true"/>

         <property name="jboss.entity.manager.factory.jndi.name" value="java:/JPowerAdminEntityManagerFactory"/>

      </properties>

   </persistence-unit>

   <persistence-unit name="PowerDNS">

      <provider>org.hibernate.ejb.HibernatePersistence</provider>

      <jta-data-source>java:/PowerDNSDS</jta-data-source>

      <class>com.nicmus.pdns.entities.Zone</class>

      <class>com.nicmus.pdns.entities.ZoneRecord</class>

      <exclude-unlisted-classes>true</exclude-unlisted-classes>

      <properties>

         <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>

         <property name="hibernate.hbm2ddl.auto" value="update"/>

         <property name="hibernate.show_sql" value="false"/>

         <property name="hibernate.format_sql" value="true"/>

         <property name="jboss.entity.manager.factory.jndi.name" value="java:/PowerDNSEntityManagerFactory"/>

      </properties>

   </persistence-unit>

</persistence>

[root@localhost JPowerAdmin]# ant datasource

[root@localhost JPowerAdmin]# ant deploy 這時 jboss 沒有報錯 說明發布正確

http://ip:8080/JPowerAdmin           有頁面顯示 說明JPowerAdmin安裝正確,建立個用戶後登錄

九、 安裝fancy支持

[root@localhost JPowerAdmin]# cd fancyrecords/JPowerAdmin-URL-Redirection-Servlet

[root@localhost JPowerAdmin-URL-Redirection-Servlet]# vi build.xml    修改紅字部分爲相對應的目錄

<?xml version="1.0"?>

<project name="JPowerAdmin URL Redirection Servlet">

        <tstamp />

        <property name="project.name" value="JPowerAdminURLRedirector" />

        <!-- Referenced projects and jars -->

        <!-- Jboss SEAM directory - url servlet build against the jars in jboss-seam -->

        <property name="seam.dir" value="/usr/local/jboss-seam" />

        <property name="JPowerAdmin.dir" value="/usr/local/JPowerAdmin"/>

        <property name="lib.dir" value="${seam.dir}/lib"/>

        <!--Source directories-->

        <property name="src.dir" value="./src" />

        <property name="JPowerAdmin.src.dir" value="${JPowerAdmin.dir}/src"/>

        <property name="resource.dir" value="./resources" />

        <!-- Target directories -->

        <property name="build.dir" value="./build" />

        <property name="dist.dir" value="./dist" />

        <property name="war.name" value="${dist.dir}/ROOT.war"/>

        <!-- Deployment directories -->

        <property name="jboss-home.dir" value="/home/jsabev/bin/jboss-5.1.0.GA" />

        <property name="deploy.dir" value="${jboss-home.dir}/server/default/deploy" />

        <!--Build class path -->

        <path id="build.classpath">

                <fileset dir="${lib.dir}"/>

        </path>

        <target name="init">

                <mkdir dir="${build.dir}/classes"/>

                <mkdir dir="${dist.dir}" />

</target>

        <target name="clean" depends="init">

                <delete dir="${build.dir}" />

                <delete dir="${dist.dir}" />

        </target>

        <target name="compile" depends="init">

                <javac classpathref="build.classpath" destdir="${build.dir}/classes" debug="off">

                        <src path="${src.dir}" />

                        <src path="${JPowerAdmin.src.dir}"/>

                        <include name="com/nicmus/pdns/fancyrecords/URLSearcher"/>

                        <include name="com/nicmus/pdns/redirector/*"/>

                </javac>

        </target>

        <target name="war" depends="compile">

                <war destfile="${war.name}" webxml="${resource.dir}/WEB-INF/web.xml">

                        <classes dir="${build.dir}/classes" />

                </war>

        </target>

</project>

[root@localhost JPowerAdmin-URL-Redirection-Servlet]# ant war

[root@localhost JPowerAdmin-URL-Redirection-Servlet]# cd

[root@localhost ~]#

[root@localhost ~]# mv /etc/exim/exim.conf /etc/exim/exim.conf.old

[root@localhost ~]# cp /usr/local/JPowerAdmin/fancyrecords/exim4.conf /etc/exim/exim.conf

[root@localhost ~]# exim –bV

[root@localhost ~]# service exim restart

[root@localhost ~]# chkconfig --add exim 

 

4、 PowerDNS配置

一、 Master powerdns(192.168.20.100)配置

? 修改配置文件

[root@localhost ~]# more /etc/powerdns/pdns.conf | egrep -v "^$|^#"

allow-axfr-ips=0.0.0.0/0,::/0       //容許的slave 的ip 地址(自動更新用),注意notify選項的優先級高於此設置

allow-recursion=10.10.1.100         //容許其它的dns服務器進行遞歸查詢

 disable-axfr=no

 disable-tcp=no

 log-dns-details=yes

 log-dns-queries=yes

 log-failed-updates=yes

 logging-facility=0                 //指定日誌存放路徑與syslog.conf配合使用

 master=yes

 query-logging=yes

master=yes                         //定義爲master dns

 query-logging=yes

 recursor=61.177.7.1                //當查詢的dns記錄不在本地時,向其它dns服務器遞歸查詢

recursor=221.228.255.1

 recursor=218.2.135.1

 slave-renotify=yes                 //當master dns有更新時,自動將更新內容通知到slave dns

module-dir=/usr/lib64

socket-dir=/var/run/pdns-server

setuid=powerdns

setgid=powerdns

launch=gmysql

gmysql-host=127.0.0.1

gmysql-user=power_admin

gmysql-password=power_admin_password

gmysql-dbname=pdns

#gmysql-dnssec=yes

[root@localhost ~]# server pdns-server reload

[root@localhost ~]# server jboss restart

[root@localhost ~]# netstat -tlnp | egrep "8080|53"

tcp  0  0 0.0.0.0:8080      0.0.0.0:*     LISTEN    2040/java           

tcp  0   0 0.0.0.0:53       0.0.0.0:*     LISTEN    5647/pdns_server-in

[root@localhost ~]#

? 瀏覽器中輸入:http://192.168.20.100:8080/JPowerAdmin

? 點擊Greate an Acceount 建立用戶

wps_clip_p_w_picpath-5419

? 輸入用戶信息後,點擊Greate an Acceount 完成建立用戶

wps_clip_p_w_picpath-10127

? 輸入剛建立的用戶名和密碼登錄

wps_clip_p_w_picpath-31737

? 登錄後,新建一個master zone test.com

wps_clip_p_w_picpath-25323

? 建立成功

wps_clip_p_w_picpath-11442

? 進入test zone,修改相關信息

wps_clip_p_w_picpath-4598

? 首先修改soa信息,別忘記更新serial值

wps_clip_p_w_picpath-7950

? 刪除自動建立的ns記錄

wps_clip_p_w_picpath-29452

? 新建test.com域的ns記錄、ns的A記錄及slave的記錄

wps_clip_p_w_picpath-12147wps_clip_p_w_picpath-4744

? 新建test.com域的其它ns記錄,結果以下,注意,master的notify數據包只發送到此處ns記錄的服務中

wps_clip_p_w_picpath-7192

? 新建一條測試記錄

wps_clip_p_w_picpath-13294

? 測試

[root@localhost ~] more /etc/resolv.conf

nameserver 192.168.20.100

[root@localhost ~] yum install  bind-utils

[root@localhost ~] dig test.com  \\ dig命令、nslookup命令、host命令需安裝bind-utils包

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> test.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23357

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;test.com.                      IN      A

;; AUTHORITY SECTION:

test.com.   3600  IN    SOA     ns1.test.com. ns1.test.com. 7 10800 3600 604800 3600

;; Query time: 2 msec

;; SERVER: 192.168.20.100#53(192.168.20.100)

;; WHEN: Mon Feb 25 13:07:11 2013

;; MSG SIZE  rcvd: 66

[root@localhost ~] dig test.test.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> test.test.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 16072

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;test.test.com.                 IN      A

;; ANSWER SECTION:

test.test.com.    3600    IN      A       192.168.20.101       \\解析成功

;; Query time: 2 msec

;; SERVER: 192.168.20.100#53(192.168.20.100)

;; WHEN: Mon Feb 25 13:03:49 2013

;; MSG SIZE  rcvd: 47

二、 slave powerdns (10.10.1.100)配置

? 修改配置文件

[root@localhost powerdns]# more /etc/powerdns/pdns.conf | egrep -v "^$|^#"

disable-axfr=no

disable-tcp=no

log-dns-details=yes

log-dns-queries=yes

log-failed-updates=yes

logging-facility=0                 //指定日誌存放路徑與syslog.conf配合使用

loglevel=4

query-logging=yes

recursor=61.177.7.1                //當查詢的dns記錄不在本地時,向其它dns服務器遞歸查詢

recursor=221.228.255.1

recursor=218.2.135.1

 slave=yes                         //定義爲slave dns

module-dir=/usr/lib64

socket-dir=/var/run/pdns-server

setuid=powerdns

setgid=powerdns

launch=gmysql          

gmysql-host=127.0.0.1

gmysql-user=power_admin

gmysql-password=power_admin_password

gmysql-dbname=pdns

#gmysql-dnssec=yes

? 瀏覽器中輸入:http://10.10.1.100:8080/JPowerAdmin

? 點擊Greate an Acceount 建立用戶(與master dns相同,此處略過)

? 新建test.com zone的 slave dns

wps_clip_p_w_picpath-10253

? 等待1分鐘後,同步完成

wps_clip_p_w_picpath-19769

? 測試

[root@localhost ~] more /etc/resolv.conf

nameserver 127.0.0.1

[root@localhost ~] yum install  bind-utils

[root@localhost ~] dig test.com  \\ dig命令、nslookup命令、host命令需安裝bind-utils包

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> test.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51091

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:

;test.com.                 IN      A

;; AUTHORITY SECTION:

test.com.  3600    IN      SOA     ns1.test.com. ns1.test.com. 7 10800 3600 604800 3600

;; Query time: 2 msec

;; SERVER: 10.10.1.10#53(10.10.1.10)

;; WHEN: Mon Feb 25 13:20:34 2013

;; MSG SIZE  rcvd: 66

[root@localhost ~]dig test.test.com

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.10.rc1.el6_3.6 <<>> test.test.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47961

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:

;test.test.com.                 IN      A

;; ANSWER SECTION:

test.test.com.          3600    IN      A       192.168.20.101

;; Query time: 2 msec

;; SERVER: 10.10.1.10#53(10.10.1.10)

;; WHEN: Mon Feb 25 13:21:16 2013

;; MSG SIZE  rcvd: 47

? 在master 有任何變更後,都會自動向zone中的ns記錄中的服務器同步更新。具體信息能夠查看powerdns的log文件。

[root@localhost ~] tail -f /var/log/messages

wps_clip_p_w_picpath-31691

################################ 安 裝 結 束 ################################

5、 咱們也能夠用Poweradmin實現來實現powerdns的 Web管理。

本部分參考http://www.centos.bz/2011/10/centos-5-install-powerdns-server/

? 安裝Poweradmin

[root@localhost ~]# yum -y install httpd php php-devel php-gd php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

[root@localhost ~]# wget http://cloud.github.com/downloads/poweradmin/poweradmin/poweradmin-2.1.6.tgz

[root@localhost ~]# tar zxvf /root/poweradmin-2.1.6.tgz –C /var/www/html

[root@localhost ~]# chown –R apache.apache  /var/www/html

[root@localhost ~]# service httpd restart

http://ip/poweradmin/install

? 選擇語言爲英文,並點擊Go to step 2

wps_clip_p_w_picpath-28101

? 點擊「Go to step 3」到安裝的第三步,填入數據庫詳細信息。輸入root用戶和密碼,和輸入Poweradmin的admin用戶的密碼。

wps_clip_p_w_picpath-22263

? 點擊下一步,填入在安裝powerdns那一步所建立的power_admin mysql用戶的信息,而且填入域名服務器地址:

wps_clip_p_w_picpath-30067

? 下一步是須要執行mysql語句,咱們不須要執行了,由於前面咱們已經執行過了,直接點擊下一步便可

wps_clip_p_w_picpath-1399

? 繼續點擊下一步

wps_clip_p_w_picpath-26100

? 如今poweradmin安裝完成。

wps_clip_p_w_picpath-23060

? 爲了安全,須要刪除安裝目錄

[root@localhost ~]# mv /var/www/html/poweradmin/install /var/www/html/poweradmin/install.old

? 安裝完成

http://ip/poweradmin

輸入上面第三步建立的admin用戶的密碼就能夠訪問了。Poweradmin的配置管理powerdns的方法與JPowerAdmin相同,可參考

相關文章
相關標籤/搜索