![区域文件中的 NS 记录如何工作?](https://linux22.com/image/1592771/%E5%8C%BA%E5%9F%9F%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%20NS%20%E8%AE%B0%E5%BD%95%E5%A6%82%E4%BD%95%E5%B7%A5%E4%BD%9C%EF%BC%9F.png)
当前区域的区域文件中的 NS 记录如何工作?我猜它的工作方式如下,对吗?
例如,我们有一个用于 example.com 区域的递归名称服务器 A,以及一个用于 sub.example.com 区域的名称服务器 B,后者是 example.com 的子域,并且主机 host1.sub.example.com 位于 sub.example.com 中。
1、我在客户端上执行 dig @ServerA host1.sub.example.com
2、ServerA 检查其区域文件(或其缓存),找到 sub.example.com 的 NS 记录和 A 记录
3、ServerA“第一次”查询 ServerB,因为它自己的区域文件中的 NS 记录指向 ServerB
4、ServerB 将其区域文件中的 NS 记录返回给 ServerA,告诉 ServerA“嘿,这些是我域的 NS 记录,保证它们是正确的。它们是官方的,是正确的,如果它们与您的不同,请将您的记录放入垃圾箱”
5、ServerA 从上一步中挑选一个名称服务器(可能挑选的是 ServerB),如果选择了 ServerB,ServerA 需要“第二次”查询 ServerB,并询问“host1.sub.example.com 的 A 记录是什么”。
即使 ServerA 选择了 ServerB,它仍然需要执行第二个查询,对吗?
答案1
DNS 并不关心完整的 DNS,而只关心所查询的内容。
如果您对 sub.example.com 发出 DNS 请求,您将获得 sub.example.com 的 NS 记录,然后服务器会处理该请求。
没有必要查询 example.com 本身,除非在到达 sub.example.com 的整个推理过程中,还存在向 example.com 本身请求信息的东西。
例如,如果你在 sub.example.com 上有一个 webscript,用于检查https://example.com/test.php存在,那么它将与 example.com 联系,否则则不会。
DNS 的主要功能是将名称转换为地址。因此,您输入域名,然后会得到 IP 地址以及有关该域名的一些信息,例如文本记录。
因此,DNS需要检查的信息越少,速度就越快。这是它的优点,也是它的缺点。