我天真的理解是:
您告诉注册商example.com
的名称服务器应为dns1.example.net
和dns2.example.net
。
将区域文件上传到dns1.example.net
和dns2.example.net
并附上一些记录。
我没想到2.可以包括NS记录。我认为NS记录是第1步的一部分。
在名称服务器中使用NS记录的目的是什么?如何在1. vs 2中使用不同的NS记录。?
这个previous question可能会涉及到这个主题,但我想更深入地了解。
答案 0 :(得分:1)
你触及一个重点。
实际上,给定域名的NS
记录都存在于父区域中(在那里需要它们才能进行正确的委托),并且在区域本身中。
如果这两组不同,那么你处于一种被称为“跛脚代表团”的情况,而专家们仍然不同意哪一部分是更具权威性的部分,即父级区域或儿童中的记录。 / p>
现在,两者实际上都是服务器的不同目的:
想象一下,世界上每个地方都有关于每个域需要哪些名称服务器的信息。然后,您将使用此信息查询区域中的记录,例如www
。
一切都是好的。
但是当然这样的信息并不是全世界都可以获得的(这基本上是DNS发明之前的情况),因此需要一种机制来实现这一目标。这是与树结构相关联的委托的目的:除了根之外,每个节点都有父节点。因此,对于工作,当你(这是一个递归缓存名称服务器)从根开始,找到每个后续的名称服务器"下面"您将需要获得"以上"的信息,因此您可以在父区域中找到名称服务器记录。
当您提供缓存(通过所有查询)时,将记录存储为区域中的集合。因此,NS记录需要存在,因为它们与区域相关联,它们是SOA记录中不可或缺的一部分。
请注意,当您在父域名服务器和此域名服务器上执行完全相同的查询(如dig NS example.com
)时,结果应该相同(否则它是开头讨论的跛脚委托情况),但有一个重要的区别。在结果中,一个标志将不同:当您询问区域的名称服务器但在查询父名称服务器时未设置时,将设置权威答案的AA。以前的比喻现在应该解释这种差异。
此外,对于DNSSEC,您有类似的情况,您需要再次建立一个链,称为信任链。每个区域都发布一个DNSKEY记录(实际上不止一个),并且父区域为区域中的每个DNSKEY记录发布一条DS记录(同样不是100%为真,但现在更容易看到它),两者都是并列的:DS记录的内容是DNSKEY记录中的数据加上区域名称的一些哈希值。