主/从DNS设置与rsync的DNS服务器

我们目前在公司networking上有主要和辅助DNS服务器。 它们被设置为主/从types设置,其中从设备从主设备获取其DNS信息。

我试图找出主/从设置的真正好处,而不是在两者之间设置一个自动rsync,以保持DNS设置匹配。

任何人都可以点亮这个? 还是只是一个优惠的事情? 如果是这样的话,似乎rsync设置将更容易设置,维护和理解。

主/从configuration(也称为“区域传输”, AXFRIXFR )是大多数DNS服务器使用的标准configuration。 仅仅因为这个原因,这就是我所推荐的,尽pipe它很复杂。

虽然我推荐它用于互操作性,并且由于其他pipe理员很容易理解,但这并不意味着它在技术上是最好的方式。

丹尼尔·伯恩斯坦( djbdns / tinydns )强烈倾向于使用rsync并且比较了rsync和区域传输 。 rsynctinydns很好,但我从来没有尝试过bind

如果你尝试了,请记住,你可能会写一个脚本,由cron运行。 另一个查看您的DNSconfiguration的pipe理员不一定知道这一点,或知道在哪里可以find同步脚本。 相比之下,常规区域传输configuration正好在您的区域文件中,使其明确。 这是否重要取决于您处理的其他pipe理员数量,以及您如何获得有关您的DNSconfiguration的信息。

其实还有很多事情要做,但其中的大部分可能与您的情况无关。

首先,使用DNS主/从关系可以轻松复制异构服务器types。 我知道我已经与Windows DNS同步了一个主要的OS X服务器(BIND?)服务器。

这也使您可以指定辅助DNS系统可以从不同的主服务器检索不同的区域(反之亦然)。 一个实际的例子:我们曾经运行我们自己的DNS系统,并且为了可靠性外包了额外的辅助DNS。

扩展DNS服务器也很容易。 您只需将新的从属服务器添加到列表中,而不是添加额外的名称服务器,设置额外的复制等。这样可以使过程相对独立。

有几个原因使用AXFR / IXFR而不是rsync:

  1. 它是标准的,适用于所有符合标准的实现。 这可以让你混合使用服务器 – 也许如果你想在你的某个供应商出现安全问题的时候保持弹性

  2. 速度很快 – 如果使用NOTIFY机制,主服务器上的更改可以在几秒钟内复制到NOTIFY 。 (主人告诉副局,区域改变了,然后IXFR可以用IXFR抓住更改)。

  3. 这是可靠的 – 你的服务器没有机会得到一个半复制的文件,并认为这是整个文件。

FWIW,我们在一个非常大的区域使用IXFR 。 它“只是工作”。

假设BIND在这里。

  • 如果您更新了区域logging,则在重新加载时,主站通常会通知从站有更改。 奴隶然后将获取更新。
  • 使用rsync更新只会在rsync运行时传播。 再加上需要告诉奴隶重新加载更改。

在我看来,使用rsync不仅更麻烦,它只是创造更多的东西出错,可能离开主从。

看起来rsync和IXFR最终会做同样的事情。 例如,你可以很好地从bind9-> bind9进行rsyncing,但是如果你需要从bind8-> bind9或者bind-> Microsoft进行,那么区域传输应该仍然可以工作,尽pipe后端有所不同。 正如我所看到的,只有rsync-plus才能完全禁用区域传输,从安全的angular度来看这是非常好的。

自1995年以来,我们一直在使用rsync进行绑定 – 工作正常 – 今天有足够的理由去进行tinydns和/或区域传输,但是当时的逻辑,以及为什么我们今天坚持下去,就是如果有一台服务器被攻击了不是真正的“主要”,然后复制到其他人的问题。

这就是说,让局域网内的主要内部networking和从属networking可以解决问题。

我们推出rsync并通过脚本重新加载,以及一些理智检查 – 如果你走这条路线考虑增加所有这些片段事情出了问题 – 你真的不希望你的DNS服务器,甚至缺less区域。

我通常按​​照给定的情况做自然事情。

当使用绑定,根据情况,我通常会运行2个主人和几个奴隶。

变化是一个主人; 这些更改被validation,然后rsynced另一个主。 该主人使用zoen传输将区域发送到客户端看到的DNS服务器。 另外两个没有广告。 (第一个主人不是绝对必要的,但有一个抓猴子是很好的)我也喜欢有2个副本的服务器configuration和2个副本的区域文件在一个适当的格式(而不是你得到的副本从服务器)。 必须小心确保服务器只有 rsync完成才能重新加载区域。

当你使用AD进行DNS时,你不必担心在服务器之间交换区域–AD协议神奇地处理同步所有的事情。

PowerDNS期望您将使用区域传输,或者使用某种数据库复制机制来保持同步。

TinyDNS可以使用区域传输,但是如果你在同一个组织内传输文件,使用类似rsync的东西是有意义的,因为tinydns服务器使重载区域安全和容易。

最后,也是最重要的一点 – 如果您要与直接控制之外的组织交换DNS区域,请使用区域转移。 例如,让您的ISP主机为客户提供授权服务器是很平常的事情。 该服务器将成为从服务器,并通过区域传输获取区域,而不pipe客户运行的是哪种types的DNS服务器。 同样,如果我将DNS外包给像UltraDNS这样的提供商,我会坚持能够从他们的服务器上进行区域的区域传输,所以我可以随时更新注册服务器来使用我的服务器而不是他们的服务器作为我的域的权威服务器。