![为什么一个注册域名总是至少有两个权威名称服务器?](https://linux22.com/image/766597/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%B8%80%E4%B8%AA%E6%B3%A8%E5%86%8C%E5%9F%9F%E5%90%8D%E6%80%BB%E6%98%AF%E8%87%B3%E5%B0%91%E6%9C%89%E4%B8%A4%E4%B8%AA%E6%9D%83%E5%A8%81%E5%90%8D%E7%A7%B0%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我发现几乎所有注册域名都至少配置了两个权威名称服务器(大多数域名配置了两个),使用两个服务器可以提供冗余,以应对任何类型的服务器故障。从技术上讲,对 auth NS 服务器的数量没有限制,因此单个 NS 也可以。
但是,有些区域已经为一个服务器配置了多个地址,例如ns1.qq.com
(4 个 IPv4 地址,用于 的 auth NS qq.com.
)。而有些区域则使用任播等技术来分发名称服务器,例如ns3.cloudflare.com
(一个任播 IPv4 和一个任播 IPv6)。
在这些情况下,当一个 NS 条目已经可以提供针对物理服务器故障的冗余时,为什么还要为一个区域配置多个权威名称服务器?
答案1
在互联网发展的早期,注册商要求您在不同的物理位置拥有两个 DNS 服务器,然后他们才会注册您的域名。我不知道今天的要求是什么,但我确信历史传统已经延续到提供冗余的严格必要性之后。您看到的很多可能都是最初注册的 NS 对,而且它从未改变过。
与设置任播、热故障转移等相比,这样做要简单得多。
答案2
首先,标题问的是“为什么会有多个权威名称服务器?”,而问题主体显然假设“当然需要有多个权威名称服务器来实现冗余”(这确实是标题所提问题的答案),而是问“为什么会有多个NS
记录?”。
考虑到这一点,我认为标题所提的问题在问题本身中已经得到了很大程度的回答。冗余是可取的,人们不想完全依赖单个主机或单个网络。
传统上,NS
记录只是指向充当名称服务器的不同主机,以此为起点,只需NS
为该区域的每个主机添加记录即可。
这反过来导致了一些默认行为,这些行为假设每个名称代表一个主机,而不是任何任意的主机分组,例如通知行为规范中的建议是向NS
除主机之外的主机发送通知SOA
MNAME
(即,通知除SOA
标识为主服务器之外的所有名称服务器)。
现在,问题的剩余部分分为两种情况的例子:
单个名称有多个地址(每种类型都有,比如 multiple
A
/ multiple ) ,可以代表多个权威服务器以提供冗余: 这当然可以做到,但在我看来,问题所建议的用法似乎是一种不太常规的方式,做着问题所批评的同样的事情。这样做的好处尚不明确,而且超出了预期,从而可能会导致意外问题(比如,您的注册商可能不允许您为单个主机提供任意数量的粘合记录,或者其他问题)。 在问题中提到的实际例子中,他们有四个这样的记录,所有记录都有多个地址,所以他们同时在做这两件事。由于他们拥有大量的地址,这种方法也许有优势,但这似乎是一个超出问题真正目的的极端情况。AAAA
NS
NS
冗余的任播:从
某种意义上来说,这可能是更有力的论据,因为单个地址(每种类型,如 singleA
/ singleAAAA
)可以代表多个权威服务器。但是,任播基于 BGP,首先,它不适用于任何名称服务器运营商,因此很难说每个人都可以/应该这样做,但更重要的是,只有一个地址仍然会对 BGP 中“正常工作”的一条特定路由产生很大的依赖性。理想情况下,人们仍然希望在不同的网络中有多个地址。