可能存在不同类型的 DNS 通配符 RR?

可能存在不同类型的 DNS 通配符 RR?

假设我有一个具有以下RR的域:

domain.com.    IN A       1.2.3.4
domain.com.    IN MX      mail.domain.com.         10
*              IN MX      othermail.domain.com.    10
*              IN CNAME   domain.com.
mail           IN A       1.2.3.4

我希望这将允许我在 domain.com 的任何子域上提供网页服务器并接收邮件,但是当我测试它时:

~# dig blah.domain.com MX

; <<>> DiG 9.4.3-P1 <<>> blah.domain.com MX
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12815
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

<..snip..>

;; ANSWER SECTION:
blah.domain.com.    84770   IN  CNAME   domain.com.
domain.com.     83445   IN  MX  10 mail.domain.com.

我希望得到如下的答案部分:

;; ANSWER SECTION:
blah.domain.com.    84770   IN  MX  10 othermail.domain.com.

但似乎我得到的是 CNAME 通配符记录而不是 MX。

通过阅读我在网上找到的各种资料,我发现这种行为是经过设计的(无论它有多么愚蠢)。

现在我的问题是,是否有可能以任何方式实现这样的配置,根据记录类型返回不同的答案?

谢谢。

答案1

完全可以混合不同类型的通配符 RR。

不能要做的是将 CNAME RR 与任何其他类型的 RR(DNSSEC RR 除外)混合。无论 RR 是否使用通配符,这都适用。

在您的情况下,您需要做的是用 A RR 替换 CNAME RR,指向与主域相同的 IP 地址:

$ORIGIN example.com
@         IN A      1.2.3.4
          IN MX 10  mail
*         IN A      1.2.3.4
          IN MX 10  othermail
mail      IN A      1.2.3.4
othermail IN A      5.6.7.8

相关内容