有很多文章这样说:
因为13个根服务器的所有信息都可以打包到一个UDP数据包中,但15个或更多根服务器不能打包,所以选择13个。
然而,根据https://www.iana.org/domains/root/servers,13台根服务器的IP地址全部为固定的。这样就不需要查询所有根服务器的IP地址了。
什么情况下需要查询所有DNS根服务器的IP地址?
DNS根服务器的数量是否必须限制在13台?
答案1
首先,它并不总是 13。在所有根服务器被重命名为 之前,它只有 9(如果我没记错的话)X.root-servers.net
。
重命名根服务器使人们能够使用 DNS 名称压缩,这意味着在 DNS 数据包中,具有a.root-servers.net
并b.root-servers.net
使用与一个名称基本相同的大小(加上几个字节,因为基本上root-servers.net
作为字符串只会在 DNS 数据包中出现一次),其中拥有foobar42.example
并将acme51.test
使用在数据包中存储两个字符串所需的所有空间。
因此对于:
DNS根服务器的数量是否必须限制在13台?
是的,将 UDP 数据包保持在给定大小以下,保证不会分段或产生问题。
但请注意,添加新的名称服务器(和新的 IP 地址)目前几乎没有用处。正如你所看到的https://root-servers.org/现在,所有根名称服务器都是任播的:它们实际上存在于多个位置,并且它们的每个 IP 地址都在不同的位置进行解析。这可以实现故障转移。添加更多名称或 IP 地址不会显着增强当前系统,实际上会产生一个更大的问题:谁来管理新的名称服务器?这是一个巨大的政策问题。根服务器的管理员在某种程度上与 ICANN 签订合同(以便在它们之间进行协调),并且在某种程度上完全独立(为了避免捕获,这是 Postel 在选择第一个管理域名服务器的实体时的明确目标)。几年前,每个国家都想托管一个根名称服务器,认为这会给他们在政策表上或作为“电子化”国家带来任何优势,或者声称该系统目前仅在美国的控制之下对于像互联网这样的“国际”共享资源来说是不合适的(但从那时起他们中的大多数人都明白他们不需要这个......他们可以在本地拥有其他根名称服务器,强制本地 ISP 使用给定的列表而不是 IANA 的列表,或劫持当前根域名服务器 IP 地址)。它被阻止是因为在技术层面这是不可能的,也不可取的。但在“治理”层面上,它会引发一种蠕虫。
13台根服务器的IP地址全部固定。
这是不正确的,至少从长远来看是这样。 IP 地址确实会改变。它发生在过去,也可能发生在未来。
例如,请参阅最后一个案例:https://root-servers.org/news/b-root-ipv4-address-renumbered.txt
2017 年 8 月 10 日
b.root-servers.net 的 IPv4 地址将重新编号为 199.9.14.201,于 2017 年 10 月 24 日生效。
旧的 IPv4 地址 (192.228.79.201) 将继续回答查询至少 6 个月。
您可以在以下位置找到其他 IPv4/IPv6 重新编号:https://root-servers.org/news.html
这样就不需要查询所有根服务器的IP地址了。
这不是问题。递归域名服务器附带了根域名服务器及其 IP 地址的列表,因此不存在“先有鸡还是先有蛋”的问题。但是由于“启动设计”,递归名称服务器将在启动时查询其中一个以下载更新的列表(因此我们回到使 UDP 数据包足够小以确保它安全地传输到任何地方的条件),也许如果第一个没有回复(已被过滤),则其他。因此从技术上讲,它们都应该存在,作为后备。