为何CNAME和MX不能共存

http://weibo.com/p/1001603804025475695045

一、问题来源

自我们CloudXNS系统开通了客服QQ后,被问到最多的问题就是:“为什么你们系统会提示MX和CNAME不能共存,但我用别的域名解析系统都没有这样的提示呀?”

原来,很多站长们需要使用到CDN,大部分加速服务提供的都是CNAME模式;而同时,MX企业邮件记录也必须配置到同一个节点下。由于很多系统在域名配置管理时并没有做记录的互斥限制,按照大家在别的系统中的配置习惯搬到我们CloudXNS之后,却没法奏效。

因此就出现了如上问题。

二、技术剖析

RFC 1034(http://tools.ietf.org/pdf/rfc1034)章节3.6.2中指出:

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资源记录出现在一个域名节点,为了确保不会出现不同的解析结果,这个域名节点将不再接受其他记录值。

我们来测试一下。

假设为DNS域chinatesters.cn注册了下面的两条记录:

@    MX      10  mx.ym.163.com.

@    CNAME       fastweb.com.cn.

下面是在递归服务器(不能使用该域的授权服务器)上dig查询的结果:

查询CNAME返回如下:

查询MX返回如下:

我们可以看到MX记录查询的结果与上文中注册记录并不一致,而为其CNAME记录值所配置的MX记录,即对CNAME记录做的递归查询得到的结果。

但如果在递归服务器的CNAME记录TTL过期后再来做查询,只是把查询的顺序颠倒,(即先查询MX记录,再查询CNAME记录)则有可能得到期望的正确结果。

总结一下,递归DNS服务器在查询某个常规域名记录(非CNAME记录)时,如果在本地cache中已有该域名有对应的CNAME记录,则会开始用该别名记录来重启查询。上文中dig查询MX记录测试示例即对应于这种情况。

因此,即使某些域名解析系统网页上并未限制用户同时填写CNAME和MX的操作,但只要将CNAME和MX配置到一起,上述问题也一定是存在的,它会导致邮件服务偶尔出现异常。

实际上除了CNAME和MX不能共存外,已经注册了CNAME类型的域名记录是不能再注册除DNSSEC相关类型记录(RRSIG、NSEC等)之外的任何其他类型记录(包括MX、A、NS等记录)。理由同上,这里就不一一做演示了。

三、解决方案

我们CloudXNS系统在标准记录类型上的互斥关系设定及提醒是完全遵循DNS规范的,而这样的规范设定却对大家在域名配置上造成了一定困扰。

不过,细心的网友发现,CloudXNS具备隐式CNAME扩展记录类型(即LINK记录),它可以隐藏当前这一层的配置,直接接管下一层的结果。因此,CloudXNS也可以获得“将MX和CNAME共同配置”类似的解决方案。

如下图所示,在www下配置CNAME到CDN服务提供商,然后在@下配置MX和LINK记录,将www作为被LINK的域名。

我们用dig验证一下:

查询MX返回如下:

查询CNAME返回如下:

当然,这样的配置也同样会存在邮件服务偶尔失效的问题。

因此,CloudXNS系统即将为大家给出一个终极解决方案,可以完美的解决这个问题!届时,您的邮件服务可以永远正常使用,同时也可享受到网络加速的快感,可谓兼得鱼和熊掌。

我们将在2015年2月第二周推出网络云安全加速的功能,该功能模块会整合我司(@北京快网)CDN服务提供的部分核心内容,包括访问加速、网站防火墙、防盗链、DDOS防护、CC防护等多项加速及安全保护功能。届时您只需要给您的域名一个开关点击,一切即可高枕无忧。

悄悄透露部分页面:

四、参考文献

RFC 1034英文原版:http://tools.ietf.org/pdf/rfc1034

中文译文参考:http://download.csdn.net/detail/weicq2000/4627738

时间: 2024-07-31 23:33:07

为何CNAME和MX不能共存的相关文章

【CloudXNS码农提示】为何CNAME和MX不能共存?

一.问题来源 自我们CloudXNS系统开通了客服QQ后,被问到最多的问题就是:“为什么你们系统会提示MX和CNAME不能共存,但我用别的域名解析系统都没有这样的提示呀?” 原来,很多站长们需要使用到CDN,大部分加速服务提供的都是CNAME模式:而同时,MX企业邮件记录也必须配置到同一个节点下.由于很多系统在域名配置管理时并没有做记录的互斥限制,按照大家在别的系统中的配置习惯搬到我们CloudXNS之后,却没法奏效. 因此就出现了如上问题. 二.技术剖析 RFC 1034(http://too

域名解析 | A记录 ,CNAME,MX,NS 你懂了吗

域名解析 | A记录 ,CNAME,MX,NS 你懂了吗 域名解析 什么是域名解析?域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到IP地址的转换过程.IP地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替ip地址标识站点地址.域名的解析工作由DNS服务器完成. 如下图,百度 www.baidu.com 就是域名,解析出来的IP 14.216.177.30 这个过程就是域名解析. A 记录 A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录.用户可

A记录、CNAME、MX记录、NS记录

1. A记录(IP指向) 又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器找到相应网页的功能. 说明:指向的目标主机地址类型只能使用IP地址. 2. CNAME(别名指向) 通常称别名指向.您可以为一个主机设置别名.相当于用子域名来代替ip地址,优点是如果ip地址变化,只需要改动子域名的解析,而不需要逐一改变ip地址解析. 说明: (1)CNAME的目标主机地址只能使用主机名,不能使用IP地址: (2)主机名前不能有任何其他前缀,如:http://等是

如何验证cname,MX,spf记录是否生效?

创建域名邮箱时,对域名做完相应设置后,在域名邮箱设置里点击“设置完成并提交验证”来等待验证所有权和MX记录设置的正确性.但同时也可以通过下面的方法确认设置是否成功和正确: 一.验证CNAME记录的方法 在浏览器中访问下面字符组成的网址: “CNAME字符串.域名” ,类似 “qqmaila1b2c3d4.abc.com” (该字符串每个用户都不相同) 如果浏览器返回QQ邮箱的网页,并显示“404 page not found 很抱歉,您的网址输入有误,请检查拼写后再尝试.” 则表示CNAME别名

DNS(bind)添加A、CNAME、MX、PTR记录、智能DNS(ACL)

1.添加一条A记录(记得更改serial): vim /var/named/chroot/etc/lnh.com.zone 重启一下: rndc reload 查看从服务器: 测试结果: master结果: 第一种方法:是用resolv.conf中定义的DNS服务器查出百度主机的IP. 第二种方法(上述方法):是用本地的DNS(127.0.0.1)来查cc.lnh.com主机的IP. slave结果(在master上看的): 2.CNAME记录(如上) cname CNAME a.lnh.com

域名解析中A记录、CNAME、MX记录、NS记录的区别和联系

可以看出加了www.和不加www之后的区别. 可以看出域名解析中有几种记录,A记录,CNAME CNAME记录是域名指向另一个域名A记录是域名指向IP地址 A记录 又称IP指向,用户可以在此设置子域名并指向到自己的目标主机地址上,从而实现通过域名找到服务器.说明:·指向的目标主机地址类型只能使用IP地址: CNAME 通常称别名指向.您可以为一个主机设置别名.比如设置test.mydomain.com,用来指向一个主机www.rddns.com那么以后就可以用test.mydomain.com来

CNAME记录和A记录

主机名:host.abcd.com 别名:一台主机可以提供多种服务,比如http服务和mail服务. 访问http服务就可以使用域名:www.abcd.com 访问mail服务就可以使用域名:mail.abcd.com 这里的域名其实都同时指向同一主机名: host.abcd.com,这些指向主机名的域名就叫做别名. 使用别名的优点:当主机的ip地址改变的时候,只需要更改主机的主机名的指向就可以了.不需要改别名CNAME的指向. 另一种不建议的使用方法:如果别名不指向主机名,而是也指向IP的话,

解决max解析记录与cname不能共存的问题

问题描述: 在腾讯上做了域名邮箱解析,需要将max记录绑定到主机记录为@(即空)的记录下. 而在做域名解析的时候,为了方便,需要将不带3w的域名也要解析到主机记录为@(即空)的记录下. 因此,解析报错! 解决办法: 将后者(cname)的解析改为 隐形/显性URL记录类型,即可解决冲突问题. 延伸: A记录: 将域名指向一个IPv4地址(例如:10.10.10.10),需要增加A记录 CNAME记录: 如果将域名指向一个域名,实现与被指向域名相同的访问效果,需要增加CNAME记录 MX记录: 建

cname和CDN

http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的网址www.baidu.com在配置当中应该是www.baidu.com.(最后有一点),一般我们在浏览器里输入时会省略后面的点,而这也已经成为了习惯. 根域服务器我们知道有13台,但是这是错误的观点. 根域服务器只是具有13个IP地址,但机器数量却不是13台,因为这些IP地址借助了任播的技术,所以我们可以在全球设立这些IP