PowerDNS

来自 Alpine Linux

概述

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

资源

Web GUI