我们目前在公司网络上有主 DNS 服务器和辅助 DNS 服务器。它们以主/从类型设置进行设置,其中从属从主控获取其 DNS 信息。
我试图弄清楚主/从设置的真正优势是什么,而不是仅仅在两者之间设置自动 rsync 以保持 DNS 设置匹配。
任何人都可以对此有所了解吗?或者它只是一个优惠的东西?如果是这种情况,rsync 设置似乎更容易设置、维护和理解。
我们目前在公司网络上有主 DNS 服务器和辅助 DNS 服务器。它们以主/从类型设置进行设置,其中从属从主控获取其 DNS 信息。
我试图弄清楚主/从设置的真正优势是什么,而不是仅仅在两者之间设置自动 rsync 以保持 DNS 设置匹配。
任何人都可以对此有所了解吗?或者它只是一个优惠的东西?如果是这种情况,rsync 设置似乎更容易设置、维护和理解。
这里实际上发生了很多事情,但其中大部分可能与您的情况无关。
首先,使用 DNS 主/从关系允许跨异构服务器类型轻松复制。我知道我已将主 OS X Server (BIND?) 服务器与 Windows DNS 同步。
这还允许您指定辅助 DNS 系统可以从不同区域的不同主服务器检索(反之亦然)。一个实际的例子:我们曾经运行我们自己的 DNS 系统,并外包了额外的辅助 DNS 以提高可靠性。
通过这种方式扩展 DNS 服务器也很容易。您只需将新的从属服务器添加到列表中,而不是添加额外的名称服务器、设置额外的复制等。这样可以保持进程相对独立。
主/从配置(也称为“区域传输”
AXFR
或IXFR
)是大多数 DNS 服务器使用的标准配置。仅出于这个原因,这就是我推荐的,即使它很复杂。尽管我推荐它是为了实现互操作性,并且因为其他管理员很容易理解,但这并不意味着它在技术上是最好的方法。
Daniel Bernstein (of
djbdns
/tinydns
) 非常喜欢rsync
并有这张表比较rsync
与区域转移。rsync
很好用,tinydns
但我从未尝试过bind
.如果您尝试它,请记住您可能正在编写一个由
cron
. 另一个查看您的 DNS 配置的管理员不一定知道这一点,或者知道在哪里可以找到同步脚本。相比之下,常规区域传输配置就在您的区域文件中,使其明确。这是否重要取决于您处理的其他管理员数量以及您希望他们对您的 DNS 配置了解多少。AXFR
使用/IXFR
而不是 rsync有几个原因:它是标准的,适用于所有符合要求的实现。这允许您混合服务器 - 也许如果您想要在您的供应商之一出现安全问题时恢复
NOTIFY
速度很快 - 如果您使用该机制,可以在几秒钟内将主服务器上的更改复制到辅助服务器。(主节点告诉从节点该区域已更改,然后从节点可以使用 抓取更改IXFR
)。这是可靠的 - 您的服务器以某种方式获得一半复制的文件并认为这是整个文件的可能性为零。
FWIW,我们
IXFR
在一个非常大的区域使用。它“正常工作”。假设在这里绑定。
在我看来,使用 rsync 不仅更麻烦,而且只会造成更多错误,可能会使主从不同步。
看起来 rsync 和 IXFR 最终会做同样的事情。例如,您可以从 bind9->bind9 进行 rsync,但如果您需要从 bind8->bind9 或 bind->Microsoft 进行,尽管后端存在差异,区域传输仍然可以工作。在我看来,只使用 rsync 的好处是您可以完全禁用区域传输,从安全角度来看这很好。
自 1995 年以来,我们一直使用 rsync 运行绑定 - 工作正常 - 今天有很多理由进行 tinydns 和/或区域传输,但当时的逻辑以及我们今天坚持使用它的原因是,如果一台服务器在那里以某种方式被黑客入侵不是真正的“主要”,然后将问题复制给其他人。
也就是说,拥有 LAN 的主要内部和 Internet 上可访问的从属也可以解决问题。
我们通过脚本推出 rsync 并重新加载,以及一些健全性检查——如果你走这条路,考虑添加所有这些部分以防出现问题——你真的不希望你的 DNS 服务器停机甚至丢失区域。
对于给定的情况,我通常会做自然而然的事情。
使用 bind 时,根据情况,我通常会运行 2 个 master 和几个 slave。
更改由一位大师完成;这些更改经过验证,然后重新同步到另一个主服务器。该主机使用 zoen 传输将区域发送到客户端看到的 DNS 服务器。其他两个没有广告。(第一个 master 不是绝对必要的,但是有一个从头开始的猴子很好)我也喜欢有 2 个服务器配置副本和 2 个正确格式的区域文件副本(而不是你得到的副本)从服务器)。必须注意确保服务器仅在rsync 完成后重新加载区域。
当您将 AD 用于 DNS 时,您无需担心在服务器之间交换区域——AD 协议神奇地负责同步所有内容。
PowerDNS 期望您将使用区域传输或使用一些数据库复制机制来保持同步。
TinyDNS 可以使用区域传输,但如果您在同一组织内传输文件,则使用 rsync 之类的东西是有意义的,因为 tinydns 服务器使重新加载区域变得安全且容易。
最后,也是最重要的——如果您要与不受您直接控制的组织交换 DNS 区域,请使用区域传输。例如,让您的 ISP 为客户托管一个权威服务器是很常见的。该服务器将作为从属服务器并通过区域传输获取区域,无论客户运行的是哪种类型的 DNS 服务器。同样,如果我将我的 DNS 外包给像 UltraDNS 这样的提供商,我会坚持能够从他们的服务器上进行我的区域的区域传输,因此我可以随时通过更新注册商来使用我的服务器而不是他们的服务器来离开它们作为我的域的权威服务器。