BIND:冗余主名称服务器

BIND:冗余主名称服务器

所以我在 Google 上搜索了一下,没有找到任何与此相关的内容。但显然这必须发生。我无法想象没有冗余主服务器的组织。我在 Google 上找到的常见方法是使从属服务器冗余,但这并不能解决这样一个事实:如果主服务器发生故障,从属服务器只能正常工作一段时间。

我的实验室网络中有一组 DNS 服务器。一个主服务器,两个从服务器,两个仅递归服务器。

主服务器负责将区域文件传输给从服务器,并且是隐藏的。它不接受查询或允许递归,这是根据我在互联网上找到的最佳实践文档设计的。

从属服务器允许来自仅递归服务器的查询,这些服务器的转发器设置为我的 ISP DNS,以及本地从属服务器(用于虚拟机等的内部网络解析)。

我计划设置另一台主服务器,以实现高可用性,

我该如何使用 BIND 来做到这一点?我知道我可以为masters { server1; server2; };从属服务器设置配置,但是如何处理有两个主服务器的情况?

  1. 如果两个主服务器之间的区域文件存在冲突,那么在传输到从服务器时谁优先?
  2. 我该如何定义故障转移?如果 Master1 发生故障,从属服务器将自动尝试字段中列出的第二个 IP masters,对吗?所以我不需要设置任何东西就可以实现自动故障转移?

编辑:这是我当前设置的视觉效果:(我想添加一个主服务器)

在此处输入图片描述

答案1

如果存在双主控,则每个主控都独立运行,您是否希望区域保持同步。

没有哪个主服务器具有优先权。父 DNS 服务器通常(并且预计会)随机化/轮换区域名称服务器的显示顺序,而客户端软件通常按接收顺序查询。(在某些极端情况下可能并非如此 - 我推测父服务器受到控制和/或可以结合 CDN/多播流量操纵路由)

要做到这一点,您只需将每台服务器配置为主服务器,并且没有任何“主服务器”行。我使用脚本将相同的更新推送到主服务器。

您无需设置故障转移。如果 DNS 客户端未收到响应,则会依次尝试名称服务器。话虽如此,但依赖客户端远非理想选择,因为当第一个服务器未响应时,它会非常明显地减慢 DNS 响应时间。SOA 记录上的较长 TTL 可以部分缓解这种情况。

因此,没有哪个主服务器优先,它们被同等对待,尽管您可能能够使用不同的 SOA 记录 ttl 和不同的序列来加权此行为 - 但我建议不要这样做,因为它可能会导致问题。我从未尝试过,所以我只是根据 20 年前学习时获得的理解以及随后运行双主服务器的实践经验从理论上讲。

答案2

你不应该把第二个 DNS 主服务器作为奴隶您的主 DNS 的 DNS 基础架构?我的 DNS 基础设施有 2 个 DNS 主服务器,第二个是从服务器,它也从主 DNS 获取所有区域,其他“真正的”从服务器有 2 个主服务器,将第二个主服务器视为主服务器而不是从服务器。这意味着您需要允许第二个主服务器传输区域,即使它没有定义为主服务器 inc 配置文件。

相关内容