域名解析CNAME记录与MX记录冲突的解决办法

1966人参与 |分类: 站长百科|时间: 2019年04月15日

很多时候我们在域名解析的过程中会直接解析到服务器的IP地址,但这样做往往会暴露服务器的真是IP地址,容易遭到非法的攻击,但是我可以使用CDN,使用CNAME的解析方式来伪装自己的IP,当然有些虚拟机也是采用CNAME的解析方式来绑定的,但是虚拟机毕竟不如云主机那么灵活。当然前面这个都是题外话了,我们主要要说的是怎么解决CNAME与MX冲突的问题。

域名解析CNAME记录与MX记录冲突的解决办法-第1张图片

首先,我们要搞清楚为什么会冲突,在递归进行解析查询时,各记录类型之间是有优先级的,所以在主机记录相同、解析线路相同的情况下,有几种记录类型不能共存使用,否则会给用户造成配置风险,导致业务不可用的情况发生。以下拿CNAME记录和MX记录的冲突来举例:

域名解析CNAME记录与MX记录冲突的解决办法-第2张图片

按照RFC标准协议CNAME优先级最高,所以在解析请求过程中,会优先返回CNAME解析记录结果,这样设置的结果导致用户无法请求到MX记录,直接对客户的邮箱业务造成使用影响。所以对于这类情况,云解析DNS会通过记录冲突的提示方式,来帮助用户避免这种配置风险。

关于这个可以去看下 RFC1034 和 RFC2181 的相关资料。例如RFC2181中:

域名解析CNAME记录与MX记录冲突的解决办法-第3张图片

搞清楚了产生冲突的原因,我们可以转变下方向来操作这个事情。我们可以通过配置主机记录为www的CNAME记录指向CDN产品,再配置主机记录为@的URL转发指向主机记录为www的域名,即可解决主机记录为@的CNAME和MX记录冲突问题。 解析记录配置如下:

域名解析CNAME记录与MX记录冲突的解决办法-第4张图片

如果想要实现显性URL转发,最好选择301,并且确定该域名的备案记录在阿里云才行,如果是腾讯云解析,只要是备案域名就行了。