我們來了解下——根域名

域名是互聯網的基礎設施,只要上網就會用到。

它還是一門利潤豐厚的生意,所有域名每年都必須交註冊費,這是很大的一筆錢。

這些錢交到了哪裡?到底誰控制域名的價格?為什麼有的域名註冊費很貴,有的便宜?......今天,我就來談談這些與根域名(root domain)相關的知識。

我們來了解下——根域名

一、ICANN

全世界域名的最高管理機構,是一個叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的組織。它的總部在美國加州。

我們來了解下——根域名

它原來是美國商務部下面的一個非盈利機構,所以有人說,美國政府控制了全世界的域名,這種說法是有根據的。2016年,美國政府宣佈,ICANN 不再隸屬於商務部,成為一個自我管理的獨立機構。但是可想而知,美國政府依然對它有絕對影響。

ICANN 負責管理全世界域名系統的運作。它的一項主要工作,就是規定頂級域名(top level domain,簡寫為 TLD)。

二、TLD

所謂頂級域名(TLD),就是最高層級的域名。簡單說,就是網址的最後一個部分。比如,網址www.example.com的頂級域名就是.com。

ICANN 就負責規定,哪些字符串可以當作頂級域名。截至2015年7月,頂級域名共有1058個。

它們可以分成兩類。一類是一般性頂級域名(gTLD),比如.com、.net、.edu、.org、.xxx等等,共有700多個。另一類是國別頂級域名(ccTLD),代表不同的國家和地區,比如.cn(中國)、.io(英屬印度洋領地)、.cc( 科科斯群島)、.tv(圖瓦盧)等,共有300多個。

三、頂級域名託管商

ICANN 自己不會去管理這些頂級域名,因為根本管不過來。想想看,頂級域名有1000多個,每個頂級域名下面都有許多批發商,如果每個都要管,就太麻煩了。

ICANN 的政策是,每個頂級域名都找一個託管商,該域名的所有事項都由託管商負責。ICANN 只與託管商聯繫,這樣管理起來就容易多了。舉例來說,.cn域名的託管商就是中國互聯網絡信息中心(CNNIC),它決定了.cn域名的各種政策。

目前,世界最大的頂級域名託管商是美國的 Verisign 公司。

四、Verisign

我們來了解下——根域名

Verisign 是一家商業公司,總部在美國維吉尼亞州。它託管了.com、.net 、.name、.gov這四個一般性頂級域名,以及.cc和.tv這兩個國別頂級域名。另外,.edu和.jobs的後臺管理工作,也外包給了它。

它對.com和.net的獨家壟斷是歷史形成的。最早的時候, Network Solutions 公司接受美國國家科學基金會的委託,管理頂級域名。2000年,Verisign 收購了這家公司,繼承了域名業務。2003年,Verisign 賣掉了域名註冊業務,只保留頂級域名管理。也就是說,它只做域名批發,不做域名零售了。

2010年,Verisign 又把網站安全和加密證書業務賣給了 Symantec 公司。後者又在2017年把這項業務賣給了 DigiCert。

五、ICANN 與 Verisign 打官司

按理說,Verisign 是 ICANN 最大的託管商,兩家的關係應該很好才對。事實卻是它們的關係很差,甚至還打過官司。

原因在於,ICANN 是政府支持的非盈利機構,不以盈利為目標,而 Verisign 是一家商業公司,追求利潤最大化,每年必須交大量的託管費給前者。兩家的矛盾就源於此。

2003年,Verisign 推出了一項新業務 Site Finder,用戶訪問沒有註冊過的.com或.net域名,都會被導向 Verisign 的網站。這意味著,它事實上擁有了所有沒有註冊過的.com和.net域名。 幾天之內,Verisign 就擠入了全世界的前10大網站。

ICANN 要求 Verisign 立刻停止該業務,否則將終止域名託管合同。Verisign 屈服了,停止了這項業務,但是接著就把 ICANN 告上了法庭,要求法庭釐請兩者之間的合同,ICANN 到底有沒有權力干涉它的業務。

2006年底,它們達成了庭外和解。ICANN 同意延長 Verisign 的頂級域名託管合同,並且同意 Verisign 向消費者收取的單個域名註冊費的上限,從6美元提高到了7.85美元。這個費用標準,一直沿用到了今天,你去註冊一個.com或.net域名,所交的錢有0.18美元是 ICANN 收取的管理費,7.85美元是 Verisign 收取的託管費,其餘的錢就是域名零售商的費用。

我們來了解下——根域名

如果一個.com或.net域名售價10美元,ICANN 和 Verisign 合計拿走8.03美元。

後來,Verisign 的頂級域名託管合同又延長過兩次,當前合同要到2024年才會到期。

表面上看,ICANN 讓 Verisign 獲得了鉅額壟斷利潤。(曾經有公司提出,只要讓它來託管.com域名,單個域名的託管費,可以降低到每年1美元。)但是實際上,ICANN 通過另一種方式在發揮市場的力量,那就是它不斷提高頂級域名的數量和品種。如果你覺得.com域名太貴,你完全可以申請其他的頂級域名,有 1000多個頂級域名任你選擇。

六、根域名

由於 ICANN 管理著所有的頂級域名,所以它是最高一級的域名節點,被稱為根域名(root domain)。在有些場合,www.example.com被寫成www.example.com.,即最後還會多出一個點。這個點就是根域名。

理論上,所有域名查詢都必須先查詢根域名,因為只有根域名才能告訴你,某個頂級域名由哪臺服務器管理。事實上也確實如此,ICANN 維護著一張列表,裡面記載著頂級域名和對應的託管商。

比如,我要訪問www.example.com,就必須先詢問 ICANN 的根域名列表,它會告訴我.com域名由 Verisign 託管,我必須去找 Verisign,它會告訴我example.com服務器在哪裡。

再比如,我要訪問abc.xyz,也必須先去詢問根域名列表,它會告訴我.xyz域名由 CentralNic 公司託管。根域名列表還記載,.google由谷歌公司託管,.apple由蘋果公司託管等等。

由於根域名列表很少變化,大多數 DNS 服務商都會提供它的緩存,所以根域名的查詢事實上不是那麼頻繁。

七、DNS 根區

根域名列表的正式名稱是 DNS 根區(DNS root zone),ICANN 官網可以查看這個根區文件。

該文件保存所有頂級域名的託管信息,所以非常大,超過2MB。

舉例來說,頂級域名.com可以查到13個域名服務器。


com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.

也就是說,.com域名的解析結果,可以到這個13個服務器的任一臺查詢。細心的讀者可能發現,這些服務器本身也是使用域名(比如a.gtld-servers.net.)標識,那麼還得去查詢它們指向的服務器,這樣很容易造成循環查詢。

因此,DNS 根區還會同時提供這些服務器的 IP 地址(IPv4 和 IPv6)。


a.gtld-servers.net. 172800 IN A 192.5.6.30
a.gtld-servers.net. 172800 IN AAAA 2001:503:a83e:0:0:0:2:30
b.gtld-servers.net. 172800 IN A 192.33.14.30
b.gtld-servers.net. 172800 IN AAAA 2001:503:231d:0:0:0:2:30
c.gtld-servers.net. 172800 IN A 192.26.92.30
c.gtld-servers.net. 172800 IN AAAA 2001:503:83eb:0:0:0:0:30
... ...

八、根域名服務器

保存 DNS 根區文件的服務器,就叫做 DNS 根域名服務器(root name server)。

由於早期的 DNS 查詢結果是一個512字節的 UDP 數據包。這個包最多可以容納13個服務器的地址,因此就規定全世界有13個根域名服務器,編號從a.root-servers.net一直到m.root-servers.net。

這13臺根域名服務器由12個組織獨立運營。其中,Verisign 公司管理兩臺根域名服務器:A 和 J。每家公司為了保證根域名服務器的可用性,會部署多個節點,比如單單 Verisign 一家公司就部署了104臺根域名服務器(2016年1月數據)。

所以,根域名服務器其實不止13臺。據統計,截止2016年1月,全世界共有 517 臺根域名服務器。你可以在 http://root-servers.org 這個網站查到所有根域名服務器的信息。

根域名服務器雖然有域名,但是最少必須知道一臺的 IP 地址,否則就會陷入循環查詢。一般來說,本機都保存一份根域名服務器的 IP 地址的緩存,叫做 name.cache 文件。


A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e :: 2:30
B.ROOT-SERVERS.NET. 3600000 A 199.9.14.201
B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:200 :: b
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
C.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2 :: c
... ...

這個文件記錄了13臺根域名服務器的 IP 地址。

來源:http://www.ruanyifeng.com/blog/2018/05/root-domain.html
作者:阮一峰


分享到:


相關文章: