域名系统是如何控制的?

域名系统是如何控制的?

我不知道域名系统如何避免在全球范围内重复输入相同的域名。

假设我启动一个域名服务器并将域名 google.com 映射到我的 IP 地址,其他域名服务器如何检测歧义?谁负责避免此类重复?

答案1

之所以这无关紧要是因为没有人会要求您的个人 DNS 服务器解析 google.com。

假设我向浏览器请求 google.com。以下是我的 ISP 递归名称服务器所经历的步骤(假设 google 的 A 记录未在本地缓存):

  1. 我从我的 ISP 的名称服务器请求 google.com 的 DNS A 记录(但它不在我的个人 DNS 缓存中)。
  2. 如果最近没有缓存,名称服务器就知道它不具有 google.com 区域的权威性,因此无法在本地区域数据库中查找。因此,它会随机向 13 个根名称服务器中的一个询问 google.com。
  3. 根服务器使用 ISP 的名称服务器的 NS 记录将其发送到 .COM TLD 的全球顶级域名服务器。
  4. GTLD 名称服务器也不知道 google.com 在哪里,但它会向名称服务器发送对 google.com 区域具有权威性的名称服务器的记录。
  5. 现在我们的名称服务器询问权威服务器,它返回 google.com 的 A 记录,该记录返回给我们(并缓存在 ISP 的名称服务器上,以避免再次经历所有这些)。

如您所见,在该过程中,我或我的名称服务器都不会询问您的 DNS 服务器 google.com 在哪里。

现在,通过缓存中毒和其他类似攻击,存在潜在的漏洞。其中最著名的一个是 Kaminsky 漏洞。

有关 DNS 解析的详细分步指南以及严重问题和漏洞的描述,请查看这本图解指南

答案2

这里有一个小争议点:您的 ISP 的 DNS 服务器不会向根服务器查询 Google 的 A 记录。根服务器会回答有关 gTLD 的查询。忽略任何缓存,情况如下:

  1. 您的 ISP 的 DNS 服务器将查询根服务器,以查找 .com gTLD 的权威名称服务器

  2. 然后,您的 ISP 的 DNS 服务器将查询负责 .com 域名的其中一个 gTLD 服务器,以查找 Google 的权威名称服务器

  3. 然后,您的 ISP 的 DNS 服务器将向其中一个 Google 名称服务器查询 A 记录

根服务器负责 . 域名,而 gTLD 服务器负责 .com、.edu 等域名。根服务器对 .com、.edu 等下的任何域名一无所知。

这里有两个层级的层次:

a.root-servers.net 至 m.root-servers.net - 负责 . 域

a.gtld-servers.net 至 m.gtld-servers.net - 负责 .com、.edu 等域名

相关内容