我从 PowerDNS 迁移到 Knot 2.7。
我现在有 2 个 DNS 记录发生冲突。
abcd.**www**.example.com CNAME -> somehost.example.net
*.example.com -> example.com
现在问题出在 www.example.com 域上。在 PowerDNS 中,它被解析为 *.example.com。现在没有响应。当我为 www.example.com 添加 A 或 CNAME 记录时,一切正常。问题基于我上面写的第一个 CNAME。
你能解释一下原因吗?我该如何解决?
谢谢。
答案1
您所描述的行为完全在意料之中;令我感到惊讶的是,您声称使用 PowerDNS 得到了不同的结果(如果您可以使用当前版本重现此问题,则可能需要提交错误报告)。
这是预期行为的原因在于 DNS 中的通配符功能定义方式为,通配符仅扩展到以下名称:不存在位于通配符条目下方(即,基本上是您原本会得到NXDOMAIN
响应的名称)。
这里可能感觉不太直观的是,根据问题中的两条记录,该名称www.example.com
被认为是存在(即使它自己没有任何记录),因为它是通向abcd.www.example.com
(有记录)的分支中的中间节点。(这种没有记录的中间树节点称为空的非终结符或者耳鼻喉)。
顾名思义www.example.com
,根据通配符的工作方式定义,它不会受到影响,除非您向其自身添加记录,否则*.example.com
您将获得NODATA
响应(由权限部分中的NOERROR
状态表示)。SOA
www.example.com