如何列出所有DNS记录,包括DANE TLSA

时间:2017-10-11 04:08:16

标签: dns lookup dig dnssec dane

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

dig mailbox.org ANY

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

dig _443._tcp.mailbox.org. ANY

我获得了DANE TLSA记录。

我已经阅读了有人想查询所有子域名的问题 How can I list ALL DNS records? 并且我知道这只能通过区域转移来实现。

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

2 个答案:

答案 0 :(得分:1)

命令dig mailbox.org ANY要求提供名称mailbox.org.的所有记录。

命令dig _443._tcp.mailbox.org. ANY要求提供名称_443._tcp.mailbox.org.的所有记录。

mailbox.org._443._tcp.mailbox.org.的名称不同。

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

答案 1 :(得分:0)

您会在 Section 3 of RFC 6698 中找到答案:

<块引用>

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

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

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