没有 SOA 记录——这意味着什么?

没有 SOA 记录——这意味着什么?

我调查了一堆垃圾邮件域名,但没有一个有 SOA 记录。我以前从未见过这种情况——我甚至不知道这是可能的。

如果没有 SOA 记录,DNS 怎么工作?如果 SOA 记录不是必需的,那么省略它会产生什么影响?

我并不特别想添加垃圾网站的链接,但示例域名是“vance miller kitchens uk dot co dot uk”。

答案1

事实上,有一条SOA记录,只是它不在您所期望的位置。让我们看看 AUTHORITY 部分...请记住,它与具有权威性的名称服务器ns1.nservers.co.uk.没有任何关联。nic.uk.co.uk.

$ dig @ns1.nservers.co.uk. +norecurse +noall +authority vancemillerkitchensuk.co.uk SOA
co.uk.                  3600    IN      SOA     win-k7rk0hedad1. hostmaster. 6 900 600 86400 3600
$ dig @ns1.nservers.co.uk. +norecurse +short co.uk SOA
win-k7rk0hedad1. hostmaster. 6 900 600 86400 3600

这暴露了他们的实际配置:他们定义了一个co.uk区域。这简化了他们的配置,因为他们只需要维护一个文件。您没有得到请求的答案部分的原因SOA是,这不是区域真正的顶部。请记住,这是一个糟糕的配置:您永远不应该假装对您不是的域具有权威性。不要效仿

SOA记录是强制性的。你必须填写某物在 RFC 要求的 AUTHORITY 部分中,如果您希望互联网的其余部分与您很好地合作。显然他们没有真的对于 来说具有权威性co.uk,但这至少可以告诉其他名称服务器负 TTL 应该是什么。

答案2

SOA根据 DNS 规范,子名称服务器上每个区域的顶点都必须有记录,请参阅RFC 2181 §6.1

区域的权威服务器在区域来源的 NS 记录中枚举,这些记录与授权起始 (SOA) 记录一起是每个区域中的强制性记录。此类服务器对区域内不属于其他区域的所有资源记录具有权威性。

没有 SOA 的区域不符合 DNS 标准。名称服务器将在加载时拒绝它:

$ cat example.com 
example.com. 1 NS a.example.
example.com. 1 NS b.example. 

$ named-checkzone example.com example.com 
zone example.com/IN: has 0 SOA records
zone example.com/IN: not loaded due to errors.

也许你可以找到一个可行的设置,但为什么要冒险呢?

除了每个规范强制要求之外,SOA 记录中至少还有 3 个项目是客户端所需要的(如果名称服务器集使用 AXFR/IXFR/DNS 更新来更新自身,则所有其他项目大多仅对名称服务器管理员有用):

  • 通常RNAME是区域负责人的电子邮件地址,您可以在遇到问题时联系该地址;不幸的是,现在您可能无法在那里得到答案,或者它甚至可能不是一个有效的现有邮箱,因此理论上有用,但在实践中不确定

  • MNAME,根据第 4.3条RFC 2616DNS 更新需要:

4.3. 如果请求者有合理理由相信区域的所有服务器都同样可访问,则应安排首先尝试主要主服务器(如果与某个 NS NSDNAME 匹配,则由 SOA MNAME 字段给出),以避免在从属服务器中进行不必要的转发。(请注意,由于防火墙或网络分区,在某些情况下,所有请求者都无法访问主要主服务器。)

  • 一年来, SOAMINIMUM已被重新定义为“负 TTL”,即缓存可以保留NXDOMAIN收到的回复NXDOMAIN 的时间量(因为根据定义,回复不会在答案部分返回任何记录,因此不会有任何 TTL 可查找)。请参阅RFC 2308

与正常答案一样,否定答案也具有生存时间 (TTL)。由于答案部分中没有可以应用此 TTL 的记录,因此必须通过其他方法承载 TTL。这是通过在答复的授权部分中包含来自区域的 SOA 记录来实现的。当授权服务器创建此记录时,其 TTL 取自 SOA.MINIMUM 字段和 SOA 的 TTL 中的最小值。此 TTL 以与正常缓存答案类似的方式递减,当达到零 (0) 时,表示缓存的否定答案不得再次使用。

正确缓存NXDOMAIN回复对于性能非常重要,如RFC 8020 “NXDOMAIN:下面真的什么都没有”:如果某个名称触发了NXDOMAIN回复,那么递归名称服务器可以在条目被缓存期间立即回复所查询名称“下方”的所有名称,因为根据将所有名称放在树中的 DNS 设计,它知道下面不能存在任何名称。

此外,多个注册中心在允许进行委托之前会测试配置。英国的情况并非如此,但 DENIC (.DE) 的情况就是如此。请参阅 §2.1.4https://www.denic.de/fileadmin/public/documentation/DENIC-23p_EN.pdf概述了 SOA 上的测试。

各种工具也可用于检查。请参阅 Zonemasterhttps://zonemaster.net/以及对 SOA 测试的解释https://github.com/zonemaster/zonemaster/blob/master/docs/specifications/tests/Delegation-TP/delegation06.md

答案3

SOA 记录几乎规范了 DNS 服务器的身份和更新频率。如果您的 DNS 服务器是某个域的唯一权威 DNS 服务器(或者您控制所有权威并且喜欢手动操作),则可以省略 SOA 记录,而影响很小甚至没有影响。唯一的影响可能是某些响应缓存不会发生。

总结:DNS 在没有 SOA 的情况下也能正常工作,SOA 只是控制对辅助服务器的更新和缓存。因此,没有 SOA 记录真的很糟糕。

相关内容