TXT 记录与其他记录结合时出现的问题

TXT 记录与其他记录结合时出现的问题

我目前有以下 DNS 设置。

域名:domain.tld 示例 IPv4:1.2.3.4 示例 IPv6:fe80::1

Host Type Destination 
* A 1.2.3.4
* AAAA fe80::1

此设置完全符合预期。如果我打开任何软件并输入 noteexisting.domain.tld,我会得到有效的解析 1.2.3.4

现在来谈谈问题:如果我现在简单地为 Let's Encrypt DNS 验证添加一个 TXT 记录,其中包含以下内容:

Host Type Destination
_acme-challenge.notexisting TXT XrcC2WczNeJNvhNfbLFjE0iawzIZTlR6BEmD4OxF-pw

TTL 失效后,我再次查询区域,得到以下结果:

noteexisting.domain.tld 仅返回 SOA 和 TXT。我认为这很奇怪,因为如果我向区域添加另一个子域,DNS 将在 DNS 验证期间失败。我该如何防止这种情况发生?

我使用 Bind 和 PowerDNS 软件进行了测试并得到了相同的结果。

答案1

考虑到通配符的工作方式,这听起来像是预期的行为。

通配符仅适用于树的分支不存在。添加后,分支的记录_acme-challenge.notexisting仍然notexisting存在,即通配符不再适用于该分支。

您想要的是添加相关记录,而notexisting不是依赖该通配符。(也许通配符一开始就不是正确的解决方案?)

如果此处的用例涉及动态添加新子域,BIND 和 PowerDNS 都支持动态更新 (RFC2136),或者 PowerDNS 还具有 REST API。因此,两者都应该能够以编程方式添加记录。

相关内容