我理解 NS 记录的作用,但我不明白的是如何客户端(例如我的电脑)首先会获取 NS 记录吗?请帮我填补这个空白:
- 我想
abc.com
- 我问???区域文件
- 我获取了包含 NS 记录的区域文件信息
abc.com
,即ns1.xyz.com
,ns2.xyz.com
等等 - 我向权威域名服务器
.com
(可通过询问 13 个根服务器获得)询问以下 IP 地址:ns1.xyz.com
- 我询问的
ns1.xyz.com
IP 是什么abc.com
。它返回1.2.3.4
- 我跟...说话
1.2.3.4
在第 2 点中,我首先要查询谁来获取区域文件?我需要知道区域文件在哪里才能知道要向谁询问 IP。但是如何找到区域文件?或者数百万个区域文件中包含的信息存储在哪里?
答案1
如果您以客户端(即 DNS 的消费者)的身份运行,则不需要任何区域文件。通过 IXFR 或 AXFR 请求区域文件被视为不良行为,除非您实际上正在为相关域提供 DNS。
您的解析器将使用根提示来查找.com
(gTLD) 名称服务器。然后,gTLD 名称服务器查询数据库以查看哪个名称服务器对该域具有权威性。当用户注册域名时,注册商会更新数据库,并且数据库也由注册商维护 - 因此每次名称服务器 (NS 记录) 发生变化时,注册商都负责将该更改推送到 gTLD 名称服务器。
然后,客户端利用此信息xyz.com
向名称服务器查询 的 IP 地址abc.com
。
答案2
形式非常简单:
您的 DNS 客户端在其 DNS 客户端缓存中查找答案。如果未找到答案:
DNS 客户端向其 DNS 服务器询问答案。
客户端的 DNS 服务器在其 DNS 服务器缓存中查找答案。如果未找到答案,则:
客户端的 DNS 服务器(如果不使用转发器)会向其中一个根提示服务器 (.) 询问答案。
根提示服务器使用负责相关 gTLD (.com) 的 gTLD 服务器的 NS 进行应答。
客户端的 DNS 服务器向其中一个 gTLD 服务器查询相关域 (abc.com) 的 NS。
gTLD 服务器使用负责该域名 (abc.com) 的 DNS 服务器的 NS 来应答。
客户端的 DNS 服务器向 NS(ns1.abc.com)查询相关记录。
相关域的 NS 回答 DNS 客户端的 DNS 服务器。
客户端的 DNS 服务器向您的 DNS 客户端提供答案。
顺便提一下,您的 DNS 客户端及其 DNS 服务器均未获取区域文件。