假设我使用 EasyDNS 作为 DNS 服务提供商。
那里有一个A
-record 条目,用于ns-at-premises.example.com
指向192.0.2.123
我的场所内 DNS 服务器所在的 IP 地址,该服务器监听端口 53。
还有一个CNAME
-record 条目,ns.example.com
其值为ns-at-premises.example.com
(我读到某处说NS
-Records 应该得到CNAMEd
)。
example.com
拥有A
的记录192.0.2.234
,在 AWS 上托管的 VPSwww.example.com
拥有 的CNAME
记录example.com
,但这并不相关。
有一个子域名dynamic.example.com
具有 的NS
-Record ns.example.com
,它将发送任何对 的请求*.dynamic.example.com
或dynamic.example.com
在 处进行解析192.0.2.123
,其中*
可以是任何东西。
--
我现在想做的是添加一个备份名称服务器以防万一。这意味着如果无法访问,应该查询192.0.2.123
端口 53 的服务器。192.0.2.124
192.0.2.123
我将添加一个A
-Record 来ns-backup.example.com
指向192.0.2.124
,以及一个CNAME
值为ns2.example.com
ns-backup.example.com
--
问题是,现在我如何告诉 EasyDNS在无法访问时dynamic.example.com
应该查询还是重定向?ns2.example.com
ns.example.com
我读到,只需添加第二个NS
值为ns2.example.com
to的 -Recorddynamic.example.com
就会导致客户端以循环方式使用ns.example.com
和进行查找,但我真正想要的是只有在关闭时才进行查询。ns2.example.com
ns2.example.com
ns.example.com
所以我实际上正在寻找一种向名称服务器添加权重的方法,就像MX
-Records 能够提供的一样。
这可能吗?还是我必须接受这两个名称服务器都不是主服务器的想法,并将它们视为负载平衡的非优先服务器?
答案1
你不需要固定ns1.example.com和ns2.example.com。你只需要有有效的 NS 记录,因此即使直接ns-at-residential.example.com可以设置为名称服务器,无需ns1.example.com需要设置cname。
正如这里已经提到的,您询问的用例不存在...您可以做的是设置 masterns1它将通知更改ns2这会将更改拉到本地缓存,从而实现“标准”主/从配置。
此时,你可以让两个 DNS 解析相同的响应,因此最后你不需要关心哪个 DNS 服务器提供了答案。即使ns1暂时无法使用ns2在ns1的停电。
也可能的情况是,在前提下有“隐藏”的名称服务器,甚至不会传播到 DNS。可能只是处理更改并充当主服务器。其他位于 DC 的 DNS 服务器(例如)可以在 DNS 中作为域的 NS 进行宣布。在在场在线状态可以直接传播到(拉入)公开的 NS 服务器。如果发生中断,更改将在下一次成功检查后传播ns1已启动。
没有任何要求处理区域记录的“真实主服务器”必须始终公开可用。它必须足够可用,以免从服务器上缓存的区域过期。对于 DNS 功能,域定义中列出的所有 NS(主要是上层 NS - 例如 .com 是 .com 的 NS)甚至可以是所有从服务器,因为就解析目的而言没有区别。主服务器/从服务器的角色仅用于区域维护目的(处理区域的地方)。
答案2
DNS 协议不提供指定主名称服务器和备份名称服务器的机制。
您可以设置多个具有权威性的名称服务器,但每个名称服务器都需要响应(并且通常会对相同的查询返回相同的响应),并且所有名称服务器都将被查询。