如何有效地处理多个 DNS 服务器?

如何有效地处理多个 DNS 服务器?

我最近在网络中添加了更多 BIND9 DNS 服务器,而添加每个我希望从属节点从属的区域/域的工作变得过于重复,更不用说只有一个主服务器很容易造成故障。有没有更好的方法来管理 DNS 区域/从属服务器等?

答案1

作为一个拥有数十台 DNS 服务器和数千个域的环境的系统管理员,我理解(好吧,感受到)你的痛苦。我们用 puppet 和模板解决了这个问题。

我们的所有域和服务器也在我们的基础设施数据库中有条目(甚至区域也是从那里生成的,但目前这并不重要)。所以我们大致做了以下事情:

主名称服务器:

  • 主named.conf有几个用于生成文件的包含语句,如下所示
  • 生成的配置包括所有从属服务器的通知语句,这些语句是从对我们的基础设施数据库的 SQL 查询生成的
  • 域列表也是从该数据库生成的

关于奴隶:

  • 主named.conf有几个用于生成文件的包含语句,如下所示
  • 域列表由基础设施数据库生成,包括主域的信息

当 puppet 更改上述任何文件时,它也会调用rndc reconfig重新加载配置,但前提是它解析正确。

答案2

一些建议可能是:

  • 创建仅缓存的 DNS 服务器,如本文
  • 使用 rsync 定期将配置从一个从属服务器复制到另一个从属服务器
  • 使用 heartbeat 或 keepalived 为同一 IP 创建负载平衡主 DNS 服务器。

答案3

我使用不同的方法。使用 PowerDNS,区域和记录的复制非常容易。整个 dns 数据存储在 MySQL-DB 中,并通过 MySQL 复制到 2 个从属服务器,这些服务器也使用 powerdns。

该装置运行了约 6 年,没有出现任何问题。

顺便说一句:bind 仍然用于缓存

相关内容