DNS 子域(子)NS 记录

DNS 子域(子)NS 记录

如果我们有示例.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。已经有 NS 记录例如.com。儿童区和胶水记录ns1.example.com。我们为了什么目的要在子区域中再次声明 NS 记录?

而且,我们是否需要在子区域本身中为名称服务器声明 A 记录?

答案1

运作方式

权威NS记录位于区域本身内(并ANSWER在查询权威服务器时按部分提供),就像该区域中的所有其他记录一样。

为了能够遍历树,还会将引荐/委托/权威信息(NS以及任何必要的胶水A/AAAA记录)添加到父区域。
但是,此信息不被视为“真实答案”,答案缺少AA(权威答案)标志,并且NS记录位于AUTHORITY部分中以表明这只是有关谁拥有实际答案的信息。
这意味着,如果您直接查找NS记录,您将遵循此引荐并查询权威服务器,尽管刚刚看到了什么应该是相同的信息。

为什么要定义它以这种方式工作?

大概是因为所有权威记录都驻留在它们所属的区域内被认为是正确/干净/合乎逻辑的,并且也应该有权威记录NS

这可以有不同的定义吗?

是的。例如,看看DS在后来引入时记录是如何定义的。在这种情况下,子区域内没有这样的记录,而是父区域具有权威性。

我可以做不同的事吗?

不。因为它是这样定义的,而且所有的软件都是基于它的定义而工作的,如果你做得不正确,事情就会被破坏(通常是以微妙的方式)。

总结

您需要NS在您的区域中以及父区域中的委托信息中使用相同的记录。同样,任何胶水A/AAAA记录也需要作为真正的权威记录实际存在。

答案2

尽管我不愿意与我尊敬的同事意见相左,但NS区域内的记录确实有某些用途。例如,1ary NS 需要知道所有其他 NS 是谁,以便在发生区域更新时可以向所有 NS 发送 DNS NOTIFY,这样它们就知道要执行区域传输。这些信息是从这些区域内NS记录中获取的。

对于DS没有区域内对应项的记录,DS是区域内 KSK 记录的简单摘要DNSKEYNS如果不是因为 KSK 记录的长度相当长,以及对于拥有数千万个子条目的域(例如)的性能影响,那么该记录就像记录一样,会在区域内和区域外进行镜像.com。因此,决定只在父区域中保留摘要 - 但它们仍然是相同的记录,并且区域内和区域外的副本必须匹配,就像NS记录一样。

总结

Håkan 是对的;您需要这些区域内记录,并且它们确实应该与区域外(粘合)副本相匹配。通常,除非您非常确定自己知道自己在做什么,否则不要违反 RFC。

相关内容