歡迎您光臨本站 註冊首頁

PowerDNS配置不完全手冊。

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

Linux平台下配置DNS伺服器,大家一定首選想到的是BIND,不錯BIND絕對是DNS伺服器軟體的老大,全球13台根域名伺服器中有

10台使用的是BIND.不過使用開源軟體有一個很大的好處就是無論你要做什麼永遠會有不止一種選擇,如果你不想使用BIND配置DNS伺服器,那麼PowerDNS會是一個不錯的選擇.

PowerDNS

(官方網站:http://www.powerdns.com/)是一個跨平台的開源DNS服務組件,PowerDNS同時有WindowsLinux/Unix的版本.PowerDNS

Windows下可以使用Accessmdb文件記錄DNS信息,而在Linux/Unix下則可以使用MySQL來記錄DNS

信息.

下面我們一起來看下在如下圖所示一個簡單的網路拓撲中,如何在Debian Square平台下通過PowerDNSPoweradmin(一個基於WebPowerDNS

管理工具)配置一個DNS伺服器.

1、 由於我們需要將PowerDNS的數據保存到MySQL

資料庫中,使用如下命令安裝MySQL,在安裝過程中需要設置MySQL管理員(root用戶的密碼).

root@srv:~# apt-get -y install mysql-server mysql-client

2、 使用如下命令註釋MySQL配置文件(/etc/mysql/my.cnf)的bind-address參數,以便使

MySQL可以偵聽所有網路介面的訪問語法.

root@srv:~# netstat -tunlp | grep 3306

tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 3275/mysqld

root@srv:~# sed -i -e 's/bind-address/#bind-address/' /etc/mysql/my.cnf

root@srv:~# /etc/init.d/mysql restart

Stopping MySQL database server: mysqld.

Starting MySQL database server: mysqld.

Checking for corrupt, not cleanly closed and upgrade needing tables..

root@srv:~# netstat -tunlp | grep 3306

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 3600/mysqld

3、 使用如下命令安裝PowerDNS.

root@srv:~# apt-get -y install pdns-server pdns-backend-mysql

4、 使用mysql -u root -p

命令登錄到MySQL后,建立PowerDNS所需的資料庫及表.

root@srv:~# mysql -u root -p

Enter password:

Welcome to the MySQL monitor.

Commands end with ; or g.

Your MySQL connection id is 36

Server version: 5.1.49-3 (Debian)

Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.

This software comes with ABSOLUTELY NO WARRANTY. This is free software,

and you are welcome to modify and redistribute it under the GPL v2 license

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

#

建立一個名為dnsdb的資料庫用於存儲PowerDNS的數據.

mysql> create database dnsdb;

Query OK, 1 row affected (0.00 sec)

#建立一個名為pdnsuser

的用戶,用於PowerDNS服務訪問dnsdb資料庫.

mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost' IDENTIFIED BY 'tonyzhang';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON dnsdb.* TO 'pdnsuser'@'localhost.localdomain' IDENTIFIED BY 'tonyzhang';

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

#打開dnsdb資料庫.

mysql> use dnsdb;

Database changed

#建立PowerDNS所需的表.

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)

-> );

Query OK, 0 rows affected (0.09 sec)

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)

-> );

Query OK, 0 rows affected (0.06 sec)

mysql> CREATE TABLE supermasters (

-> ip VARCHAR(25) NOT NULL,

-> nameserver VARCHAR(255) NOT NULL,

-> account VARCHAR(40) DEFAULT NULL

-> );

Query OK, 0 rows affected (0.05 sec)

#

為了提高PowerDNS查詢資料庫記錄的速度,可以為表建立一些必要的索引.

mysql> CREATE UNIQUE INDEX name_index ON domains(name);

Query OK, 0 rows affected (0.05 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> CREATE INDEX rec_name_index ON records(name);

Query OK, 0 rows affected (0.06 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> CREATE INDEX nametype_index ON records(name,type);

Query OK, 0 rows affected (0.00 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> CREATE INDEX domain_id ON records(domain_id);

Query OK, 0 rows affected (0.05 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> quit;

5、 修改/etc/powerdns/pdns.conf文件如下內容,使

PowerDNS使用MySQL資料庫.

launch=gmysql

6、 /etc/powerdns/pdns.d/pdns.local

文件中增加如下內容,配置PowerDNS訪問MySQL資料庫的信息.

gmysql-host=127.0.0.1

gmysql-user=powerdns

gmysql-password=tonyzhang

gmysql-dbname=dnsdb

7、 使用如下命令啟動PowerDNS服務.

root@srv:~# /etc/init.d/pdns restart

8、 為了使用

PowerDNS的管理工具Poweradmin,使用如下命令安裝ApachePHP.

root@srv:~# apt-get -y install apache2 libapache2-mod-php5 php5 php5-common

php5-curl php5-dev php5-gd php-pear php5-imap gettext

php5-mcrypt php5-mhash php5-ming php5-mysql php5-xmlrpc

root@srv:~# pear install DB

root@srv:~# pear install pear/MDB2#mysql

9、 使用如下命令下載Poweradmin

后,存入/var/www目錄中(這裡只是為了演示簡單的將Poweradmin放到Apache的默認站點中,在實際生產環境中可以根據情況配置).

root@srv:~# wget https://www.poweradmin.org/download/poweradmin-2.1.5.tgz

root@srv:~# tar -xvzf poweradmin-2.1.5.tgz

root@srv:~# mv poweradmin-2.1.5 /var/www/dnsadmin

root@srv:~# chown -R www-data:www-data /var/www/dnsadmin

10、重新啟動Apache服務后,在瀏覽器中訪問http://192.168.13.10/dnsadmin/install/index.php

會出現Poweradmin的配置嚮導頁面,首選選擇使用默認的英語(如下圖所示);第2頁是一個提示信息頁,直接進入下一個配置頁面.

11、

3頁是配置MySQL資料庫的信息,輸入MySQLroot用戶(注意是root用戶)、密碼、地址、埠、資料庫名稱,一個輸入框是是指定以後登錄

Poweradmin時管理員(admin)的密碼.

12、 4頁指定為

PowerDNS建立的MySQL用戶的信息,輸入在第4步中為建立的MySQL用戶(本例中為pdnsuser)、密碼以及

SOANS記錄(這二個記錄全成為以後創建區域是的模板記錄).

13、 2

頁是提示信息.在完成配置后,使用如下命令將install目錄刪除(只有刪除后Poweradmin才允許用戶登錄進行管理).

root@srv:~# rm -rf /var/www/dnsadmin/install/

14、

接下來就可以通過http://192.168.13.10/dnsadmin訪問Poweradmin登錄頁面,輸入管理用戶(admin)以及密碼(第11步“

Poweradmin administrator password”中輸入的內容).

上圖是登錄后的Poweradmin管理頁面,了解DNS服務的GGDD們應該很容易掌握Poweradmin

的使用方法,這裡就不一一介紹了.

本文出自 「相濡以沫」 博客,請務必保留此出處http://onlyzq.blog.51cto.com/1228/526504


[火星人 ] PowerDNS配置不完全手冊。已經有1152次圍觀

http://coctec.com/docs/linux/show-post-48976.html