名称服务器(ns)数量多少才算太多?

名称服务器(ns)数量多少才算太多?

自从GoDaddy 的 DNS 中断我绝对不信任名称服务器。

我刚刚创建了一个域名,下一步是设置名称服务器。我打算使用 Route 53、CloudFlare DNS 和其他提供商。这意味着我可能最终会将大约 13 个名称服务器附加到我的域名上。

我应该限制这个数量吗?主要问题是每次有人查询我的域名时都会增加一点延迟。查询会下载 13 个名称服务器的列表吗?

答案1

确实存在“名称服务器过多”的问题,但原因并非您所关心的。其他人已经讨论了延迟问题无关紧要的问题,我就不重复这个话题了。

添加太多名称服务器的真正问题是权限膨胀。对 SOA 记录请求的回复应尽可能不超过 512 字节,包括权限和附加部分。在大多数情况下,TCP 和 EDNS 可用于克服 512 字节障碍,但当权限 + 附加信息无法容纳在标准的 512 字节响应中时,某些名称服务器软件仍然表现不佳。(主要涉及区域传输或 DNS 转发器)

考虑到以上因素,DNS 服务器数量过多的问题仍然归结为“视情况而定”。您应该计划让 DNS 服务器支持 IPv6,因此这会增加开销。(A+AAAA 记录)

作为参考,雅虎此时的 SOA 回复如下:

$ dig @ns1.yahoo.com +norecurse yahoo.com soa

; <<>> DiG 9.9.5-9+deb8u2-Debian <<>> @ns1.yahoo.com +norecurse yahoo.com soa
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53960
;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 11

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1272
;; QUESTION SECTION:
;yahoo.com.                     IN      SOA

;; ANSWER SECTION:
yahoo.com.              1800    IN      SOA     ns1.yahoo.com. hostmaster.yahoo-inc.com. 2015100224 3600 300 1814400 600

;; AUTHORITY SECTION:
yahoo.com.              172800  IN      NS      ns2.yahoo.com.
yahoo.com.              172800  IN      NS      ns3.yahoo.com.
yahoo.com.              172800  IN      NS      ns6.yahoo.com.
yahoo.com.              172800  IN      NS      ns1.yahoo.com.
yahoo.com.              172800  IN      NS      ns4.yahoo.com.
yahoo.com.              172800  IN      NS      ns5.yahoo.com.

;; ADDITIONAL SECTION:
ns1.yahoo.com.          1209600 IN      A       68.180.131.16
ns1.yahoo.com.          86400   IN      AAAA    2001:4998:130::1001
ns2.yahoo.com.          1209600 IN      A       68.142.255.16
ns2.yahoo.com.          86400   IN      AAAA    2001:4998:140::1002
ns3.yahoo.com.          1209600 IN      A       203.84.221.53
ns3.yahoo.com.          86400   IN      AAAA    2406:8600:b8:fe03::1003
ns4.yahoo.com.          1209600 IN      A       98.138.11.157
ns5.yahoo.com.          1209600 IN      A       119.160.247.124
ns6.yahoo.com.          172800  IN      A       121.101.144.139
ns6.yahoo.com.          1800    IN      AAAA    2406:2000:108:4::1006

;; Query time: 27 msec
;; SERVER: 68.180.131.16#53(68.180.131.16)
;; WHEN: Fri Oct 02 19:03:45 EDT 2015
;; MSG SIZE  rcvd: 411

如上所示,6 条 NS 记录及其对应的 A 和 AAAA 地址已经重达 411 字节。如果我向基本域添加多达 6 个字符(6 * 19 = 144,411 + 144 = 555),那么仅强制记录就已经超过 512,更不用说通常会添加到 SOA 记录右侧的可选膨胀了。

大多数公司不会使用超过 4 条 NS 记录。6 条可能太多了。只要您遵循以下原则,就没有必要扩展到这个数字通常的指导方针或者使用信誉良好的 DNS 提供商。

答案2

让我们明确一点。自从低成本低端提供商出现故障以来,您就不再信任经过验证的技术。为什么?您认为每个人都像 GoDaddy 一样无能吗?多年来从未遇到过 DNS 问题。

我正在考虑使用 Route 53、CloudFlare DNS 和其他提供商。这意味着我可能最终会将大约 13 个名称服务器附加到我的域名。

不。您不知道有多少个名称服务器。您看到的一台服务器可能是使用相同 IP 地址的集群。您只有极少量的名称服务器。

说真的,你完全高估了这个问题。如果你使用 CloudFlare,那么这就足够了——尤其是如果你的内容在 CloudFlare 后面。

主要担心的是每次有人查找我的域名时都会增加一点点延迟。

这种情况到底发生的频率是多少?请记住 - DNS 答案会被缓存,可能在多个级别。也就是说,我敢打赌大多数最终用户都会使用其提供商的 DNS。您真的会过度考虑在获取主机名并利用它进行某些操作所需的大量工作中估计的 1ms(最大值)。

过度设计显示出一种偏执,这种偏执主要建立在对技术和专业提供商的不了解上。摆脱它。

我个人在所有事情上都使用 CloudFlare,并且我很高兴只将它们用作我的 DNS。

答案3

RFC2182 第 5 节建议至少有 3 个名称服务器,最好不超过 7 个。

相关内容