7

DNS解析中CNAME和MX记录冲突 - 桓公子

 8 months ago
source link: https://www.cnblogs.com/Huan0630/p/17950606
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

DNS解析中CNAME和MX记录冲突

转载:DNS中CNAME和MX记录的冲突

在DNS解析中,CNAME记录与其他记录往往是互斥的。最常见的是CNAME记录和MX记录的互斥。例如我们在http://example.com部署官网,通过CNAME解析到后端网关的IP地址。但是http://example.com往往也是我们的邮件地址,需要添加MX解析记录和SPF-TXT记录。如果有CNAME记录的存在,可能会导致他们失效(有时候也不会,要看实际访问的主机是否缓存了CNAME记录)。

那么你可能会问了,为什么http://example.com使用CNAME记录而不是A记录呢?在实务中,我确实更喜欢使用CNAME记录。我一般使用k8s集群,通过Ingress网关暴露到公网,此时所有服务都有统一的一组网关地址,我将一个统一的网关域名解析到该组地址,然后各个服务的域名分别解析到网关域名。如此一来,当网关的负载均衡IP发生改变时,只需要变更网关DNS的解析记录即可。又或者使用CDN等技术需要CNAME接入。

为什么CNAME和其他解析记录互斥?

图片

如何解决?

最简单的方法就是不用CNAME,改用A记录。

使用更现代的ALIAS记录替代CNAME记录,前提是DNS供应商需要支持ALIAS记录。目前,阿里云貌似不支持。

阿里云推出了显性URL解析记录。严格来说,这个不是记录,他其实也是A记录。它通过A记录,把域名解析到阿里云的服务器,然后阿里云通过301或者302的方式将请求转发到别的地方去。

可以把官网部署在http://www.example.com,然后http://example.com配置此解析,通过301转发到目标的http://www.example.com域名上。

当然,你也可以自己配置一台服务器,添加A记录,进行转发。但是这又涉及到需要自己维护IP变更的问题了,可以做个动态DNS解析。

参考:
1.DNS各类型互斥关系说明 https://messay.me/2019/07/14/DN


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK