路要走,生活还得继续。

Hardworking Now

域名解析解决CNAME和MX不能共存的问题

最近几天一直在折腾自己的博客,由于还在读书的缘故,一直享受着云服务的学生价,虽然配置不高但是足够用,最近腾讯爸爸送了10个G的CDN流量包,准备着手搭建CDN,给自己的博客加个速。

在正文开始之前,先简单的说下CDN,百度上官方的解释是:

CDN的全称是Content Delivery Network,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。

通俗一点,用自己的话说就是,CDN有在全国各地很多机房都设置了节点,我的网站只要部署了CDN服务,服务器内的各种资源都会缓存到CDN的节点IP/服务器里面,访问者从天南地北访问我的站点,他不需要连接我的服务器(源站),CDN会匹配到与他最近的节点,来进行访问,这大大的降低了服务器的负载也提高了访问速度。

首先参考腾讯云的官方文档:https://cloud.tencent.com/document/product/228/3149

CDN的部署分为三步 :开通CDN→接入域名→配置CNAME

前两步很顺利,当进行到第三步的时候,控制台提示,我域名的CANME和MX记录冲突,MX记录是由于之前配置了域名邮箱。

以上就是问题的描述,接下来通过各种查找,找到了问题的根源:

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

大概的意思是:如果CNAME记录指向了一个域名节点,为了确保不会出现不同的解析结果,那么这个域名节点将不在接受其他的记录值了。

通过继续百度,查找到了以下的解决方案:

  1. 不要同时在裸域下使用CNAME记录和MX记录(哈哈,说了跟没说一样)
  2. 让CNAME记录下的域名节点使用的MX记录指向和你裸域MX指向同一个域名节点(这个是可行的,毕竟国内比较好的邮件服务商屈指可数,就那么几家)
  3. 让裸域CNAME记录到自己的www域名节点上,然后让www域名节点CNAME记录到lzllzl.cn域名节点上,最后让MX记录指向mxdomain.qq.com域名节点(即你的域名邮箱服务商的地址)。

根据我的实际情况,并没有选择这三种方法,这时候找到了一家第三方DNS域名解析提供商CLOUDXNS:https://www.cloudxns.net/

CLOUDXNS有个自己特有的记录类型叫LINK记录,官网的解释是:

别名链接记录,隐式将解析权委托给目标域名。

其实说白了就是隐式CNAME记录,dig的时候不会显示出CNAME的那个域名,而是直接显示出它的IP地址。通过这个就很容易知道这个记录类型的用途了,如果不想让别人知道自己的目标域名是什么样子的,那么你就可以考虑使用它了。

有了Link就很好操作了:

  1. 首先建立一个桥接域名,我使用的是WWW作为桥接域名,可随意,桥接域名解析到你的服务器或CDN上面;
  2. 然后把你现在正常解析的主域名解析到桥接域名上这里要使用link;
  3. 然后再添加你的@ MX 邮件记录;

至此,操作结束,域名邮箱和CDN,共存!

 

点赞
  1. Zephyr说道:

    :rolleyes: 作者你好,我最近也遇到了跟你一样的问题,困扰了我很久,现在按照你的方法解决了,写的很详细,真的很感谢。

  2. James说道:

    你好,使用Link后,会出现邮箱服务不稳定吗?

发表评论

电子邮件地址不会被公开。 必填项已用*标注