美国如果把根域名服务器封了,中国会从网络上消失?
以下文章來源于微月人話,作者衛 sir
自從美國宣布“清潔網絡”行動后,很多懂點網絡的人,第一反應是,美國人會下手根域名服務器嗎?
這種憂慮可不是一年兩年了。
2014 年 6 月 24 日的《人民日報》上引用專家發言:“目前美國掌握著全球互聯網 13 臺域名根服務器中的 10 臺。理論上,只要在根服務器上屏蔽該國家域名,就能讓這個國家的國家頂級域名網站在網絡上瞬間“消失”。在這個意義上,美國具有全球獨一無二的制網權,有能力威懾他國的網絡邊疆和網絡主權。譬如,伊拉克戰爭期間,在美國政府授意下,伊拉克頂級域名“.iq”的申請和解析工作被終止,所有網址以“.iq”為后綴的網站從互聯網蒸發。”1
《信息安全與通信保密》雜志 2014 年第 10 期的一篇文章寫道:“2004 年,由于與利比亞在頂級域名管理權問題上發生爭執,美國終止了利比亞的頂級域名 .LY 的解析服務,導致利比亞從網絡中消失 3 天。”2
對此,我們需要害怕嗎?我們需要什么樣的反制措施?
不是專家,還真回答不了這個問題。
因為這需要了解 DNS 的工作原理,了解根域名的管理機制。
這里先給出簡要回答:不排除這種可能性,但并不是沒有辦法。
一句話原因:雖然根不在我們手里,但我們有鏡像。
DNS 傻瓜書
先了解點基本概念,懂 DNS 的可以直接跳過本節。
1、DNS 是什么?
DNS 就是將域名轉換為 IP 的,因為我們人類的記憶力太差,根本記不住 IP,而電腦通信又必須用 IP,所以人類發明了域名,讓我們可以記住 baidu.com、taobao.com 這種還算能記得住的域名。然后通過 DNS,將這些域名轉換為電腦需要的 IP。
2、DNS 是怎么工作的?
每個電腦里面都設置了本地 DNS 服務器(簡稱 LDNS),需要的時候,就向 LDNS 發出請求,LDNS 在網上問權威域名服務器(簡稱權威 DNS),有時候問一家是不夠的,要問一大圈下來,最后才能得到答案。
3、權威 DNS 是干什么的?
問我一個域名,我告訴你 IP,如果我不知道,我告訴你誰可能知道,你再去問它。
4、什么是根域名服務器(簡稱根 DNS)?
當 LDNS 啥都不知道的時候(也即沒有任何緩存),就去問根 DNS,根能告訴 LDNS 下一步該問誰。
5、全世界有多少根 DNS?
13 個,其中 10 個在美國,英國和瑞典各 1 個,日本 1 個。
6、根 DNS 的名字和 IP 都是什么?
在這個網址:
https://www.internic.net/domain/named.root
打開可以看到,里面有 13 個根的名字和 IP,其名字從A.root-servers.net 到M.root-servers.net。
A 開頭那個簡稱A根,是主根,其他 12 個(B、C、D、E、F、G、H、I、J、K、L、M)是輔根。
為什么根 DNS 只有 13 臺?
本節看不懂沒關系(一般人都看不懂),你只需要知道,由于歷史原因和技術原因,對于 IPv4 而言,根 DNS 只能有 13 個 IP。
正宗答案是:DNS 主要使用 UDP 數據報傳送報文,不含前面的各種頭部,DNS 報文要求被控制在 512 字節之內( RFC1035 ),主要考慮是這個大小幾乎可以在互聯網上暢通無阻,不會因為路徑中某個 MTU 太小( MTU 通常總會 >= 576,見 RFC791 )而導致 IP 分片,從而預防了各種不可預期的后果3。
而每一個根 DNS 在 DNS 報文中都要占用一定的字節數,比如根的名稱、TTL、IP 地址等。這樣,13 個根域名服務器基本上就把空間占差不多了,剩余的字節還要用于包裝 DNS 報頭以及其它協議參數,所以根域名服務器不易太多,13 個算是比較合適的數目。具體可以看一下“Why 13 DNS root servers?”這篇文章。4
真的只有 13 臺服務器嗎?
和很多人想象的完全不一樣,這 13 個根域名服務器,并不是只有 13 臺物理的服務器。
這 13 個根,只是一個邏輯上的概念,每個根 DNS,背后都有多臺真正的物理服務器在工作!
截至 2020 年 8 月 12 日,全球一共有 1097 個根服務器。每一個根都有若干個鏡像,分布在全球不同的地方。
這個數目在不斷上漲,去年 10 月 1 日新中國成立 70 周年閱兵的時候,我看了一下,是 1015 個服務器。
這 13 個根由 12 個獨立的機構管理,比如A根和J根都是由 Verisign 公司管理,截至 2020 年 8 月 12 日,A根在全球各地有 53 個站點,J根有 185 個站點。L根由 ICANN 管理,全球有 167 個站點,其中北京 2 個,上海 1 個。
在 root-servers 網站上5,可以查到所有這些根服務器的分布,從網站展示的根鏡像服務器地圖上看(2020 年 8 月 12 日),北京有 5 個根鏡像服務器,上海 1 個,杭州 2 個,武漢 1 個、鄭州 1 個、西寧 1 個、貴陽 1 個、廣州 1 個、香港 9 個,臺北 6 個。
包含港澳臺部分,我國一共有 28 個根鏡像。
我國境內發出的對根 DNS 的請求,其實都由鏡像完成了。這一點后面會解釋。
現在,為了增長知識,你該硬著頭皮看一些 DNS 細節了。
DNS 到底是怎么工作的?
對于 IT 從業者,希望你能理解并牢牢記住本節的內容。
因為你遲早會遇到有關 DNS 的困惑。
先介紹一下域名的級別:
.代表根域名, .com 這種是頂級域名,也叫一級域名,baidu.com 這種叫二級域名, www.baidu.com 這種叫三級域名,依次類推。
注:也有其他叫法的,反正你知道這個意思就可以了。
再介紹一下最常見的兩種域名服務器:
權威 DNS:負責對請求作出權威的回答。權威 DNS 中存儲著記錄,最常見的 3 種:A記錄(記錄某域名和其 IP 的對應),NS 記錄(記錄某域名和負責解析該域的權威 DNS),CNAME 記錄(負責記錄某域名及其別名)。權威能直接回答的,就回A記錄;需要其他權威 DNS 回答的,就回 NS 記錄,然后 LDNS 再去找其他權威 DNS 問;如果該記錄是別名類型的,就回 CNAME,LDNS 就會再去解析別名。
遞歸 DNS:通常就是 LDNS,它接受終端的域名查詢請求,負責在網上問一圈后,將答案返回終端。
現在舉一個具體的例子:比如終端請求 www.baidu.com 這個域名的 IP。
在沒有緩存時,LDNS 會從根 DNS 問起:
1、LDNS 問根 DNS 說:“www.baidu.com 的 IP 是多少啊?”。
2、根 DNS 說:“我哪有時間管你這么細的問題,你去問 com 頂級域的 DNS 吧,我只管到頂級域,喏,這些是 com 頂級域 DNS 的名字和 IP,你去問它們吧”。(以 NS 記錄回應)
3、LDNS 又忙問 com 的權威 DNS,com 權威 DNS 說:“你問的這是三級域名,我不管這么多,你去問 baidu.com 的權威 DNS 吧,它的名字是 ns.baidu.com,他的 IP 是 XXX(這里可能給出多個權威 DNS)”。
4、LDNS 繼續問 baidu.com 的權威 DNS,這次痛快,因為 www.baidu.com 正是它管的,它可能直接給出A記錄,也可能給出 CNAME 記錄,如果是前者,就直接得到 IP,如果是后者,就需要對別名再做查詢。
5、最終,LDNS 得到 www.baidu.com 的 IP,并將其返回給終端。
細心的人會問,在第 1 步中,LDNS 問根 DNS 的時候,他是怎么知道根 DNS 的 IP 的?
這 13 個 IP 通常是預先配置在 LDNS 里面的。在 LDNS 初始化 DNS 緩存或者緩存失效的時候,LDNS 向自己被預先配置的這些 IP 中的一個,發起對根的查詢(也即詢問.的 NS 記錄),獲得最新的根 DNS 的信息6。
對于 DNS 服務器軟件而言,這 13 個 IP,配置在根提示文件(root hints file)中,可能是 named.cache 或 root.ca 或 root.hints 等等之類的文件。
上面就是各種教科書中都會講到的 DNS 查詢過程,但實際上,沒有這么麻煩,因為各個層面都是有緩存的。
實際 DNS 查詢的過程,是這樣的:
舉個例子,比如用戶在瀏覽器中輸入這個域名:123.abc.qq.com.cn
1、瀏覽器會先看自身有沒有對這個域名的緩存,如果有,就直接返回,如果沒有,就去問操作系統,操作系統也會去看自己的緩存,如果有,就直接返回,如果沒有,再去 hosts 文件看,也沒有,才會去問 LDNS。
2、LDNS 會去先看看自己有沒有 123.abc.qq.com.cn 的A記錄,要有就直接返回,要沒有,就去看有沒有 abc.qq.com.cn 的 NS 記錄,如果有,就去問它要答案,如果沒有,就去看有無 qq.com.cn 的 NS 的記錄,如果有,就去問它,沒有就去看有無 com.cn 的 DNS,還沒有就去看有無 cn 的 DNS,如果連 cn 的 NS 記錄都沒有,才去問根。
所以,有了緩存以后,教科書上那種從根問起的情況,實際上很少發生。
只有在各處都沒有緩存的時候,我們才會問根。
根鏡像起什么作用?
根鏡像承擔起和根一樣的功能。
根 DNS 中,最重要的文件就是根區文件(Root Zone file)。所有頂級域名記錄都存在根區文件中。
輔根從主根同步數據,根鏡像從根同步數據。最終,所有根和鏡像都有著同樣的根區文件。
而且最有意思的是,根鏡像和根有著同樣的 IP。
我們知道,全球有一千多個根鏡像,但是大多數人不知道,它們一起共享 13 個 IP! 對的。因為只有 13 個根。
這是如何做到的?答案是任播(Anycast,又譯泛播)技術。
不關心技術細節的,請直接看本節的最后一句。
任播最初由 RFC1546 提出,主要用在 DNS 根服務器上。
任播是指在 IP 網絡上通過一個 IP 地址標識一組提供特定服務的主機,服務訪問方并不關心提供服務具體是哪一臺主機提供的,訪問該地址的報文可以被 IP 網絡路由到“最近”的一個(最好也只是一個,別送到多個)服務器上。這里“最近”可以是指路由器跳數、服務器負載、服務器吞吐量、客戶和服務器之間的往返時間( RTT,round trip time )、鏈路的可用帶寬等特征值。
這樣,一方面,用戶可以就近訪問;另一方面,即便部分根出現故障也沒事。
有些同學可能聯想到負載均衡,沒錯,大致上就是這個意思。
對于中國用戶來說,對根的請求,一般不會跑到美國去,而是通過任播技術路由到中國境內的根鏡像上。
根 DNS 是怎么管理的?
根 DNS 目前由 12 家機構管理。A根是主根,由美國公司 Verisign 管理。
根 DNS 中最重要的文件,根區文件,由 ICANN 管理。
ICANN(The Internet Corporation for Assigned Names and Numbers,互聯網名稱與數字地址分配機構)是成立于 1998 年的一家注冊在美國的非營利性組織。
根 DNS 管理的歷史變遷過程還是比較復雜的。這里簡要說一下。
DNS 最初的技術開發者與管理者是美國南加州大學的 Jon Postel 博士,他掌管互聯網初期根 DNS 的管理和分配。
1988 年,美國政府要求 Jon Postel 采取更安全和更合理的措施來保證互聯網核心資源的分配和管理7。于是,大名鼎鼎的 IANA(The Internet Assigned Numbers Authority,互聯網數字分配機構)被組建,并在 DARPA 和南加州大學信息科學研究所(ISI)的合同下管理。
IANA 負責互聯網全局編號和編碼的管理與協調,之所以需要這么個機構,是因為互聯網協議的值或參數,必須是全球唯一的,否則無法互聯互通,比如 HTTP 協議默認都在 80 端口等待用戶請求,而 404 編碼則一致代表"未找到頁面”。IANA 主要職責包括 IP 地址段的分配、協議代碼和編號的分配(如協議號、端口號)、自治系統編號 (ASN) 分配、DNS 根區管理(包括通用頂級域名 gTLD 以及國家和地區頂級域名 ccTLD 管理)等。8
1998 年 ICANN 成立之后,美國商務部以合同形式,委托 ICANN 承擔 IANA 日常運行,IANA 從 ISI 轉移到 ICANN 之下。
對于頂級域名的管理,ICANN 的政策是,每個頂級域名(像 com、cn、org 這種頂級域名,目前有 1000 多個)都找一個托管商,該域名的所有事項都由托管商負責。
.cn 域名的托管商是中國互聯網絡信息中心(CNNIC),它決定 .cn 域名的各種政策。
.com、.net 、.name、.gov 這四個頂級域名都由 Verisign 公司托管。
Verisign 和 ICANN 還是鬧過幾次不愉快的。9
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 收取的托管費,其余的錢就是域名零售商的費用。
雖然是 ICANN 運營著 IANA,但畢竟是在美國政府的合同管理之下,全球各國以及民間人士頗有微詞,一致認為美國政府應該徹底退出。
2014 年 3 月 14 日,美國商務部國家通訊與信息管理局(NTIA)宣布愿意將 IANA 的管理權完全移交給 ICANN,并要求 ICANN 制定移交計劃。NTIA 尤其強調,移交計劃要強化多利益相關方模式,不能以政府間組織或政府領導的組織取代當前 NTIA 扮演的角色。
2016 年 3 月 17 日,ICANN 向 NTIA 提交了移交計劃。2016 年 6 月 9 日,NTIA 公布審核意見,表示 ICANN 提交的移交計劃滿足了此前設定的條件。
2016 年 8 月 16 日,NTIA 宣布不再延期現有合同。
雖然遇到一些阻撓10,最終,2016 年 10 月 1 日,ICANN 和美國商務部之間關于 IANA 職能的合同到期且不再續約,ICANN 徹底成為獨立的非營利機構。IANA 部門的員工和其他的相關資源都被轉移到 ICANN 新設立的附屬機構 PTI(Public Technical Identifiers,公共技術標識符)中。
ICANN 使用全球多利益相關方治理模型(global multistakeholder governance model)進行管理。PTI 董事會共 5 席,3 席由 ICANN 委派,2 席由全球互聯網社群代表組成提名委員會產生。2017 年 2 月,ICANN 發布 PTI 董事競選公告,經半年多輪面試及背景調查,提名委員會于 2017 年 10 月 26 日宣布我國北龍中網的王偉與另一歐洲代表中選。又經一個半月的利益沖突審查,2017 年 12 月 13 日 ICANN 董事會正式確認王偉當選。11
我國的根鏡像由誰管理?
從目前我所找到的資料看,自 2003 年以來,我國在不斷引進根鏡像,尤其是去年,根鏡像個數增速很快。
2003 年,中國電信引入了國內第一個根鏡像節點(F根)。
2005 年,I根服務器運行機構在 CNNIC 設立了中國第二個根鏡像(I根)。
2006 年,中國聯通(原中國網通)與美國 VeriSign 公司合作, 在國內正式開通J根鏡像服務器,同時引入了全球最大的兩個頂級域名 “.COM”和“.NET”鏡像節點;引進這些鏡像的主要目的是提高根域名和頂級域名的解析性能。
2014 年,世紀互聯與 ICANN 合作在中國增設L根域名服務器鏡像。
2019 年 6 月 24 日,工信部批準 CNNIC 設立六臺域名根鏡像服務器(F、I、K、L)。這六臺域名根服務器編號為 JX0001F、JX0002F、JX0003I、JX0004K、JX0005L 和 JX0006L12,并批準互聯網域名系統北京市工程研究中心(ZDNS)設立L根鏡像服務器 JX0007L13。
2019 年 11 月 6 日,工信部批復同意中國信息通信研究院設立L根鏡像服務器,編號分別為 JX0008L、JX0009L。
2019 年 12 月 5 日,工信部批復同意中國信息通信研究院設立域名根服務器(K根鏡像服務器),編號為 JX0010K。
2019 年 12 月 9 日,工信部批復同意 CNNIC 設立域名根服務器(J、K根鏡像服務器),編號分別為 JX0011J、JX0012K。
從工信部的批文中可以了解到,相關單位負責根鏡像的運行、維護和管理工作,維護國家利益和用戶權益,并接受工信部的管理和監督檢查。
工信部在給 CNNIC 的批文中寫道:“你中心應嚴格遵守《互聯網域名管理辦法》《通信網絡安全防護管理辦法》及相關法律法規、行政規章及行業管理規定,接受我部的管理和監督檢查,建立符合我部要求的信息管理系統并與我部指定的管理系統對接,保證域名根服務器安全、可靠運行,為用戶提供安全、方便的域名服務,保障服務質量,保護用戶個人信息安全,維護國家利益和用戶權益。”
美國能對根 DNS 做什么手腳?
雖然 ICANN 是一個獨立的非營利性機構,但如果美國政府動用強制力量,A根(主根)的內容仍然存在被篡改的可能。
也就是根區文件可以被篡改。
會怎么篡改?
我們先看看根區文件長什么樣。
從 ICANN 官網上可以下載根區文件:
https://www.iana.org/domains/root/files
該文件保存所有頂級域名的信息,目前大小為 2.2M,2 萬余行。
每當有頂級域名的變動時,該文件就會更新。
我們可以看到,和 cn 域名解析相關的記錄也就那么幾十行。
如果刪除和 cn 相關的那些行,很快,就會同步到所有的根中。
然后,在所有的緩存都過期之后,全球所有人都訪問不了 .cn 后綴的網站。
如何應對?
因為我們維護著根鏡像,所以我們控制著鏡像中的內容。
而中國境內的對根的訪問,通過我們的運營商,都會落到對我國根鏡像的訪問上。
我們可以不同步關于 cn 的修改。
就這么簡單。
可以簡單寫個程序,每次同步完立刻加上 cn 記錄。
也可以自己搭個主根,完全不和美國的根同步。(相當于另立中央了)
當然,世界各地不在我們管理之下的根和根鏡像,如果不加行動,仍然會同步這些刪除。
那么,除了中國自己,其他國家的人都無法訪問 .cn 網站。
但是,這些國家很快就會有響應,凡是想訪問 .cn 網站的國家,都會把 cn 記錄加回去,并拒絕同步美國刪去的這幾行。
最終,只有美國人,訪問不了 .cn 網站。
綜上分析,我認為美國這么做的可能性不大,因為這一招過于低劣,將會讓美國政府完全顏面掃地,并失去今后在互聯網領域的任何話語權。而 ICANN 也將失去公信力,整個互聯網世界,會推選使用新的機構和新的主根。
因為互聯網世界的一貫準則就是:如有封禁,就繞過它。
后記
最后,我們看看本文開頭所提的兩個斷網事件是怎么回事:
關于伊拉克域名事件,可以看看清華大學段海新教授的文章:“伊拉克域名 .IQ 被美國刪除的背后以及早期的根域名管理”,里面把整個事件的來龍去脈說的很清楚。主要原因是 .iq 域名的前任管理者于 2002 年被關進監獄,新任管理者(NCMC)于 2005 年才提出申請,而 IANA 當時還考慮征求新舊代理雙方對新授權的一致認可,所以才出現了所謂的“申請和解析工作被終止”。
關于利比亞域名事件,可以看看此文:“利比亞國家頂級域名(.LY)中止服務始末”,事實情況是參與運營 .LY 的兩家機構因爭奪歸屬權而內斗的結果(其中一方關閉了 .LY 域名服務器的解析)。經過這番變亂,2004 年 10 月,ICANN 批準將 .LY 授予利比亞郵電總公司,.LY 事件算是塵埃落定。
本文中提到的風險和應對,主要是我個人的分析,下面看看業內專家的說法。
中國工程院院士、清華大學計算機系主任吳建平在 2019 年的一次訪談14中表示,DNS 根域名服務器不是互聯網的“核按鈕”。全球互聯網根域名服務器運行者,不可能同時關閉所有的根服務器,包括影子服務器。
互聯網域名系統北京市工程研究中心(ZDNS)主任毛偉表示15:互聯網專家一直都在不斷完善域名根系統安全保障機制,就算真的斷“根”了,也有應急方法來解決。在境內,可以采用根區數據備份并搭建應急根服務器來解決;在全球層面,可以用根鏡像、IPv6 環境下的根服務器數量擴展、根服務器運行機構備選機制等方法來解決。
現在,了解了這么多,關于根域名服務器,你是不是放心了很多。
參考文獻:
-
從網絡大國走向網絡強國(http://opinion.people.com.cn/n/2014/0624/c1003-25189448.html)
-
美國網絡霸權淺析(http://www.wanfangdata.com.cn/details/detail.do?_type=perio&id=xxaqytxbm201410030)
-
為什么域名根服務器只能有 13 臺呢?(https://www.zhihu.com/question/22587247)
-
Why 13 DNS root servers?(https://miek.nl/2013/november/10/why-13-dns-root-servers/)
-
https://root-servers.org
-
Initializing a DNS Resolver with Priming Queries (https://tools.ietf.org/html/draft-ietf-dnsop-resolver-priming-11)
-
薛虹:互聯網全球治理的新篇章(https://zhuanlan.zhihu.com/p/23042167)
-
ICANN: IANA 職能(https://www.icann.org/zh/system/files/files/iana-functions-18dec15-zh.pdf)
-
阮一峰:根域名的知識
-
徐培喜:IANA 職能管理權移交誰是贏家
-
北龍中網王偉任職 PTI 董事我國專家就任國際互聯網治理關鍵崗位(http://news.sina.com.cn/c/2017-12-25/doc-ifypwzxq6350205.shtml)
-
工業和信息化部關于同意中國互聯網絡信息中心設立域名根服務器(F、I、K、L根鏡像服務器)及域名根服務器運行機構的批復(http://www.miit.gov.cn/n1146285/n1146352/n3054355/n3057709/n4704651/c7015545/content.html)
-
工業和信息化部關于同意互聯網域名系統北京市工程研究中心有限公司設立域名根服務器(L根鏡像服務器)及域名根服務器運行機構的批復(http://www.miit.gov.cn/n1146285/n1146352/n3054355/n3057709/n4704651/c7015527/content.html)
-
中國工程院院士吳建平:DNS 根服務器不是互聯網的核按鈕!
-
ZDNS 毛偉:互聯網根并不能讓中國斷網,更應重視企業域名服務風險
總結
以上是生活随笔為你收集整理的美国如果把根域名服务器封了,中国会从网络上消失?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 能够带动气氛的互动(带动气氛的互动小游戏
- 下一篇: ps启动界面是谁画的啊?