10.1 PowerDNS安装部署

概述

访问官方网站, 找到对应操作系统下对应组件的command, 执行安装命令, 本文Master选用Mysql做为Backend, Slave选用sqlite做为backend, DNS解析相关的配置全部使用PowerDNS-admin,生产环境部署全部使用ansible

Backends

下面表格为powerdns支持的backend

Name

Native

Master

Slave

Super slave

Launch

Yes

Yes

Yes

Experimental

Yes

bind

Yes

Yes

Yes

Yes

Yes

gmysql

Yes

Yes

Yes

Yes

Yes

godbc

Yes

Yes

Yes

Yes

Yes

gpgsql

Yes

Yes

Yes

Yes

Yes

gsqlite3

Yes

No

No

No

Yes

geoip

Yes

No

No

No

No

ldap

Yes

Yes

Yes

No

Yes

lmdb

Yes

Yes

No

No

Yes

lua2

Yes

No

No

No

Partial

pipe

Yes

No

No

No

Partial

random

Yes

Yes

Yes

Yes

Yes

remote

Yes

Yes

No

No

Partial

tinydns

部署规划

搭配方案如下

服务器部署

  • 管理服务器 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 安装完成以后需要注册一个用户, 第一个注册的用户为管理员

    powerdns-admin

  • 配置PDNS Authoritative Server API地址 PDNS API URL Your PowerDNS API URL (eg. http://127.0.0.1:8081/). PDNS API KEY Your PowerDNS API key.

    PDNS VERSION Your PowerDNS version number (eg. 4.1.1).

    powerdns-setting-api

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部署

待续

最后更新于

这有帮助吗?