安装部署PowerDNS--实现内网DNS解析

PDNS是PowerDNS的缩写,是一个开源的DNS服务器软件。PowerDNS具有高性能、灵活性和可扩展性,可用于搭建各种规模的DNS解析服务。它支持多种后端数据库(如MySQL、PostgreSQL等),提供高度定制化的配置选项,并具有强大的扩展性和插件系统。PowerDNS还支持DNSSEC(DNS安全扩展)和其他先进的DNS功能,使其成为许多组织和服务提供商的首选DNS解决方案之一。

  • 部署mysql, 本文中pdns采用mysql作为后端记录存储数据库
[root@pdns131 ~]# wget http://repo.mysql.com/mysql57-community-release-el7-11.noarch.rpm
[root@pdns131 ~]# rpm -ivh mysql57-community-release-el7-11.noarch.rpm
[root@pdns131 ~]# yum -y install mysql-community-server --nogpgcheck
[root@pdns131 ~]# service mysqld  start
[root@pdns131 ~]# cat /var/log/mysqld.log  找到默认的密码
[root@pdns131 ~]# mysql -uroot -p
如果直接修改密码,Mysql默认安全机制极高,需要有大小写,数字,特殊符号等复杂程度组合,这时我们需要修改下Mysql的安全配置
mysql> set global validate_password_policy = 0;   ---安全机制降低
mysql> set global validate_password_length = 4;   --长度修改4位
mysql> set password = password('test123');   --- 设置Mysql密码
mysql> show variables like 'validate_password%';  ---查看配置是否生效
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'test123' WITH GRANT OPTION; 

mysql> create database powerdns;
mysql> CREATE USER 'powerdns'@'%' IDENTIFIED BY 'test123';
mysql> GRANT ALL on powerdns.* to 'powerdns'@'%';
mysql> grant process on powerdns.* to powerdns@'%';
mysql> flush privileges;

  • 下载pdns repo源
[root@pdns131 ~]# yum install epel-release yum-plugin-priorities -y
[root@pdns131 ~]# curl -o /etc/yum.repos.d/powerdns-auth-49.repo https://repo.powerdns.com/repo-files/centos-auth-49.repo
  • 安装pdns及其关联包
[root@pdns131 ~]# yum install pdns pdns-recursor pdns-backend-mysql -y
  • 基于之上部署的mysql,初始化pdns相关数据库和表
[root@pdns131 ~]# mysql -uroot -ptest123
mysql> create database powerdns;
mysql> use powerdns
mysql> source /usr/share/doc/pdns-backend-mysql-4.9.1/schema.mysql.sql
mysql> ALTER TABLE records ADD COLUMN create_time  timestamp NULL DEFAULT CURRENT_TIMESTAMP  AFTER auth;   -- 添加create_time字段记录加入解析的记录时间 (可选)
  • 修改pdns配置文件, 添加如下内容
[root@pdns131 ~]# grep -v '#' /etc/pdns/pdns.conf

# 如下两行默认已存在
setgid=pdns
setuid=pdns

# 添加如下内容
#数据库设置
launch=gmysql
gmysql-host=127.0.0.1
gmysql-dbname=powerdns
gmysql-user=powerdns
gmysql-password=test123
gmysql-port=3306

#DNS服务监听设置
local-address=0.0.0.0
local-port=54

#api及web服务配置
api=yes
api-key=qwerasdf
webserver=yes
webserver-address=0.0.0.0
# 如果pdns-admin docker部署在这个pdns节点上,可能会不走192.168网段,需要设置为0.0.0.0
webserver-allow-from=0.0.0.0/0  
webserver-port=8081

# 只有这些 IP 地址或网络掩码将能够执行 不带 TSIG 的 AXFR,0.0.0.0/0表示全部。
allow-axfr-ips=192.168.1.0/24
# 允许来自这些 IP 范围的 DNS 更新。0.0.0.0/0表示全部。
allow-dnsupdate-from=192.168.1.0/24, 192.169.0.0/16

log-dns-queries=yes
log-dns-details=yes
log-timestamp=yes

Master pdns 节点,需要在pdns.conf里面加入如下配置. slave节点不需要

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值