美文网首页
cname与mx记录为什么不能共存

cname与mx记录为什么不能共存

作者: dnsir | 来源:发表于2018-11-28 23:14 被阅读123次

1 引言

有用户在v2ex反应,腾讯云(DNSPod)和阿里云都不支持cnamemx记录共存,但是之前腾讯云和阿里云都是支持cnamemx共存的,那么是什么原因导致这个产品使用发生变化?

2 RFC

RFC1034明确表示cname不能与其它记录共存

If aCNAME RR is present at a node, no other data should be present; this ensuresthat the data for a canonical name and its aliases cannot be different.

当然还有一条是关于查询逻辑的:

如果一个域名有cname纪录,那么查询其余类型都应该返回cname记录

当然查询逻辑是可以通过修改代码更改的。

3 发送邮件域名查询逻辑

假如dns.com区配置了mx和cname纪录:

dns.com. in cname 123.jiasule.com.
dns.com in mx 10 mail.cnnic.cn.
比如我们向testser@dns.com发送邮件,

  1. 向递归DNS(localDNS)发起dig @localdns dns.com mx查询
    2.递归DNS会将这个查询转发给dns.com的权威服务器,dig @ns1.dns.com dns.com mx
  2. 按照之前所说的查询逻辑,权威服务器会返回dns.com. in cname 123.jiasule.com.
  3. 递归DNS拿到123.jiasule.com这个结果,根据cname查询,会继续查询jiasule.com的权威服务器,然后发起dig @ns.jiasule.com dns.com mx,显然jiusule.com是不可能有dns.com的mx记录。

也就说在根据标准RFC实现的递归服务器和权威服务器都是无法实现CNAME与MX记录共存的,除非权威服务器和递归服务器都进行二次开发。

实际来说不现实,所以支持cname与mx记录共存的权威服务器都不遵循

如果一个域名有cname纪录,那么查询其余类型都应该返回cname记录

这个查询逻辑,实际的查询逻辑一般都是查询什么类型返回什么类型,如

dig @ns.dns.com dns.com mx ==>  dns.com in mx 10 mail.cnnic.cn.
dig @ns.dns.com dns.com cname ==> dns.com. in cname 123.jiasule.com.

虽然权威服务器已经满足我们的需求了,但是递归服务器无法满足该需求,在cloudXNS一篇CloudXNS码农提示】为何CNAME和MX不能共存?里提到递归DNS服务器在查询某个常规域名记录(非CNAME记录)时,如果在本地cache中已有该域名有对应的CNAME记录,则会开始用该别名记录来重启查询。--这个结论需要验证或查看RFC相关文档

总结来说,这个问题就是无解,对于阿里云和腾讯云来说,一旦用户使用mx与cname记录共存,那么就会有工单来问为什么邮件发不出去的问题。

3 怎么解决

CloudXNS码农提示】为何CNAME和MX不能共存?提到的一种301跳转的方式,当然还有一种方案是对mx的使用进行特殊处理,对mx记录进行特殊处理一般适用于CDN厂商。

问题是可以解决,但是对于使用者来说会造成一定困扰,比较好的方式是调整业务使用方法

相关文章

  • cname与mx记录为什么不能共存

    1 引言 有用户在v2ex反应,腾讯云(DNSPod)和阿里云都不支持cname与mx记录共存,但是之前腾讯云和阿...

  • 域名解析基础知识

    域名解析基础知识(NS,A记录,CNAME,MX) 1 DNS中A记录和CNAME记录的区别 A记录是域名到ip的...

  • 域名解析基础

    我的博客主页:笔头博客 域名解析基础知识(NS,A记录,CNAME,MX) 1 DNS中A记录和CNAME记录的区...

  • 域名解析基础

    我的博客主页:笔头博客 域名解析基础知识(NS,A记录,CNAME,MX) 1 DNS中A记录和CNAME记录的区...

  • GitHub page 独立域名解析与域名邮箱解析冲突

    GitHub page 独立域名的解析 CNAME 记录,与域名邮箱的解析 MX 记录冲突 解决方法:将 gith...

  • DNS服务记录类型

    DNS记录类型包含:A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录、SRV记录、URL转发。...

  • 几种域名解析方式

    主要有A记录、MX记录、CNAME记录、NS记录、TXT记录 A记录A代表Address,用于指定域名对应的IP,...

  • 常见域名解析梳理

    一、常见域名解析的方式: A 记录、CNAME 记录、MX 记录、NS 记录、TXT 记录 1、A 记录 将域名指...

  • DNS协议

    dns记录 A记录:ip指向 CNAME:别名 MX:邮件交换记录 dns解析过程 (本地dns客户端)查看本机h...

  • 云解析DNS能为你做什么?

    功能概览 更新时间:2019-09-20 13:52:52 记录类型 云解析DNS支持A、CNAME、MX、TXT...

网友评论

      本文标题:cname与mx记录为什么不能共存

      本文链接:https://www.haomeiwen.com/subject/opetcqtx.html