1

我想列出所有/任何 DNS 记录,包括 DANE TLSA。

dig mailbox.org ANY

我得到了所有记录,包括 DNSSEC 等,但没有关于 DANE 的记录。为什么?

dig _443._tcp.mailbox.org. ANY

我得到了 DANE TLSA 记录。

我已经阅读了有人想要查询所有子域的问题 如何列出所有 DNS 记录? 并且我知道这只有通过区域转移才有可能。

但是'_443._tcp.' 不是一个真正的子域,是吗?我以为这只是一个 SRV 记录。那么如何查询包括 DANE TLSA 在内的任何内容?

4

2 回答 2

2

该命令dig mailbox.org ANY要求提供 name 的所有记录mailbox.org.

该命令dig _443._tcp.mailbox.org. ANY要求提供 name 的所有记录_443._tcp.mailbox.org.

mailbox.org.不是同名_443._tcp.mailbox.org.

询问其中一个的所有记录不会显示另一个的任何记录。如果有帮助,您可以将 DNS 中的(完全限定的)名称视为数据库中的主键(因为实际上它们就是这样)。如果您向数据库询问密钥的数据,FOO它不会为您提供任何密钥数据FOOBAR(除非它被严重破坏)。完全相同的事情正在这里发生。你要求一件事,却得不到另一件不同的事情的答案。

于 2017-10-11T08:28:31.917 回答
0

您可以在RFC 6698 的第 3 节中找到答案:

TLSA 资源记录存储在带前缀的 DNS 域名中。前缀按以下方式准备:

  1. 假定存在基于 TLS 的服务的端口号的十进制表示前加下划线字符 (“_”),以成为准备好的域名中最左边的标签。这个数字没有前导零。
  2. 假设存在基于 TLS 的服务的传输协议名称前面带有下划线字符(“_”),以成为准备好的域名中最左边的第二个标签。为此协议定义的传输名称是“tcp”、“udp”和“sctp”。
  3. 将基础域名附加到步骤 2 的结果中,以完成准备好的域名。基础域名是 TLS 服务器的完全限定 DNS 域名 [RFC1035],附加限制是每个标签必须符合 [RFC0952] 的规则。后一个限制意味着,如果查询是针对国际化域名的,它必须使用 [RFC5890] 中定义的 A-label 形式。

基本上,由于您可以在不同的端口上拥有不同的“基于 TLS 的服务”(例如,DTLS),并且此数据不包含在TLSA记录集中,因此命名约定可以为所需的协议/端口组合找到正确的信息。

于 2021-05-04T09:18:19.137 回答