PDNS4 后端¶
PDNS4 配置¶
Ubuntu Xenial 中的 PowerDNS 版本是 pdns4。它具有不同的数据库模式,并且与旧版 PowerDNS 驱动程序不兼容。在 PowerDNS 4 中,API 被标记为稳定,我们将使用它。
在执行这些步骤之前,您需要配置 PowerDNS 及其数据库。
PowerDNS 的 API 需要数据库后端才能正常工作。
有关详细信息,请参阅 PowerDNS 文档。
在
pdns.conf文件中启用 API。
webserver=yes
api=yes
api-key=changeme
使用此示例目标片段配置 PowerDNS 后端
targets:
- type: pdns4
description: PowerDNS4 DNS Server
# List out the designate-mdns servers from which PowerDNS servers should
# request zone transfers (AXFRs) from.
masters:
- host: 192.0.2.1
port: 5354
# PowerDNS Configuration options
options:
host: 192.0.2.1
port: 53
api_endpoint: http://127.0.0.1:8081
api_token: changeme
api_ca_cert: /etc/ssl/certs/ca-certificates.crt
# If a tsigkey is needed, uncomment the line below and insert the name
# tsigkey_name: <keyname>
然后更新 designate 中的池
$ designate-manage pool update
有关 designate-manage pool 命令的更多详细信息,请参阅 designate-manage pool,有关 yaml 文件语法的更多信息,请参阅 DNS 服务器池
TSIG 密钥配置¶
注意
这仅在 PowerDNS 4.2 或更高版本中可用
在某些情况下,部署者可能需要使用 tsig 密钥来签署 AXFR(区域传输)请求。由于 pdns 不支持每个主机的密钥设置,因此需要在创建时按区域设置。
为此,在 PowerDNS 服务器上生成一个 tsigkey
$ pdnsutil generate-tsig-key <keyname> hmac-sha512
Create new TSIG key keyname hmac-sha512 4EJz00m4ZWe005HjLiXRedJbSnCUx5Dt+4wVYsBweG5HKAV6cqSVJ/oem/6mLgDNFAlLP3Jg0npbg1SkP7RMDg==
然后将其插入 Designate。确保池 ID 正确(下面的 --resource-id)。
openstack tsigkey create --name <keyname> --algorithm hmac-sha512 --secret 4EJz00m4ZWe005HjLiXRedJbSnCUx5Dt+4wVYsBweG5HKAV6cqSVJ/oem/6mLgDNFAlLP3Jg0npbg1SkP7RMDg== --scope POOL --resource-id 794ccc2c-d751-44fe-b57f-8894c9f5c842
然后将其添加到 pools.yaml 文件中,如示例所示。使用的 ID 是 PowerDNS 服务器中密钥的名称。