不少提供權威 DNS 解析的服務商都不提供域名裸域又叫根域(root record)的 CNAME 解析,有些即便提供了也會在你添加裸域的 CNAME 記錄時給你一個警告提醒。html
萬網的權威 DNS 解析服務,當給域名的裸域添加 CNAME 時就會報錯,說是不支持給裸域添加 CNAME 記錄;國內比較知名的權威 DNS 服務商 DNSPod 也會在你給域名的裸域添加 CNAME 解析時提醒你:若是發現郵件收發異常請刪除這條域名的 CNAME 解析。緩存
爲什麼這些權威 DNS 服務提供商都不建議給裸域添加 CNAME 記錄呢?這個要從 DNS 協議這塊來講起了。DNS 協議是在 1987 年 11 月起草的,當時壓根沒有人知道萬維網(World Wide Web),由於萬維網的概念是在兩年後的 1989 年被萬維網之父 Tim Berners-Lee 提出的。當時也更不會有各類提供綁定域名服務的互聯網建站公司了。所以 DNS 協議規定不能給裸域添加 CNAME 記錄。服務器
CNAME(Canonical name),即一個域名的別名,若是你的域名 abc.com
的 CNAME 記錄是xzy.com
,那麼就能夠說abc.com
是xyz.com
的別名。既然abc.com
是xyz.com
的別名了,那麼查詢abc.com
的其餘記錄好比 MX(Mail eXchange) 記錄,就直接用xyz.com
的 MX 記錄就好了。對別名的理解是這樣的,而且 DNS 協議也明確規定了,更詳細的內容能夠查看 RFC 1034 和 RFC 1035。負載均衡
舉個例子來講:dom
abc.com CNAME xyz.com abc.com MX xxx.com xyz.com MX zzz.com
以上的意思很明顯,abc.com
的 CNAME 記錄是xyz.com
,而abc.com
的 MX 記錄是xxx.com
,xyz.com
的 MX 記錄是 zzz.com
。ide
當你訪問abc.com
這個地址的網頁服務時,你拿到的是xyz.com
,而後被本機緩存起來了。接着你再給abc.com
這個域名發送郵件時,根據 DNS 協議規定,你的公共 DNS 服務器(也叫緩存 DNS 服務器)會先去本機 DNS 緩存裏查詢abc.com
的 CNAME 記錄是否存在,若是存在就再去查詢這個 CNAME 記錄的 MX 記錄,而後向這個 MX 服務器發送郵件。而在這個例子中會致使本該發送給xxx.com
MX 服務器的郵件結果發送給了zzz.com
MX 服務器。spa
固然,反過來,即先發郵件再打開網頁就不會有問題。code
因此,不止不建議給裸域添加 CNAME 記錄,若是其餘子域提供郵件服務的話也是不能添加 CNAME 記錄的。好比你提供郵件服務的子域是sub.abc.com
即郵箱地址相似xxx@sub.abc.com
,那麼你不是能給sub.abc.com
添加 CNAME 記錄的。之因此不少服務商不支持給裸域添加 CNAME 是由於裸域使用郵件服務的機率比較大。htm
另外,也有些比較有實力的服務商會提供諸如將裸 CNAME 記錄轉換成 A 記錄的功能。就像 CloudFlare.com 提供的 CNAME Flatten 服務。原理就是你顯式的添加 CNAME 記錄,而 CloudFlare 在背後將 CNAME 記錄遞歸解析並轉換成 A 記錄。因爲 CloudFlare 的數據中心比較多,因此返回給你的遞歸解析後的記錄也是離你最近的記錄,根本不用擔憂訪問速度的問題。blog
----------------------------------- 補充信息 --------------------------------------------
1. A記錄(IP指向)
又稱IP指向,用戶能夠在此設置子域名並指向到本身的目標主機地址上,從而實現經過域名找到服務器找到相應網頁的功能。
說明:指向的目標主機地址類型只能使用IP地址。
2. CNAME(別名指向)
一般稱別名指向。您能夠爲一個主機設置別名。至關於用子域名來代替ip地址,優勢是若是ip地址變化,只須要改動子域名的解析,而不須要逐一改變ip地址解析。
說明:
(1)CNAME的目標主機地址只能使用主機名,不能使用IP地址;
(2)主機名前不能有任何其餘前綴,如:http://等是不被容許的;
(3)A記錄優先於CNAME記錄。即若是一個主機地址同時存在A記錄和CNAME記錄,則CNAME記錄不生效。
(4)CNAME最典型的應用CDN,通常都是不少域名CNAME到CDN服務商單個域名下的子域名。
3. MX記錄
郵件交換記錄。用於將以該域名爲結尾的電子郵件指向對應的郵件服務器以進行處理。如:用戶所用的郵件是以域名mydomain.com爲結尾的,則須要在管理界面中添加該域名的MX記錄來處理全部以@mydomain.com結尾的郵件。
說明:
(1)MX記錄可使用主機名或IP地址;
(2)MX記錄能夠經過設置優先級實現主輔服務器設置,"優先級"中的數字越小表示級別越高。也可使用相同優先級達到負載均衡的目的;
(3)若是在"主機名"中填入子域名則此MX記錄只對該子域名生效。
4. NS記錄(Name Server)
是域名服務器記錄。用來代表由哪臺服務器對該域名進行解析。您註冊域名時,總有默認的DNS服務器,每一個註冊的域名都是由一個DNS域名服務器來進行解析的,DNS服務器NS記錄地址通常以如下的形式出現:
ns1.domain.com
ns2.domain.com
說明:
(1)"優先級"中的數字越小表示級別越高;
(2)"IP地址/主機名"中既能夠填寫IP地址,也能夠填寫像ns.mydomain.com這樣的主機地址,但必須保證該主機地址有效。如,將 news.mydomain.com的NS記錄指向到ns.mydomain.com,在設置NS記錄的同時還須要設置ns.mydomain.com的 指向,不然NS記錄將沒法正常解析;
(3)NS記錄優先於A記錄。即,若是一個主機地址同時存在NS記錄和A記錄,則A記錄不生效。這裏的NS記錄只對子域名生效。
域名: