ICANN CTO 戴维·康纳德 (David Conrad)近日撰文(OCTO-010),介绍域名系统根服务器的工作原理及社群参与根服务器讨论和运作的途径。
概要
在将域名转换为互联网协议 (IP) 地址或互联网操作中使用的其他数据的过程中,根服务器负责回答第一个问题。
1 域名系统解析过程
人们喜欢使用姓名识别身份,而计算机通常使用数字进行识别。在浏览网页时,您的浏览器需要知道您访问的网站所在的网络服务器的 IP 地址(或者叫全球唯一识别码)。在浏览器导航栏中键入网站的域名或单击 URL 链接后,浏览器将启动 DNS 解析过程来查找这些 IP 地址。
浏览器会向“解析器”(resolver)发送一个查询,解析器是实施 DNS 解析过程的软件。解析器会在本地保留以前查询过的问题的答案副本(称为缓存),因此,解析器也许已经能够响应浏览器,而无需执行进一步操作。但是,如果缓存中没有答案,则解析器会显示一条消息,说明在本地缓存中没有答案时,如何执行完整的 DNS 解析过程。具体步骤如下所示:
第一步【注释1】,向 13 个根服务器【注释2】中的任意一个根服务器发送包含网站域名【注释3】的查询,询问该网站对应的 IP 地址。然而,根服务器只包含顶级域 (TLD) 的相关信息,特别是顶级域的列表信息和保存这些顶级域下二级域名内容的域名服务器的信息。收到查询请求的根服务器会返回一个“引荐”(referral)作为响应,此引荐就是一个列出网站域名 TLD 的名称服务器(name server)的列表。例如,如果您尝试访问网站 www.example.com,您的解析器将向其中一个根服务器发送一个查询,询问该域名的 IP 地址,此时,根服务器将返回一个列出了 “.com”(我们示例中的 TLD)的所有名称服务器的列表。
第二步,将同一查询发送到引荐响应中收到的其中一个 TLD 的名称服务器。与根服务器类似,TLD 名称服务器通常只包含它们负责的域的名称服务器信息。对于 TLD 名称服务器,这些域就是 TLD 内的二级域。因此,就像发送到根服务器的查询一样,发送到 TLD 名称服务器的查询也会收到引荐响应,提供一个有关所查询的二级域的名称服务器列表。在前面的示例中,解析器将向其中一个“.com”名称服务器发送对“www.example.com”的查询,询问该域名的 IP 地址,“.com” 名称服务器将返回一个列出“example.com”的所有名称服务器的列表。
此解析过程将一直继续,直到将查询发送到符合以下条件之一的域名服务器:拥有答案,即,Web 服务器的 IP 地址;或者域名服务器能够发布权威性声明,表示所查询的域名不存在。在我们的示例中,解析器将向其中一个“example.com”的名称服务器发送对“www.example.com”的查询,该名称服务器可能知道与“www.example.com”相关的 IP 地址,并返回这些地址。
注1从技术上来讲,准确地说,在大多数情况下,在执行此步骤之前还需要完成以下步骤:解析器启动后,它(通常)会读取一个预配置文件(称为“根提示”【root hint】文件),该文件拥有 13 个根服务器的26个 IP 地址(13 个 IPv4 地址和13 个 IPv6 地址)。读取该文件后,解析器会向其中一个地址发送查询,以查看根服务器的地址是否已发生更改。这一步称为“启动查询”,说明了解析器如何获得关于根服务器的最新信息。
注2 “名称服务器”(name server)是计算机上响应域名系统查询的软件。根名称服务器( root name server)通常简称为根服务器(root server),尽管一个“根服务器”实际上是由多台计算机组成(稍后进行详细介绍)。有一点容易混淆,那就是解析器(resolver)通常也被称为名称服务器,特别是在家庭路由器和各种配置文件中。但是在本文中,我们始终将它们称为解析器。
注3 最近发布了一项名为“查询域名最小化”的标准(请参见 RFC 7816),该标准建议:为了提高隐私保护力度,解析器应只发送与所查询的名称服务器相关的域名部分,例如,只向根服务器发送关于 TLD 名称服务器的查询,向 TLD 名称服务器发送有关二级域名的查询等等。关于此标准的详细信息及其影响,不在本文档的涵盖范围之内。
显然,每个步骤都需要花费一些时间,但根据前文所述,如果本地已有缓存的答案,则可以加快响应速度:在将查询发送到域名服务器之前,解析器会检查其本地缓存,查看最近是否提出过相同的查询。如果提出过相同的查询,则返回上次查询时收到的响应。如果没提出过,当域名服务器返回答案时,解析器会将这个答案保存在本地缓存中,并且会在将查询发送到域名服务器之前查看该缓存。该缓存对于 DNS 实现可扩展性至关重要。更为复杂的是,如果启用了域名系统安全扩展 (DNSSEC),解析器会检查所收到的数据的加密签名,以确认数据没有被攻击者修改。
2 根服务器系统(Root Server System)
综上所述,根服务器的作用(主要作用是对解析过程中的第一步做出响应)非常有限。尽管如此,根服务器对互联网的正常运营仍然至关重要。如果不能获得根服务器提供的初始“引荐”响应,就不可能在互联网上查找任何域名【注释4】。
根服务器系统(root server system)由 1000 多台单独的计算机(称为根服务器“节点”【instance】)组成,这些计算机会保留 DNS 的根数据。如前所述,这些节点通过引荐顶级域的名称服务器来响应来自互联网解析器的查询。
称为“根服务器运营商”(root server operators)的 12 个组织负责管理13 个根服务器“标识”(identifiers)【注释5】,每个标识在 root-server.net 域内用字母 a 到 m 命名,即从 a.root-servers.net 到 m.root-servers.net。在这些根服务器标识(称为根服务)中,每个标识都有两个与之关联的唯一IP 地址:一个 IPv4 地址和一个 IPv6 地址。这 些 IP 地址已预置在互联网上的所有解析器中,因此,这些解析器能够找到要提出查询的根服务。根服务每天会收到超过 700 亿次的海量查询。
这13个根服务会对它们收到的查询作出以下响应:或者返回在根区(root zone,由 ICANN 运营的 IANA 职能负责管理)中找到的信息;或者当被查询的 TLD 没有被授权时,会显示一条消息表明该域名不存在。此信息受 DNSSEC 保护:任何人对数据进行任何修改都会导致启用了 DNSSEC 的解析器忽略响应,从而防止根区被修改或出现试图在响应中插入不真实信息的攻击。
根服务器系统必须具有弹性,因为该系统必须能够对大量连续的查询请求做出响应,同时,还要确保能够抵御各种网络攻击。根服务器运营商通过使用一种名为“任播”(anycast)的路由技术在全球范围内分布根服务器节点,从而满足了这种弹性要求。任播路由允许整个互联网上的计算机使用相同的 IP 地址来提供相同的响应,从而能够在数百个不同的城市和国家/地区部署根服务器节点。如今,全世界范围内已广泛部署大量根服务器节点,因此,根服务器系统已极具弹性。有关根服务器节点分布情况的更多信息,请访问 https://root-servers.org。
注4 一些网络运营商利用RFC 7706 (https://tools.ietf.org/html/rfc7706) 中记录的技术或类似技术创建根区文件的本地副本,这样他们的解析器就不需要向根服务器发送查询。然而,这类技术并未得到广泛应用,本文档未涵盖相关内容。
注5(主要)由于历史原因,一个组织负责管理两个标识。
3 ICANN 社群参与
根服务器系统咨询委员会 (RSSAC) 是 ICANN 的咨询委员会之一,由根服务器运营商和其他相关人员组成。RSSAC 负责就互联网根服务器系统的运行、管理、安全性和整合性问题向 ICANN 董事会和 ICANN 社群提出建议。不仅如此,RSSAC 还组建了 RSSAC 专家委员会(Caucus),任命感兴趣的行业专家加入委会员。该委会员负责制定各种 RSSAC 文档,包括报告和公告。有关 RSSAC 和 RSSAC Caucus的更多信息,请访问https://www.icann.org/groups/rssac
有关 RSSAC 制定的一系列文档,请访问https://www.icann.org/groups/rssac/documents
4 我的组织可以请求部署根服务器任播节点吗?
许多根服务器运营商都制定了相关计划,允许在本地部署根服务器节点。有关这些根服务器运营商的名单,请访问 https://root-servers.org。
托管根服务器节点有利于大型网络(如互联网服务提供商 (ISP))和大型企业网络的用户,并且有 助于提高本地国家和/或地区互联网 DNS 基础设施的安全、稳定与弹性。托管根服务器节点的一个好处,就是可以缩短网络的 DNS 查询响应时间,尤其是对于不存在的域名更是如此,还可以减少 DNS 查询所使用的带宽,否则,这些查询将转到网络外部的根服务器节点。
5 ICANN 组织的职责
除了运营 IANA 职能——IANA的一项重要工作是更新发布给 13 个根服务的根区文件(root zone),在运营层面,ICANN 组织还管理其中一个根服务器标识(“l.root-servers.net”),这个根服务器标识名为“ICANN管理的根服务器 (IMRS)”。不仅如此,ICANN组织还要参与根服务器运营商之间展开的各项讨论。此外, ICANN 组织还负责为 RSSAC 进行的政策审议和其他活动提供支持,并确保 RSSAC 决策委员会能够顺利开展工作。
为了维护 DNS 基础设施的安全、稳定与弹性,ICANN 组织鼓励符合运营条件的组织广泛部署 ICANN 管理的根服务器节点。有关托管 ICANN 管理的根服务器 (IMRS) 的任播节点的更多信息,请参阅
https://www.dns.icann.org/imrs/faq/

共有条评论 网友评论