一、问题来源
自我们CloudXNS系统开通了客服QQ后,被问到最多的问题就是:“为什么你们系统会提示MX和CNAME不能共存,但我用别的域名解析系统都没有这样的提示呀?”
原来,很多站长们需要使用到CDN,大部分加速服务提供的都是CNAME模式;而同时,MX企业邮件记录也必须配置到同一个节点下。由于很多系统在域名配置管理时并没有做记录的互斥限制,按照大家在别的系统中的配置习惯搬到我们CloudXNS之后,却没法奏效。
因此就出现了如上问题。
二、技术剖析
RFC 1034(http://tools.ietf.org/pdf/rfc1034)章节3.6.2中指出:
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资源记录出现在一个域名节点,为了确保不会出现不同的解析结果,这个域名节点将不再接受其他记录值。
我们来测试一下。
假设为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
相关推荐
这是一款智能DNS CloudXNS.net 官方推出一个款CloudXNS系统API的 PHP SDK包,PHP的SDK包比同时发布的Python SDK更为完善,其中还包含了一个完整的HTML demo,可以实现所有解析的管理操作,使用者直接可以拿来管理...
这样,当Certbot运行时,它就能通过这个库自动与CloudXNS通信,完成DNS验证过程。这个过程不仅高效,而且降低了人为错误的风险。 在实际应用中,certbot-dns-cloudxns库通常会与Certbot命令行工具一起使用。例如,...
certbot-dns-cloudxns库将Certbot工具与CloudXNS的DNS接口集成,使得用户能够在不手动操作DNS记录的情况下,自动完成DNS验证和SSL证书的申请过程。 Certbot是由EFF(电子前哨基金会)开发的一款自动化工具,它能够...
`certbot_dns_cloudxns-1.1.0-py2.py3-none-any.whl` 是一个针对Python的特定库的压缩包文件,主要用于自动化证书管理工具Certbot与CloudXNS DNS服务的集成。这个库使得用户能够方便地通过Certbot获取并自动更新Let'...
这是一款基于Python的库,名为`certbot-dns-cloudxns`,版本号为0.15.0的开发版(dev0),并且已经打包成`.tar.gz`格式的压缩文件。`certbot-dns-cloudxns`主要用于处理与DNS相关的自动化证书管理任务,特别是与Let'...
资源分类:Python库 所属语言:Python 资源全名:cloudxns-ddns-service-1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
域名解析基于cloudxns和taobaoip的DDNS脚本您需要设置api_url,api_key,api_secret,Domain_ID,ttl,line_id,host,Domain_type。 这是一个示例:api_url =“ ” api_key =“ a7fe5ecbb823e7b0c968b2a885a111e98...
资源分类:Python库 所属语言:Python 资源全名:certbot_dns_cloudxns-0.37.1-py2.py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
此系统有哪些特点目前支持的域名解析平台有1.dnspod2.cloudxns3.aliyun多用户、多域名、多平台同时存在界面简单、舒适,操作简单快乐是福二级域名分发系统 更新日志:1.2->1.3 更新内容1、程序采用thinkphp5.0最新...
对于网站所有者和管理员来说,管理DNS记录是一项关键任务,涉及诸如A记录、CNAME记录、MX记录等不同类型。在处理多个DNS提供商时,由于每个提供商可能有不同的API和命令行界面,这可能会变得复杂和繁琐。"词典"...
PHP二级域名分发系统【快乐是福】版,构建于php MySQL平台,基于thinkphp5.0最新框架编写,可以支持多...在域名分发系统的管理后台,可增加限制某些前缀不能解析、增加用户解析个数限制、域名和用户等级设置等功能。
此系统有哪些特点 目前支持的域名解析平台有 ...3、后台增加限制某些前缀不能解析 4、增加用户解析个数限制 5、域名和用户有等级制度,用户等级小于域名设定等级,将不可解析! 6、修复之前一些错误!
个人博客地址: : 快乐二级域名发行系统(kldns v3.1.0)此系统有什么特点目前支持的域名解析平台有dnspod cloudxns 阿里云dnscom dnsla cloudxns 邓斯顿多用户,多域名,多平台同时存在界面简单,舒适,操作简单...
通过匹配CloudXNS在线IP库自动识别用户的区域及运营商,并从在线DNS服务列表中挑选出, 最适合最优化的本地DNS服务器地址,同时直接完成用户本地DNS设置。
快乐二级域名分发系统kldns基于ThinkPHP5.0框架完成开发,支持的域名解析平台有dnspod、cloudxns、aliyun、dnscom、dnsla,多用户、多域名、多平台同时存在,界面简单、舒适,操作简单。
快乐二级域名分发系统kldns基于ThinkPHP5.0框架完成开发,支持的域名解析平台有dnspod、cloudxns、aliyun、dnscom、dnsla,多用户、多域名、多平台同时存在,界面简单、舒适,操作简单。
快乐二级域名分发系统kldns基于ThinkPHP5.0框架完成开发,支持的域名解析平台有dnspod、cloudxns、aliyun、dnscom、dnsla,多用户、多域名、多平台同时存在,界面简单、舒适,操作简单。快乐二级域名分发系统 2.2.0 ...
书生DNS源码简介: 目前支持的域名解析平台...cloudxns aliyun dnscom dnsla 多用户、多域名、多平台同时存在 界面简单、舒适,操作简单 安装环境要求:MYSQL、PHP ≧ 5.4(PATH_INFO) PS. 如果进后台出现40