这是一个关于 DNS 地理冗余的规范问题。
众所周知,在提供弹性 Web 服务时,非常需要位于不同物理位置的地理冗余 DNS 服务器。文件BCP 16对此进行了深入介绍,但一些最常提到的原因包括:
防止数据中心灾难。地震发生。机架发生火灾并烧毁附近的服务器和网络设备。如果数据中心的物理问题同时关闭两个 DNS 服务器,即使它们不在同一行,多个 DNS 服务器也不会给您带来多大好处。
防止上游对等问题。如果共享的上游网络对等点小睡,多个 DNS 服务器将无法防止出现问题。无论是上游问题完全使您脱机,还是只是将所有 DNS 服务器与一小部分用户群隔离,最终结果都是即使服务本身位于完全不同的数据中心,人们也无法访问您的域。
这一切都很好,但是如果我在同一个 IP 地址上运行我的所有服务,那么冗余 DNS 服务器真的有必要吗?如果没有人可以访问我的域提供的任何内容,我看不出拥有第二个 DNS 服务器会给我带来什么好处。
我知道这被认为是最佳实践,但这似乎毫无意义!
$ORIGIN example.com. ; not necessary, using this to self-document
$TTL 3600
@ IN SOA ns1.example.com. admin.example.com. (
1970010100 7200 1800 1209600 300)
@ IN NS ns1.example.com.
@ IN NS ns2.example.com.
@ IN A 198.51.100.1
ns1 IN A 198.51.100.2
ns2 IN A 198.51.100.3
sub1 IN NS ns1.example.edu.
sub2 IN NS ns1.sub2
ns1.sub2 IN A 203.0.113.1 ; inline glue record
Run Code Online (Sandbox Code Playgroud)
NS 记录在域顶点下的作用是众所周知的。它们的存在是为了将子域的权限委托给另一个名称服务器。上面的例子应包括的NS记录sub1和sub2。这些允许名称服务器为它认为自己不具有权威性的域部分分发引用。
在NS的目的,记录在一个域的顶点,ns1而ns2在这种情况下,似乎较少地受到互联网的大了解。我的理解(可能不是整体的)如下: