如果我们有example.com,我们将设置如下内容:
$ORIGIN example.com.
@ 1D IN SOA ns1.example.com. hostmaster.example.com. (
2002022401 ; serial
3H ; refresh
15 ; retry
1w ; expire
3h ; nxdomain ttl
)
IN NS ns1.example.com.
IN NS ns2.example.com.
因为在父区.com。example.com已经有 NS 记录。ns1.example.com的子区域和粘合记录。出于什么目的,我们在子区域中再次声明 NS 记录?
此外,我们是否需要在子区域本身中为名称服务器声明 A 记录?
它的工作方式
权威
NS
记录位于区域本身内部(并在ANSWER
查询权威服务器时在部分中提供),就像属于该区域的所有其他记录一样。为了能够遍历树,还将推荐/委托/授权信息(
NS
以及任何必要的粘合A
/AAAA
记录)添加到父区域。但是,此信息不被视为“真实答案”,该答案缺少
AA
(权威答案)标志,并且NS
该部分中的记录AUTHORITY
表明这只是有关谁拥有实际答案的信息。这意味着如果您直接查找
NS
记录,您将遵循此推荐并查询权威服务器,尽管您刚刚看到应该是相同的信息。为什么它被定义为以这种方式工作?
大概是因为它被认为是正确/干净/合乎逻辑的,所有权威记录都驻留在它们所属的区域内,并且也应该有权威记录
NS
。这可能有不同的定义吗?
是的。例如,看看在
DS
很久以后引入记录时是如何定义的。在这种情况下,子区域内没有这样的记录,而是权威的父级。我可以做不同的事情吗?
不。因为它是按原样定义的,并且所有软件都根据它的定义方式工作,所以如果你做得不好,事情就会中断(通常以微妙的方式)。
tl;博士
您需要
NS
在您的区域和父区域中的委派信息中使用相同的记录。同样,任何胶水A
/AAAA
记录也需要作为真正的权威记录实际存在。尽管我讨厌不同意我尊敬的同事,但
NS
该区域内的记录确实有一些用途。例如,1ary NS 需要知道所有其他 NS 是谁,以便在区域更新的情况下可以向它们发送所有 DNS NOTIFY,因此它们知道执行区域传输。它从这些区域内NS
记录中获取此信息。至于
DS
没有区域内对应的记录,它是区域内 KSK记录DS
的简单摘要。如果不是因为 KSK 记录的相当长的长度以及对具有数千万子条目的域的性能影响,例如DNSKEY
,维护类似的任意长度的记录数。因此决定只在父区域中保留摘要 - 但它们仍然是相同的记录,并且区域内和区域外的副本必须匹配,就像记录一样。NS
.com
NS
tl; 博士
哈坎是对的;您需要那些区域内记录,它们确实应该与区域外(胶水)副本相匹配。通常,除非您确定自己知道自己在做什么,否则不要违反 RFC。