PowerDNS
概述
PowerDNS 权威服务器是一个功能丰富的域名服务器,支持大量的后端。这些后端可以是纯粹的区域文件,也可以是更动态的性质。后端是一个数据存储,服务器将查询它,其中包含 DNS 记录(以及一些元数据)。后端范围从数据库后端(MySQL、PostgreSQL)和 BIND 区域文件到协同进程和 JSON API。
可以通过使用 launch 选项在配置中启用多个后端。每个后端都可以单独配置。在本指南中,我们将重点介绍 sqlite。
有关完整的功能列表,请参阅 PowerDNS 文档网站
安装
apk add pdns pdns-backend-sqlite3 pdns-docs
rc-update add pdns
配置
在 Alpine 上,默认配置文件是:/etc/pdns/pdns.conf。默认配置可以很好地开始使用 DNS 功能。要使用 SQLite 后端,请编辑配置文件并在底部添加
launch=gsqlite3 gsqlite3-database=/var/lib/powerdns/pdns.sqlite3
pdns-doc 附带了 /usr/share/doc/pdns/ 中不同后端的示例。对于此示例,我们使用 sqlite 模式。
首先我们需要创建正确的目录
mkdir /var/lib/powerdns
接下来我们需要导入数据库模式
sqlite3 /var/lib/powerdns/pdns.sqlite3 < /usr/share/doc/pdns/schema.sqlite3.sql
然后我们需要设置正确的权限
chown -R pdns:pdns /var/lib/powerdns
有关更详细的指南,请参阅此处的文档 here
现在我们可以启动服务器并开始向其添加记录
rc-service pdns start
使用
添加记录通常通过命令行完成。有几个基于 Web 的 GUI 可用,但这超出了本文的范围。有关更多信息,请参阅资源部分。
我们首先必须设置一个 DNS 区域
pdnsutil create-zone example.com ns1.example.com
我们还添加一个 NS 记录。要添加新记录,我们执行以下命令
pdnsutil add-record example.com. www A 192.0.2.1
其中 www 是子域名,而 192.0.2.1 是我们指向的服务器。
控制 PowerDNS 状态
以通常的方式停止、启动和重启守护进程
rc-service pdns start
rc-service pdns stop
rc-service pdns restart
开机时自动启动 pdns
要将守护进程添加到默认运行级别,以便它在启动时自动启动,请执行
rc-update add pdns
故障排除
TODO
- 确保守护进程正在运行,使用
rc-status
资源
- PowerDNS 的主网站:https://www.powerdns.com
- PowerDNS 文档:https://doc.powerdns.com/ (本文的大部分内容来自主文档站点。仅更改了 Alpine 特有的详细信息。)
- 软件包列表:https://pkgs.alpinelinux.org/packages?name=pdns*&branch=v3.17&repo=community&arch=&maintainer=
Web GUI