根名称服务器如何处理所有 DNS 请求?

根名称服务器如何处理所有 DNS 请求?

几天前,我读了有关 DNS 的文章,了解了请求的处理方式。如果你浏览www.example.com,则请求将转到根名称服务器以查看谁拥有该 .com 地址,然后另一个请求将转到另一个更本地的 DNS 服务器以查看谁拥有 example.com 地址等等。

从技术上来说,13 个根域名服务器如何能够同时处理地球上数十亿互联网用户的所有请求,而不会因超载而导致拒绝服务?

答案1

他们 13 岁高可用性集群服务器数量,而不仅仅是 13 台服务器。

除其他事项外,根域名服务器运营商需要拥有足够的容量来处理其正常流量负载的三倍(RFC 2870)这将导致相当大的集群。

但是,根域名服务器仅为顶级域名本身提供响应,即,,,,com.等,并且查询根的域名服务器可以缓存此信息net.uk.ae.最多 48 小时,这大大减少了根名称服务器的负载。这导致集群更小。

根名称服务器位于 53 个国家/地区的 130 多个物理位置;仅使用 13 个服务器名称,这是通过 IPv4 任播的魔力实现的。

根域名服务器也有自己的网站,您可能会发现它很有趣。

答案2

他们不知道。根名称服务器只需告诉您哪些名称服务器处理com。从那时起,您无需去找他们来处理 内的任何域com。根名称服务器不知道谁拥有example.com。他们是名称服务器,而不是com名称服务器。

slimsuperhero 所说的也是事实。许多高流量域名服务器使用任播让遍布世界各地的多台服务器提供单一 IP 地址。

答案3

每个根服务器实际上并不是一台服务器,而是巨大的服务器集群。此外,DNS 答案会被缓存,因此并非每个请求都会到达根服务器。

答案4

实际上,它是 13 个 Anycast IP 地址,可解析全球许多服务器。您可以查看关联如果需要,可以找到这些服务器。所有这些服务器都由相关机构管理。

我们仍然只使用 13 个 IP 地址(以及具有相同 IP 地址的服务器集群)是为了确保数据包大小不会超过 512 字节。那为什么呢?我们有可以超出此数据包大小的 TCP,为什么我们不能使用它?问题是,TCP 涉及非常高的开销,因为它包括多个步骤和程序来建立 TCP 连接。因此,DNS 查询的整个过程将变得缓慢。

DNS 之类的东西永远不会慢,这就是我们仍然使用相同的旧系统的原因。

相关内容