我的问题是假设我的网站是“xyz.com” 我可以在世界任何地方访问它,但我很好奇所有的 dns 服务器如何知道我网站的 IP 地址..? 我有点困惑..
通过 DNS 解析 IP 地址的主要过程是引用。 DNS 服务器将通过一个过程来查找您的域的权威名称服务器。权威名称服务器是配置为回答该域的查询的服务器。即 godaddy DNS 服务器,如果您已购买并通过它们配置域名。
如果您从 PC 访问
www.example.com
,它将向您配置的 DNS 服务器发送查询,请求 www.example.com
如果您配置的 DNS 服务器已经知道该答案,即最近被问过相同的问题,它将从缓存中返回答案(只要它尚未过期)
如果您配置的 DNS 服务器不知道,那么它会找到。为了找出哪个服务器知道答案,它需要首先查找 example.com 的名称服务器。
因此,名称服务器发出的第一个查询是针对根域“.”。 (所有 DNS 服务器应该都配置了这些)以查找
.com
域的名称服务器。
当它有
.com
域的名称服务器的地址时,它将发送一个查询,询问 example.com
的名称服务器
当它拥有
example.com
的名称服务器地址时,它会将 www.example.com
的原始查询发送到该服务器,并将答案返回给您(并在其缓存中放置一个副本,以防其他人询问)
注意:如果您正在寻找
www.test.example.com
,那么它会向 example.com 询问 test.example.com
的名称服务器。
这就是为什么有 DNS 根服务器。
DNS系统的顶层是DNS根服务器。有 大约 500 个根服务器分布在全球各地, 通过 13 个 IP 地址进行寻址。这些根服务器是唯一的 包含所有域名和 IP 地址的完整列表。所以 最终,DNS 请求可能会一直到达 DNS 根 服务器(如果没有其他 DNS 服务器有答案)。如果还是没有 在根级别回答,则 DNS 请求失败,您的浏览器 返回错误。 来源
您的计算机(或设备)首先检查其本地 DNS 缓存,看看它是否已经知道该域名的 IP 地址。如果该地址已缓存,它将使用该地址连接到网站。如果该地址不在本地缓存中,您的计算机将向递归 DNS 解析器发送查询。这通常由您的 ISP(互联网服务提供商)或公共 DNS 服务(例如 Google DNS 或 Cloudflare DNS)提供。递归 DNS 解析器首先查询根 DNS 服务器之一。根服务器负责将查询定向到适当的顶级域 (TLD) DNS 服务器。然后,TLD DNS 服务器提供域 example.com 的权威 DNS 服务器的地址。权威 DNS 服务器保存域的实际 DNS 记录。权威服务器响应网站的IP地址。
参考:有关完整说明,请检查此https://youtu.be/iSz-AVoSHJk