DNS解析中CNAME和MX记录冲突
轉(zhuǎn)載:DNS中CNAME和MX記錄的沖突
在DNS解析中,CNAME記錄與其他記錄往往是互斥的。最常見(jiàn)的是CNAME記錄和MX記錄的互斥。例如我們?cè)趆ttp://example.com部署官網(wǎng),通過(guò)CNAME解析到后端網(wǎng)關(guān)的IP地址。但是http://example.com往往也是我們的郵件地址,需要添加MX解析記錄和SPF-TXT記錄。如果有CNAME記錄的存在,可能會(huì)導(dǎo)致他們失效(有時(shí)候也不會(huì),要看實(shí)際訪問(wèn)的主機(jī)是否緩存了CNAME記錄)。
那么你可能會(huì)問(wèn)了,為什么http://example.com使用CNAME記錄而不是A記錄呢?在實(shí)務(wù)中,我確實(shí)更喜歡使用CNAME記錄。我一般使用k8s集群,通過(guò)Ingress網(wǎng)關(guān)暴露到公網(wǎng),此時(shí)所有服務(wù)都有統(tǒng)一的一組網(wǎng)關(guān)地址,我將一個(gè)統(tǒng)一的網(wǎng)關(guān)域名解析到該組地址,然后各個(gè)服務(wù)的域名分別解析到網(wǎng)關(guān)域名。如此一來(lái),當(dāng)網(wǎng)關(guān)的負(fù)載均衡IP發(fā)生改變時(shí),只需要變更網(wǎng)關(guān)DNS的解析記錄即可。又或者使用CDN等技術(shù)需要CNAME接入。
為什么CNAME和其他解析記錄互斥?
如何解決?
方法一
最簡(jiǎn)單的方法就是不用CNAME,改用A記錄。
方法二
使用更現(xiàn)代的ALIAS記錄替代CNAME記錄,前提是DNS供應(yīng)商需要支持ALIAS記錄。目前,阿里云貌似不支持。
方法三
阿里云推出了顯性URL解析記錄。嚴(yán)格來(lái)說(shuō),這個(gè)不是記錄,他其實(shí)也是A記錄。它通過(guò)A記錄,把域名解析到阿里云的服務(wù)器,然后阿里云通過(guò)301或者302的方式將請(qǐng)求轉(zhuǎn)發(fā)到別的地方去。
可以把官網(wǎng)部署在http://www.example.com,然后http://example.com配置此解析,通過(guò)301轉(zhuǎn)發(fā)到目標(biāo)的http://www.example.com域名上。
當(dāng)然,你也可以自己配置一臺(tái)服務(wù)器,添加A記錄,進(jìn)行轉(zhuǎn)發(fā)。但是這又涉及到需要自己維護(hù)IP變更的問(wèn)題了,可以做個(gè)動(dòng)態(tài)DNS解析。
參考:
1.DNS各類型互斥關(guān)系說(shuō)明 https://messay.me/2019/07/14/DN
總結(jié)
以上是生活随笔為你收集整理的DNS解析中CNAME和MX记录冲突的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 如何找到 niche 出海细分市场的
- 下一篇: 不止八股:阿里内部语雀一些有趣的并发编程