CloudDNS教你如何解决CNAME和MX共存的问题
1、配置cname和mx记录:

2、dig一下,查看cname记录

3、dig一下,查看MX记录

4、我们可以看到MX记录查询的结果其CNAME记录值所配置的值,当我们在递归服务器的CNAME记录TTL过期后再来做查询,则有可能得到期望的正确结果。
因此,即使某些域名解析系统网页上并未限制用户同时填写CNAME和MX的操作,但只要将CNAME和MX配置到一起,会导致邮件服务偶尔出现异常。
实际上除了CNAME和MX不能共存外,已经注册了CNAME类型的域名记录是不能再注册除DNSSEC相关类型记录(RRSIG、NSEC等)之外的任何其他类型记录(包括MX、TXT、A、NS等记录)。
1、在CloudDNS上添加记录:
解决原理:CloudDNS提供了此类问题的解决方案,即在遵循dns协议的基础上,新增了一层代理的服务器。
外部公网 DNS 向DNS 代理请求一个域名时, DNS 代理先查找本地的缓存应答,在没有缓存应答时,向源授权器转发请求,得到响应后再回复请求,同时缓存得到的响应信息;若本地已有缓存应答,则直接对外回复请求。
在使用CDN加速时,大多数都是对域名解析记录配置 CNAME,别名到另一个平台的域名,DNS 代理可以直接代替公网 DNS 做CNAME 后的解析,将最终结果返回给公网,减少了 CNAME解析,不但提高了解析速度,也实现cname记录和mx记录的共存(具体原理如下图所示)。

2、上述方案重新配置后,分别再对域名和mx记录做dig查询,得到结果如下,从结果上看,已经可以很好解决MX与CNAME共存的问题。
1)cname结果,隐藏了cname,直接给a记录
2)MX记录也隐藏了cname,直接给MX 记录


1、总体而言,CloudDNS此方案优势之处有以下两点:
1、解决cname记录和其它记录(包括MX、TXT、A、NS等记录)共存的问题;
2、减少cname,降低解析时间。
通过DNS代理的方案,可以很好实现CNAME记录与其他记录共存问题,也大大提高了解析速度。
当然,这个仅仅是CloudDNS致力解决用户各种关于DNS使用场景问题的其中一个,您若需要提升解析速度,保证解析安全以及实现CNAME等MX记录共存等,相信CloudDNS提供的方案会给你惊喜。