我想知道在主 PowerDNS 服务器和从属 PowerDNS 服务器之间传输域及其更新哪个是更好的选择。
我看到很多 2006 年的旧帖子说使用 MySQL 复制方式更好,但那是 8 年前的事了。因此,对于当前的 PowerDNS 版本,我想知道哪种方式更好:MySQL 复制还是 AXFR 方法?
答案1
文档说“本机复制是默认设置,除非特别配置了其他操作。”(http://doc.powerdns.com/html/replication.html) Native 指的是您使用的后端原生的复制,它不需要主动参与进程本身,而只需使用呈现的数据。因此,对于大多数人来说,MySQL Native 通常意味着 MySQL 复制,尽管从技术上讲,rsync 和 mysqldump 的组合也可以这样称呼。
PowerDNS 服务器不支持增量区域传输 (IXFR),但采用 AXFR。对于非常大的区域,这意味着名称服务器之间的网络流量会增加。此外,我不知道当区域大于可用 RAM 时会发生什么。PowerDNS 服务器可能会因此而阻塞。
可以仅使用 BIND 区域文件后端(即“传统” BIND8/9 风格)设置 AXFR 主/从,但如果您计划使用 PowerDNS 部署 DNSSEC,则需要具有 dnssec 功能的后端(如 MySQL)来存储元数据和密钥。
大多数使用纯 PowerDNS 服务器设置的人都在使用本机(带有 MySQL)复制,因此这也是 PowerDNS 服务器用户提供大多数支持信息的主题。
使用 MySQL 复制,您的所有名称服务器的机会几乎是即时的,如果您允许客户端更改自己的区域/记录(例如通过 PowerDNS 服务器使用的数据库的某些 Web 前端),则可以提供更流畅的用户体验。
答案2
我最终改用 mysql galera 集群,并将所有 3 个 power dns 服务器设置为 master,效果很好
答案3
请注意,MySQL 是纯文本传输的。因此您需要加密,以免泄露您的 dnssec 密钥。
MySQL SSL 太麻烦了(而且您很可能需要手动编译它)。 MySQL 通过 ssh 隧道 - 设置起来很麻烦。 MySQL 通过任何其他方式 - 存在保持隧道运行以及从属和主控不相互断开连接的问题。
最好的解决方案是通过 scp 进行 mysqldump。您可以消除与隧道和主从连接有关的所有问题。
您可以设置自定义 nanocron 每 10 秒进行一次同步,在小数据库上这不算什么