自從美國宣布“清潔網絡”行動后,很多懂點網絡的人,第一反應是,美國人會下手根域名服務器嗎?
這種憂慮可不是一年兩年了。
2014年6月24日的《人民日報》上引用專家發言:“目前美國掌握著全球互聯網13臺域名根服務器中的10臺。理論上,只要在根服務器上屏蔽該國家域名,就能讓這個國家的國家頂級域名網站在網絡上瞬間“消失”。在這個意義上,美國具有全球獨一無二的制網權,有能力威懾他國的網絡邊疆和網絡主權。譬如,伊拉克戰爭期間,在美國政府授意下,伊拉克頂級域名“.iq”的申請和解析工作被終止,所有網址以“.iq”為后綴的網站從互聯網蒸發。”1
《信息安全與通信保密》雜志2014年第10期的一篇文章寫道:“2004年,由于與利比亞在頂級域名管理權問題上發生爭執,美國終止了利比亞的頂級域名.LY的解析服務,導致利比亞從網絡中消失3天?!?
對此,我們需要害怕嗎?我們需要什么樣的反制措施?
不是專家,還真回答不了這個問題。
因為這需要了解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的批文中寫道:“你中心應嚴格遵守《互聯網域名管理辦法》《通信網絡安全防護管理辦法》及相關法律法規、行政規章及行業管理規定,接受我部的管理和監督檢查,建立符合我部要求的信息管理系統并與我部指定的管理系統對接,保證域名根服務器安全、可靠運行,為用戶提供安全、方便的域名服務,保障服務質量,保護用戶個人信息安全,維護國家利益和用戶權益?!?/p>
美國能對根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環境下的根服務器數量擴展、根服務器運行機構備選機制等方法來解決。
現在,了解了這么多,關于根域名服務器,你是不是放心了很多。
-
服務器
+關注
關注
12文章
9176瀏覽量
85460 -
域名
+關注
關注
0文章
72瀏覽量
11300 -
DNS
+關注
關注
0文章
218瀏覽量
19851
原文標題:美國如果把根域名服務器封了,中國會從網絡上消失?
文章出處:【微信號:TheAlgorithm,微信公眾號:算法與數據結構】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論