CNAME记录是否也会转发MX请求?

23

我的DNS设置了base.com的A记录和MX记录。还有几个域名设置了CNAME记录,指向base.com。 对于这些CNAME域名,我是否需要设置特殊的内容(例如额外的MX记录),还是CNAME记录也会转发任何MX请求。

示例:
如果只有以下这些DNS记录,那么发送到info@otherdomain.com的电子邮件是否能正确传递到base.com的MX:

; A and MX set up for base.com
base.com.  3600  IN  A  123.45.67.89
mail.base.com.  3600  A  123.45.67.89
base.com.  3600  IN  MX  10  mail.base.com.
; CNAME set up for otherdomain.com
otherdomain.com. CNAME  IN  A  base.com.
1个回答

24
CNAME会把除了CNAME本身以外的所有资源记录类型的查询重定向到目标名称。这包括MX。因此,上面的区域数据会导致对otherdomain.com.MX查询解析到mail.base.com.
可以使用dig或您喜欢的DNS客户端进行实验。您不仅可以确认结果,而且在等待别人回答您的SO问题之前,您也无需等待4个小时即可得到答案!
不幸的是,在这种特殊情况下,如果您的域名确实是otherdomain.com. ,则无法为其配置CNAME资源记录。这是因为具有CNAME记录的域不能同时拥有任何其他类型的资源记录。但是,如果otherdomain.com. 直接位于com.(或另一个gTLD)下面,则必然位于区域的顶部,因此它需要至少SOANS记录。

1
如果您在区域顶级直接为一个名称配置了CNAME记录,当DNS服务器尝试加载该区域时,您应该会收到错误。这是无效的。 - Celada
1
我认为根据标准,已经解析过名称并缓存了“CNAME”记录的客户端如果后来被询问原始名称的“SOA”或“NS”记录,则只查询“CNAME”的目标是合理的。因此,他们永远不会发现原始名称上存在“SOA”和“NS”记录,并假设不存在这些记录。话虽如此,由于“SOA”记录影响较小且DNS服务器必须已经知道“NS”记录(从首次解析原始名称开始),因此您可能不会失去太多。 - Celada
域名不能同时拥有CNAME和其他类型的记录,还是说你不能为具有其他类型记录的特定别名设置CNAME记录?例如:@ CNAME server.com和@ MX 10 mail.com将无法工作,但@ CNAME server.com和www A 123.123.123.123将可以工作。我不确定,也没有任何可以安全实验的域名! - dunxd
很抱歉,我不明白你在问什么@dunxd。域名不能同时具有CNAME和任何其他类型的记录(这会破坏线路协议,因为客户端允许缓存和跟随CNAME记录)。因此,确实禁止同时使用@ CNAME server.com@ MX 10 mail.com。你的另一个例子:@ CNAME server.comwww A 123.123.123.123是可以的,因为这两个记录不属于同一个域名(其中一个是另一个的子域名)。假设@ CNAME server.com不在区域顶级,则需要@ NS something@ SOA something,不允许。 - Celada
实际上,这确实在多个方面有所帮助。在阅读您的评论之前,我不知道“@”指的是域名的“顶级”,我知道“@”可以用于DNS配置,我有点知道它的作用,但我不知道要搜索什么以便找到更多信息(尝试搜索“@ DNS记录”,看看会得到什么结果!)。现在我可以学到更多。干杯! - dunxd
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接