几天前,我在阅读有关DNS的文章,并了解了如何处理请求。如果您浏览www.example.com,则将向根名称服务器发送请求以查看谁拥有该.com地址,然后另一个请求将转至另一个更本地的DNS服务器以查看谁拥有example.com。地址等。
从技术上讲,这13个根名称服务器如何能够同时处理地球上数十亿互联网用户所进行的所有请求而又不会受到ddos:ed的困扰?
a.b.c.example
您将被告知是谁负责c.example
而不是谁负责example
。
几天前,我在阅读有关DNS的文章,并了解了如何处理请求。如果您浏览www.example.com,则将向根名称服务器发送请求以查看谁拥有该.com地址,然后另一个请求将转至另一个更本地的DNS服务器以查看谁拥有example.com。地址等。
从技术上讲,这13个根名称服务器如何能够同时处理地球上数十亿互联网用户所进行的所有请求而又不会受到ddos:ed的困扰?
a.b.c.example
您将被告知是谁负责c.example
而不是谁负责example
。
Answers:
它们是13个高可用性服务器群集,而不仅仅是13个服务器。
除其他事项外,要求根名称服务器操作员具有足够的能力来处理其正常流量负载的三倍(RFC 2870)。这导致相当大的集群。
然而,根名称服务器仅用于顶级域本身的响应,即com.
,net.
,uk.
,ae.
,等等,并且其查询根可以缓存该信息的域名服务器长达48小时,这显着地降低了在根名称服务器的负载。这导致较小的群集。
根名称服务器位于53个国家/地区的130多个物理位置;只有13个服务器名称,这是通过IPv4任意播的魔力实现的。
根名称服务器也有自己的网站,您可能会发现一些有趣的文章。
他们没有。根名称服务器只需告诉您名称服务器要处理的内容即可com
。从那时起,您无需再去处理它们内部的任何域com
。根名称服务器不知道谁拥有example.com
。它们是根名称服务器,而不是com名称服务器。
slimsuperhero所说的也是如此。许多高容量的名称服务器使用任播来拥有一个IP地址,该IP地址由世界各地的许多服务器提供服务。
com
。
com
另一方面,for的名称服务器必须承受更大的冲击。
请注意,您 不使用根服务器。通常,您使用Internet服务提供商提供的DNS服务器,如果您需要的信息在其本地缓存中,则通常可以立即响应。仅在不缓存的情况下,才询问其上游DNS服务器,最后才问到根服务器(然后将该响应缓存)
实际上,它的13个Anycast IP地址可解析为全球许多服务器。如果需要,您可以查看链接以找到那些服务器。所有这些服务器均由相关机构管理。
我们仍然仅使用13个IP地址(以及具有相同IP地址的服务器集群)的事实是,确保数据包大小不会超过512个字节。那么为什么?我们拥有的TCP可以超出此数据包的大小,为什么我们不能使用它呢?事实是,TCP涉及非常高的开销,因为它包含建立TCP连接的多个步骤和过程。因此,DNS查询的整个过程将变慢。
像DNS这样的事情永远不会慢,这就是为什么我们仍然使用相同的旧系统。
.
不再适合512个字节。由于现在必须使用IPv6,因此答案已增长到811个字节。使用EDNS,可以在单个响应中返回。但是,查询的.
频率不是很高,因此几次往返都是麻烦。递归者主要需要了解根IP地址的最新更改,而这些更改很少更改。