DNS 中 SOA 记录的用途(区域传输除外)

DNS 中 SOA 记录的用途(区域传输除外)

DNS 区域文件中的 SOA 记录是否具有任何除了区域文件传输之外,还有什么用途?如果 DNS 服务器不依赖区域文件传输进行复制(而是依赖某些分布式后端数据库),那么还有什么理由拥有 SOA 记录?查看 DNS 查询日志,我从未见过客户端请求 SOA 记录。

我认为“主名称服务器”和“管理员”字段可能会有一定用处,但通常主名称服务器是通过 NS 记录获得的。

答案1

是的,SOA无论如何,该记录都有其用途。虽然SOA常规客户通常不会直接查询该记录,但它会得到负面回应!

如果您要分析名称服务器的响应而不是传入的查询,我想您会看到SOA更多的记录。

但是,如果不使用 DNS 规范的区域传输方法,则记录的某些字段SOA不再相关。


如果我们看一下记录的字段SOA

MNAME:主名称服务器的名称。用于动态更新上下文中,在某些情况下也用作区域传输实现的一部分。

RNAME:技术联系人电子邮件。系统本身并不真正使用,而是提供信息。

SERIAL:区域序列号,用于区域传输。

REFRESH:刷新间隔,用于区域传输。

RETRY:重试间隔,用于区域传输。

EXPIRE:过期间隔,用于区域传输。

MINIMUM:曾经是最小 TTL,但现在用作负面响应的 TTL。


因此我们可以看到MNAMERNAMEMINIMUM并不是区域传输规范所特有的。

由此,我认为,无论区域同步如何实现,否定响应在 DNS 和SOA MINIMUM特定字段中的工作方式都是记录必不可少的主要原因。 因此,如果没有每个区域的记录,您根本无法实现正常工作的权威名称服务器。SOA
SOA

答案2

我在问类似的问题时发现了这个问题:“SOA 记录的所有使用方式有哪些?”

为了补充 Håkan Lindqvist 的回答,我想说的是:

  • SOA 代表“权威开始”。这是一种“锚点”,用于了解哪个服务器对哪个区域具有权威性。如果您删除了 SOA 记录,您将如何实现这一点?您可能在 NS 记录中有许多服务器,但它们可以对许多(和不同的)区域具有权威性。如果您的 DNS 服务要正常运行,至少您应该能够知道哪 1 个服务器将正常运行 - 即 SOA 记录上所说的对区域具有权威性的服务器。
  • 我的 DNS 工具有一个专有数据库,它会不时部署到所有服务器(运行 BIND),并且是独立于实际 DNS 服务器的机器。这为生产服务中的问题提供了一定程度的缓冲。(即,我可以升级专有服务器而不影响 DNS 服务。)如果该机器长时间停机,SOA 记录中仍会定义一组 DNS 服务器行为以使服务继续运行(负缓存、刷新、重试等)。如果 SOA 记录不存在,则不会定义该行为。否则您如何知道该行为?您必须在其他地方定义它,并且要么在其他记录类型(在其他 RFC 中定义)或某些隐藏的专有文档。如果要这么麻烦,为什么要重新发明轮子呢?为什么不使用 SOA 记录呢?

相关内容