PowerDNS是一个运行在许多Linux/Unix衍生版上的DNS服务器,它可以使用不同的后端进行配置,包括BIND类型的区域文件、关系型数据库,或者负载均衡/失效转移算法。它也可以被配置成一台DNS递归器,作为服务器上的一个独立进程运行

数据库端:192.168.7.105

web端:192.168.7.103

105端:

创建数据库和创建授权访问用户

MariaDB [powerdns]> create database powerdns;

MariaDB [powerdns]> grant all on powerdns.* to user@'%' identified by '123';

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)

) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records (

id BIGINT AUTO_INCREMENT,

domain_id INT DEFAULT NULL,

name VARCHAR(255) DEFAULT NULL,

type VARCHAR(10) DEFAULT NULL,

content VARCHAR(64000) DEFAULT NULL,

ttl INT DEFAULT NULL,

prio INT DEFAULT NULL,

change_date INT DEFAULT NULL,

disabled TINYINT(1) DEFAULT 0,

ordername VARCHAR(255) BINARY DEFAULT NULL,

auth TINYINT(1) DEFAULT 1,

PRIMARY KEY (id)

) Engine=InnoDB;

CREATE INDEX nametype_index ON records(name,type);

CREATE INDEX domain_id ON records(domain_id);

CREATE INDEX recordorder ON records (domain_id, ordername);

CREATE TABLE supermasters (

ip VARCHAR(64) NOT NULL,

nameserver VARCHAR(255) NOT NULL,

account VARCHAR(40) NOT NULL,

PRIMARY KEY (ip, nameserver)

) Engine=InnoDB;

CREATE TABLE comments (

id INT AUTO_INCREMENT,

domain_id INT NOT NULL,

name VARCHAR(255) NOT NULL,

type VARCHAR(10) NOT NULL,

modified_at INT NOT NULL,

account VARCHAR(40) NOT NULL,

comment VARCHAR(64000) NOT NULL,

PRIMARY KEY (id)

) Engine=InnoDB;

CREATE INDEX comments_domain_id_idx ON comments (domain_id);

CREATE INDEX comments_name_type_idx ON comments (name, type);

CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);

CREATE TABLE domainmetadata (

id INT AUTO_INCREMENT,

domain_id INT NOT NULL,

kind VARCHAR(32),

content TEXT,

PRIMARY KEY (id)

) Engine=InnoDB;

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);

CREATE TABLE cryptokeys (

id INT AUTO_INCREMENT,

domain_id INT NOT NULL,

flags INT NOT NULL,

active BOOL,

content TEXT,

PRIMARY KEY(id)

) Engine=InnoDB;

CREATE INDEX domainidindex ON cryptokeys(domain_id);

CREATE TABLE tsigkeys (

id INT AUTO_INCREMENT,

name VARCHAR(255),

algorithm VARCHAR(50),

secret VARCHAR(255),

PRIMARY KEY (id)

) Engine=InnoDB;

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

103端

配置PowerDNS使用mariadb作为后台数据存储

# vim /etc/pdns/pdns.conf

launch=gmysql

gmysql-host=localhost

gmysql-port=3306

gmysql-dbname=powerdns

gmysql-user=powerdns

gmysql-password=powerdns123

启动服务

systemctl start pdns

systemctl enable pdns

1、安装httpd和php相关包

yum -y install httpd php php-devel php-gd php-mcrypt php-imap php-ldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mhash gettext

2、启动服务

systemctl start httpd

systemctl enable httpd

3、下载poweradmin程序并解压到相应目录

# cd /usr/local/src/

# wget http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

# tar -xvf poweradmin-2.1.7.tgz

# mv poweradmin-2.1.7/* /var/www/html/

4、启动powerAdmin页面访问

d1e96d70b96b29e241e9b055d576bc82.png

1567071249668.1567071249674.png

5、提供先前配置的数据库详情,同时为Poweradmin设置管理员密码

1567071403359.1567071403366.png

4bc543e0de9c25fb063f9e737b759357.png

6、配置web管理

1567071607392.1567071607394.png

7、创建授权用户

1567071794273.1567071794278.png

105端

MariaDB [(none)]> GRANT SELECT, INSERT, UPDATE, DELETE

-> ON powerdns.*

-> TO 'poweradmin'@'192.168.7.%' #105变成变成%,否则无法连接数据库

-> IDENTIFIED BY 'poweradmin123';

Query OK, 0 rows affected (0.001 sec)

8、创建config.php文件内容(图忘了截图,使用网上的图片代替,直接复制途中命令下面文件中)

1567086896798.1567086897017.png

# vim /var/www/html/poweradmin/inc/config.inc.php

$db_host = '192.168.7.105';

$db_user = 'PowerAdmin';

$db_pass = '123';

$db_name = 'powerdns';

$db_type = 'mysql';

$db_layer = 'PDO';

$session_key = 'J[%f(e4re@5=$LRh{MrXDFbH@Pbi6oB!yiCysYozvczJ$O';

$iface_lang = 'en_EN';

$dns_hostmaster = 'master';

$dns_ns1 = '192.168.7.103';

$dns_ns2 = '';

?>

``

9、安装完毕后,删除install目录

rm -rf /var/www/html/install/

10、登录

http://192.168.7.103/poweradmin

1567087103470.1567087103473.png

11、添加新的主区域,只需点击“添加主区域”

1567087166641.1567087166644.png

9c32d21bc33a4db4b28ff5cf41412637.png

12、添加区域”按钮来添加DNS区域。

你需要填写一些东西:

域(Domain) – 你要添加区域的域。

所有者(Owner) – 设置DNS区域的所有者。

模板(Template)– DNS模板 – 留空。

DNSSEC – 域名系统安全扩展(可选——看看你是否需要)。

1567087330079.1567087330085.png

13、编辑现存DNS区域或者添加新的记录

1567087511525.1567087511530.png

1567087580437.1567087580440.png

在此处添加新的DNS条目,你需要设置以下信息:

名称(Name) – 条目名称。只需添加域/子域的第一部分,PowerAdmin会添加剩下的。

类型(Type) – 选择记录类型。

优先级(Priority) – 记录优先级。

TTL – 存活时间,以秒计算。

测试客户端:

测试:

安装软件

yum install bind-utils

将dns修改解析dns192.168.7.103

测试:

dig mysql.magedu.net

[root@controller1 network-scripts]# dig openstack-vip.magedu.net

; <<>> DiG 9.9.4-RedHat-9.9.4-74.el7_6.2 <<>> openstack-vip.magedu.net

;; global options: +cmd

;; Got answer:

;; ->>HEADER<

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

;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags:; udp: 1680

;; QUESTION SECTION:

;openstack-vip.magedu.net.INA

;; AUTHORITY SECTION:

openstack-vip.magedu.net. 86400INSOA192.168.7.103. master. 2019082900 28800 7200 604800 86400

;; Query time: 8 msec

;; SERVER: 192.168.7.103#53(192.168.7.103)

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐