很多提供權(quán)威 DNS 解析的服務(wù)商都不提供域名裸域又叫根域(root record)的 CNAME 解析,有些即使提供了也會(huì)在你添加裸域的 CNAME 記錄時(shí)給你一個(gè)警告提醒。
萬(wàn)網(wǎng)的權(quán)威 DNS 解析服務(wù),當(dāng)給域名的裸域添加 CNAME 時(shí)就會(huì)報(bào)錯(cuò),說(shuō)是不支持給裸域添加 CNAME 記錄;國(guó)內(nèi)比較知名的權(quán)威 DNS 服務(wù)商 DNSPod 也會(huì)在你給域名的裸域添加 CNAME 解析時(shí)提醒你:如果發(fā)現(xiàn)郵件收發(fā)異常請(qǐng)刪除這條域名的 CNAME 解析。
為何這些權(quán)威 DNS 服務(wù)提供商都不建議給裸域添加 CNAME 記錄呢?這個(gè)要從 DNS 協(xié)議這塊來(lái)說(shuō)起了。DNS 協(xié)議是在 1987 年 11 月起草的,當(dāng)時(shí)壓根沒有人知道萬(wàn)維網(wǎng)(World Wide Web),因?yàn)槿f(wàn)維網(wǎng)的概念是在兩年后的 1989 年被萬(wàn)維網(wǎng)之父 Tim Berners-Lee 提出的。當(dāng)時(shí)也更不會(huì)有各種提供綁定域名服務(wù)的互聯(lián)網(wǎng)建站公司了。因此 DNS 協(xié)議規(guī)定不能給裸域添加 CNAME 記錄。
CNAME(Canonical name),即一個(gè)域名的別名,如果你的域名 abc.com
的 CNAME 記錄是xzy.com
,那么就可以說(shuō)abc.com
是xyz.com
的別名。既然abc.com
是xyz.com
的別名了,那么查詢abc.com
的其他記錄比如 MX(Mail eXchange) 記錄,就直接用xyz.com
的 MX 記錄就行了。對(duì)別名的理解是這樣的,并且 DNS 協(xié)議也明確規(guī)定了,更詳細(xì)的內(nèi)容可以查看 RFC 1034 和 RFC 1035。
舉個(gè)例子來(lái)說(shuō):
abc.com CNAME xyz.comabc.com MX xxx.comxyz.com MX zzz.com
以上的意思很明顯,abc.com
的 CNAME 記錄是xyz.com
,而abc.com
的 MX 記錄是xxx.com
,xyz.com
的 MX 記錄是 zzz.com
。
當(dāng)你訪問abc.com
這個(gè)地址的網(wǎng)頁(yè)服務(wù)時(shí),你拿到的是xyz.com
,然后被本機(jī)緩存起來(lái)了。接著你再給abc.com
這個(gè)域名發(fā)送郵件時(shí),根據(jù) DNS 協(xié)議規(guī)定,你的公共 DNS 服務(wù)器(也叫緩存 DNS 服務(wù)器)會(huì)先去本機(jī) DNS 緩存里查詢abc.com
的 CNAME 記錄是否存在,如果存在就再去查詢這個(gè) CNAME 記錄的 MX 記錄,然后向這個(gè) MX 服務(wù)器發(fā)送郵件。而在這個(gè)例子中會(huì)導(dǎo)致本該發(fā)送給xxx.com
MX 服務(wù)器的郵件結(jié)果發(fā)送給了zzz.com
MX 服務(wù)器。
當(dāng)然,反過來(lái),即先發(fā)郵件再打開網(wǎng)頁(yè)就不會(huì)有問題。
所以,不止不建議給裸域添加 CNAME 記錄,如果其他子域提供郵件服務(wù)的話也是不能添加 CNAME 記錄的。比如你提供郵件服務(wù)的子域是sub.abc.com
即郵箱地址類似xxx@sub.abc.com
,那么你不是能給sub.abc.com
添加 CNAME 記錄的。之所以很多服務(wù)商不支持給裸域添加 CNAME 是因?yàn)槁阌蚴褂绵]件服務(wù)的概率比較大。
另外,也有些比較有實(shí)力的服務(wù)商會(huì)提供諸如將裸 CNAME 記錄轉(zhuǎn)換成 A 記錄的功能。就像 CloudFlare.com 提供的 CNAME Flatten 服務(wù)。原理就是你顯式的添加 CNAME 記錄,而 CloudFlare 在背后將 CNAME 記錄遞歸解析并轉(zhuǎn)換成 A 記錄。由于 CloudFlare 的數(shù)據(jù)中心比較多,所以返回給你的遞歸解析后的記錄也是離你最近的記錄,根本不用擔(dān)心訪問速度的問題。
----------------------------------- 補(bǔ)充信息 --------------------------------------------
1. A記錄(IP指向)
又稱IP指向,用戶可以在此設(shè)置子域名并指向到自己的目標(biāo)主機(jī)地址上,從而實(shí)現(xiàn)通過域名找到服務(wù)器找到相應(yīng)網(wǎng)頁(yè)的功能。
說(shuō)明:指向的目標(biāo)主機(jī)地址類型只能使用IP地址。
2. CNAME(別名指向)
通常稱別名指向。您可以為一個(gè)主機(jī)設(shè)置別名。相當(dāng)于用子域名來(lái)代替ip地址,優(yōu)點(diǎn)是如果ip地址變化,只需要改動(dòng)子域名的解析,而不需要逐一改變ip地址解析。
說(shuō)明:
(1)CNAME的目標(biāo)主機(jī)地址只能使用主機(jī)名,不能使用IP地址;
(2)主機(jī)名前不能有任何其他前綴,如:http://等是不被允許的;
(3)A記錄優(yōu)先于CNAME記錄。即如果一個(gè)主機(jī)地址同時(shí)存在A記錄和CNAME記錄,則CNAME記錄不生效。
(4)CNAME最典型的應(yīng)用CDN,一般都是很多域名CNAME到CDN服務(wù)商單個(gè)域名下的子域名。
3. MX記錄
郵件交換記錄。用于將以該域名為結(jié)尾的電子郵件指向?qū)?yīng)的郵件服務(wù)器以進(jìn)行處理。如:用戶所用的郵件是以域名mydomain.com為結(jié)尾的,則需要在管理界面中添加該域名的MX記錄來(lái)處理所有以@mydomain.com結(jié)尾的郵件。
說(shuō)明:
(1)MX記錄可以使用主機(jī)名或IP地址;
(2)MX記錄可以通過設(shè)置優(yōu)先級(jí)實(shí)現(xiàn)主輔服務(wù)器設(shè)置,"優(yōu)先級(jí)"中的數(shù)字越小表示級(jí)別越高。也可以使用相同優(yōu)先級(jí)達(dá)到負(fù)載均衡的目的;
(3)如果在"主機(jī)名"中填入子域名則此MX記錄只對(duì)該子域名生效。
4. NS記錄(Name Server)
是域名服務(wù)器記錄。用來(lái)表明由哪臺(tái)服務(wù)器對(duì)該域名進(jìn)行解析。您注冊(cè)域名時(shí),總有默認(rèn)的DNS服務(wù)器,每個(gè)注冊(cè)的域名都是由一個(gè)DNS域名服務(wù)器來(lái)進(jìn)行解析的,DNS服務(wù)器NS記錄地址一般以以下的形式出現(xiàn):
ns1.domain.com
ns2.domain.com
說(shuō)明:
(1)"優(yōu)先級(jí)"中的數(shù)字越小表示級(jí)別越高;
(2)"IP地址/主機(jī)名"中既可以填寫IP地址,也可以填寫像ns.mydomain.com這樣的主機(jī)地址,但必須保證該主機(jī)地址有效。如,將 news.mydomain.com的NS記錄指向到ns.mydomain.com,在設(shè)置NS記錄的同時(shí)還需要設(shè)置ns.mydomain.com的 指向,否則NS記錄將無(wú)法正常解析;
(3)NS記錄優(yōu)先于A記錄。即,如果一個(gè)主機(jī)地址同時(shí)存在NS記錄和A記錄,則A記錄不生效。這里的NS記錄只對(duì)子域名生效。
域名:
聯(lián)系客服