PDNS4 后端

PDNS4 配置

Ubuntu Xenial 中的 PowerDNS 版本是 pdns4。它具有不同的数据库模式,并且与旧版 PowerDNS 驱动程序不兼容。在 PowerDNS 4 中,API 被标记为稳定,我们将使用它。

在执行这些步骤之前,您需要配置 PowerDNS 及其数据库。

PowerDNS 的 API 需要数据库后端才能正常工作。

有关详细信息,请参阅 PowerDNS 文档

  1. pdns.conf 文件中启用 API。

webserver=yes
api=yes
api-key=changeme
  1. 使用此示例目标片段配置 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>
  1. 然后更新 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 服务器中密钥的名称。