这是关于 DNS 根名称服务器的问题。
为了解决 DNS 查询,获取流程第一阶段的名称服务器,必须咨询根名称服务器。
共有 13 个服务器,这些服务器的 IP 地址可以在以下网址查看:http://www.internic.net/zones/named.root
我的理解是,当新设备连接到互联网时,它(可能)使用 ISP 提供的名称服务器。(我实际上不知道这些设备的 IP 地址是如何获取的。大概是 ISP 提供的路由器/硬件中的一些软件?)
然后 ISP 就知道根名称服务器的 IP 地址。
问题是,如果这些 IP 地址发生变化,会发生什么情况?这可能吗?
看看http://www.internic.net/zones/named.rootIP 地址似乎有些随意。
假设它们是静态的,由 ICANN 决定。根名称服务器的 IP 地址可以更改吗?如果可以,会发生什么?
答案1
是的,它可以改变,而且过去也发生过这样的情况,例如https://h.root-servers.org/renumber.html
H-Root 将于 2015 年 12 月 1 日更改地址
提前通知,DNS 根区域和 .ARPA TLD 列出的其中一个机构的 IP 地址将有计划的变更。变更后的 IP 地址为 H.ROOT-SERVERS.NET,由美国陆军研究实验室管理。
该机构的新 IPv4 地址为 198.97.190.53。
该机构的新 IPv6 地址为 2001:500:1::53。
事实上,这种情况“最近”发生过多次:
d
根域名服务器于 2013 年 1 月更改了其 IP 地址h
根域名服务器在 2015 年 12 月j
2002年l
2007年
除此之外,过去还添加了IPv6地址。
(全面了解情况:过去至少有一次重新编号事件确实引起了一些轰动,因为现已弃用的 IP 地址块的所有者继续监听查询并因此收集数据)。
更一般地,你可能想看看https://www.icann.org/en/system/files/files/rssac-023-04nov16-en.pdf它提供了根名称服务器历史记录的完整详细信息,包括编号、名称和 IP 地址的变化。
这不是一个问题,因为:
- 变化很少,冷却期很长
- 有 13 个名称服务器(在逻辑层面上,在物理层面上要多得多),因此存在很多冗余,即使一个名称服务器消失或其 IP 地址发生变化,其他名称服务器也有足够的配置来处理额外的流量(DNS 的核心是负载平衡,而不是故障转移,因此“平均而言”,每个名称服务器同时工作并接收大致相同数量的流量)
- 即使用户继续使用旧的、通常已停用的地址,他们也不会再收到回复,因此软件将自动切换到另一个 IP 地址(另一个根服务器)。这是一种标准的 DNS 弹性机制,由于递归名称服务器通常存储有关服务器响应与否的统计信息,因此它们会慢慢收敛到“最快”的名称服务器,从而丢弃任何不再有效的旧 IP 地址
- 软件发布时会附带一个提供这些数据的“提示”文件,因此,除了从未更新的内容外,它们都会获得新的信息。
- 但还要注意的是,好的软件都有内在的软件更新,这称为 DNS 的启动:即使软件部署了根名称服务器列表,它的第一个任务,称为“启动”,是联系一个这样的根名称服务器并获取当前的根名称服务器列表(名称 + IP),因此用新的当前动态列表替换本地硬编码列表。请参阅RFC 8109以获得关于该启动的完整描述。
至于:
我的理解是,当新设备连接到互联网时,它(可能)使用 ISP 提供的名称服务器。(我实际上不知道这些设备的 IP 地址是如何获取的。大概是 ISP 提供的路由器/硬件中的一些软件?)
该配置是硬编码的,或者在启动时使用 DHCP 获取设置。
但请注意,随着它被覆盖,这种情况变得越来越不真实。使用 DoH(基于 HTTPS 的 DNS)或 DoT(但方式较弱),这现在为每个应用程序(例如:浏览器)开辟了道路,可以决定查询哪个递归名称服务器,而不管操作系统配置了什么。事实上,浏览器在很大程度上引领了这一趋势。
以及:
看看http://www.internic.net/zones/named.rootIP 地址似乎有些随意。
您需要记住/知道 DNS 系统已有 40 年历史。它不断发展。公司/组织一开始的任务是成为仁慈的根名称服务器运营商,并且每个公司/组织都使用其 IP 块。如果今天从头开始创建它,我确信会为它保留一些块,因为它是为相关操作而创建的(有关示例,请参阅 RFC 7434 和 7435)。
但除此之外,没有 IP 地址是特殊的。每个 IP 地址的工作方式都相同,或者可以以相同的方式工作(根名称服务器使用任播)。
2023 年 5 月附录
B 根服务器运营商刚刚宣布更改 IP 地址https://b.root-servers.org/news/2023/05/16/new-addresses.html
USC/ISI 将于 2023-11-27 为 b.root-servers.net 重新编号其 IPv4 和 IPv6 地址。我们的新 IPv4 地址将为 170.247.170.2,我们的新 IPv6 地址将为 2801:1b8:10::b。
目前的工作包括199.9.14.201
和,2001:500:200::b
并且将继续工作一年:
USC/ISI 将继续支持我们当前 IPv4 和 IPv6 地址上的根服务至少一年(直到 2024-11-27),以便在新的根提示文件分发到软件和操作系统包中时提供稳定的过渡期。
进行此更改是为了增加 RIR 地址源的多样性:
我们的地址将是根服务器系统中第一个由 LACNIC 分配的地址,并且我们的路由将可通过 LACNIC 的资源公钥基础设施 (RPKI) 信任锚位置 (TAL) 进行验证。
答案2
它们是可以改变的,而且多年来已经改变过好几次了,尽管改变的次数很少。
关键在于,当它们被更改时,它们并不是同时被更改的。因此,如果其中一个被更改,DNS解析器仍然能够访问其余服务器,直到它们的运营商能够更新其根提示文件。
答案3
管理 DNS 递归解析器的运营商通常需要配置“根提示文件”。此文件包含根服务器的名称和 IP 地址,因此软件可以引导 DNS 解析过程。对于许多软件来说,该列表内置于软件中。
(我强调)
因此,如果根服务器的 IP 地址发生变化,世界各地的软件也必须改变。对我来说,这足以证明这些地址永远不会改变。编辑:下面的评论和最佳答案表明,这种说法是不正确的,根名称服务器的地址确实会偶尔改变。
编辑:第一个 IP 地址被硬连线到RFC1400. 来自 RFC:
转换后,host.txt 文件将仅从 nic.ddn.mil 提供,并且 hosts.txt 将仅包含 MILNET 主机。1993
年 4 月 1 日,新的根 DNS 服务器将投入使用。它将在 ns.internic.net ( 198.41.0.4 ) 上可用。
这表明,只要本 RFC 有效,该地址就不会改变,但理论上,其他根服务器的地址可能会改变。我猜想 DNS 软件应该被设计成从 ns.internic.net 更新根提示文件。