10.1 PowerDNS安装部署
概述
访问官方网站, 找到对应操作系统下对应组件的command, 执行安装命令, 本文Master选用Mysql做为Backend, Slave选用sqlite做为backend, DNS解析相关的配置全部使用PowerDNS-admin,生产环境部署全部使用ansible
Backends
下面表格为powerdns支持的backend
部署规划
搭配方案如下:
MySQL
服务器部署:
管理服务器 x1
PowerDNS Authoritative Server master
PowerDNS-Admin
Mysql
PowerDNS Authoritative Server slave x 1
PowerDNS Recursor x 1
测试域名为
svc.example.com
服务器ip
角色
部署程序
10.40.61.116
Master
pdns pdns-backend-mysql PowerDNS-Admin Mysql
10.40.58.153
Slave
pdns pdns-backend-sqlite
10.40.58.154
Recursor
pdns-recursor
10.1.1 PowerDNS Authoritative Server
PowerDNS Authoritative Server - Master
PowerDNS Authoritative Server的master和slave安装方式完全相同,通过配置文件指定不通的角色
配置repo并安装
配置官方仓库
手动安装
由于本地网络不能访问Internet所以手动下载对应的软件包, 上传至服务器手动安装部署
使用阿里云repo安装直接安装
Mysql server
使用mariadb 代替
初始化MariaDB
创建数据库
Powerdns 使用的基础数据库脚本, 获取后直接执行或者存入文件导入
Configuration
PowerDNS Authoritative Server 配置文件 /etc/powerdns/pdns.conf, 配置完成后重启powerdns
下面为Mysql backend的配置, 需要配置在
/etc/pdns/pdns.conf文件中
PowerDNS Authoritative Server - Slave
Slave的安装请参考配置repo并执行安装命令完成对应的安装
Configuration
其中主配置文件为/etc/powerdns/pdns.conf, 配置文件内容如下
其它配置在文件/etc/powerdns/pdns.d/pdns.local.conf文件中, 内容如下
默认所有的Slave使用sqlite做为backend, 配置文件为/etc/powerdns/pdns.d/pdns.local.gsqlite3.conf配置文件内容如下:
1.1.2 PowerDNS-Admin
根据git仓库的有关信息使用docker-compose启动powerdns-admin
创建目录并clone代码到本地
创建数据库
编辑
docker-compose.yml, 主要修改连接的数据库信息其它的不需要改动
启动
web浏览器访问 powerdns-admin 安装完成以后需要注册一个用户, 第一个注册的用户为管理员

配置PDNS Authoritative Server API地址
PDNS API URLYour PowerDNS API URL (eg. http://127.0.0.1:8081/).PDNS API KEYYour PowerDNS API key.PDNS VERSIONYour PowerDNS version number (eg. 4.1.1).
10.1.3 PowerDNS Recursor
PowerDNS Recursor - version 4.3.X
由于本地网络不能访问Internet所以手动下载对应的软件包, 上传至服务器手动安装部署
Configuration
Powerdns Recursor的配置文件为/etc/pdns-recursor/recursor.conf
旧版本的配置文件可能是
/etc/powerdns/recursor.conf
配置forward-zones
/etc/powerdns/recursor.conf的配置文件中配置include-dir=/var/lib/powerdns/recursor这个自定义的目录,所有forward-zones的相关配置全部放到这个目录中
将svc.example.com 的解析请求全部转发到Master或者Slave的主机上, 以下10.75.35.99是一个master
以下为将所有不是svc.example.com的解析请求全部转发到阿里云的内网DNS上
注意前缀+号的作用有待进一步测试
使用Ansible部署
待续
最后更新于
这有帮助吗?