如果美國封了DNS,俄羅斯將從網(wǎng)絡(luò)消失?
俄烏戰(zhàn)爭還在持續(xù),網(wǎng)絡(luò)中的戰(zhàn)爭也同樣在上演著。
從最近幾天的微博熱搜就能看出,輿論陣地是何等的重要,一張圖、一個視頻、一段文字就能把人帶跑偏,可見保持獨(dú)立思考和判斷的能力多么難能可貴。
網(wǎng)絡(luò)陣地如此之重要,大家有沒有想過一個問題:美國那么愛制裁,互聯(lián)網(wǎng)是美國人發(fā)明的,如果美國制裁俄羅斯互聯(lián)網(wǎng),把根域名服務(wù)器封了,俄羅斯是否就從互聯(lián)網(wǎng)消失了?

美國會不會干出這事兒我不知道,咱們就從技術(shù)上來分析一下,通過封禁根服務(wù)器,能不能實(shí)現(xiàn)將一個國家從互聯(lián)網(wǎng)消失。
要回答這個問題,需要了解一些互聯(lián)網(wǎng)工作的基本常識。
我們平時上網(wǎng),其本質(zhì)就是用你手里的客戶端軟件(比如微博、抖音、微信、瀏覽器等等)去訪問它們背后的服務(wù)器(微博服務(wù)器、抖音服務(wù)器、微信服務(wù)器、其他網(wǎng)站的服務(wù)器等等),請求數(shù)據(jù)然后呈現(xiàn)給你。
那如何訪問呢?
這些服務(wù)器都有屬于它們的IP地址,這是一個在互聯(lián)網(wǎng)中使用的身份標(biāo)識號碼,憑借這個數(shù)字,我們手機(jī)和電腦發(fā)出的網(wǎng)絡(luò)數(shù)據(jù)包就能被網(wǎng)絡(luò)中的“快遞系統(tǒng)”不斷轉(zhuǎn)發(fā),最終投遞到目標(biāo)服務(wù)器。

但這些號碼數(shù)字對我們?nèi)祟悂碚f沒那么好記憶,所以,人們發(fā)明了域名這個東西。
www.baidu.com,這就是百度的域名。
這個東西可比數(shù)字好記多了!
但互聯(lián)網(wǎng)的協(xié)議是用IP地址進(jìn)行身份識別的,現(xiàn)在搞了這么個域名,怎么用起來呢?
計算機(jī)科學(xué)家們又搞了一個翻譯系統(tǒng)出來:域名解析系統(tǒng)DNS。
在訪問真正的服務(wù)器之前,先通過這個解析系統(tǒng),把這個域名“翻譯”成對應(yīng)的IP地址,拿到這個IP地址后,再去進(jìn)行后面的網(wǎng)絡(luò)訪問。

當(dāng)然,這個過程都被現(xiàn)在的軟件自動化的進(jìn)行了,比如你在瀏覽器里輸入www.baidu.com之后按下回車,瀏覽器自動完成了這個解析的過程,這對我們普通的用戶來說是透明的(看不見的)。
那么問題來了,這個負(fù)責(zé)域名解析的東西是什么樣的?
它是一臺服務(wù)器嗎?它位于哪個地方呢?
首先,它不是一臺服務(wù)器,萬一崩了,那全世界都上不了網(wǎng)了。
其次,它也不是一個簡單的多點(diǎn)集群,全世界的網(wǎng)站這么多,每個節(jié)點(diǎn)要存儲所有的域名——IP映射關(guān)系,那也是不切實(shí)際的。
事實(shí)上,真正的域名解析系統(tǒng)它是一個分層級的龐大系統(tǒng)。
本地DNS服務(wù)器
權(quán)威域名服務(wù)器
頂級域名服務(wù)器
根域名服務(wù)器
我們每個電腦和手機(jī)里面都設(shè)置了本地DNS服務(wù)器(簡稱LDNS),需要解析域名的時候,就向LDNS發(fā)出請求。
大家可以在自己的電腦上執(zhí)行nslookup或ipconfig命令,查看自己電腦上配置的DNS服務(wù)器地址是什么:

我們以www.example.com這個域名為例,來看一下DNS的解析過程。
你的電腦問LDNS:www.example.com的IP是什么?
LDNS:查無此域名,問一下根服務(wù)器看看:www.example.com的IP是什么?
根服務(wù)器:我可是十三大長老,哪管這些。你去問負(fù)責(zé).com域名解析的頂級域名服務(wù)器吧,它肯定知道。
LDNS問.com頂級域名服務(wù)器:大佬,www.example.com的IP是什么?
.com頂級域名服務(wù)器:這我也不知道,你問問ns.example.com看看,它負(fù)責(zé)解析所有example.com下面的域名。
LDNS問ns.example.com:大佬,www.example.com的IP是什么?
ns.example.com:這我知道,是xxx.xxx.xx.xxx
LDNS:謝謝大佬
LDNS回復(fù)你的電腦:查到了,是xxx.xxx.xx.xxx,可累死我了···
整個過程大概是下面這圖所示,不過需要說明的是,并不是每一次DNS請求都會經(jīng)歷這樣的過程,有些時候中間節(jié)點(diǎn)有緩存,路徑就會變得不一樣了。

由此可見,根域名解析服務(wù)器在整個過程中扮演的角色至關(guān)重要。
那么,問題又來了,全世界有多少根DNS?
答案是13個,其中10個在美國,英國和瑞典各1個,日本1個。
這13個根的名字和IP在這里可以公開查閱:
https://www.internic.net/domain/named.root

他們的名字從A.root-servers.net到M.root-servers.net。
其中,A開頭那個是主根,其他12個(B、C、D、E、F、G、H、I、J、K、L、M)是輔根。
但是需要注意的是,這里說的13個,并非真的只有13臺物理機(jī)器,全球的互聯(lián)網(wǎng)如果都只靠這十三臺計算機(jī)維系,那風(fēng)險還是很大的。
在邏輯上,根確實(shí)只有13個,但每個根都有鏡像啊!
所以,根服務(wù)器實(shí)際上總共有1518個(截止2022-02-27)之多,在下面這個網(wǎng)站,你可以看到全球所有的根服務(wù)器分布情況:
https://root-servers.org/

從A到M,每一個根服務(wù)器背后都有許多鏡像節(jié)點(diǎn),分布在全球不同的地方。
下面是我們中國所擁有的根鏡像服務(wù)器:

單是北京,就擁有8個節(jié)點(diǎn)。

再次注意,根服務(wù)器的IP只有13個,但是卻有一千多個物理服務(wù)器節(jié)點(diǎn)。
那這是怎么辦到的呢?這里用到了一個叫“任播”的網(wǎng)絡(luò)技術(shù)。簡單理解就是:可以讓世界上不同的多臺計算機(jī),擁有同一個IP地址。
注意,這里的IP地址是公網(wǎng)地址,如果是私有地址那沒啥討論的。
小伙伴兒們可能一臉問號了,具體在網(wǎng)絡(luò)路由的時候,具體選擇哪一臺計算機(jī)呢?
我國境內(nèi)發(fā)出的對根DNS的請求,基本上都由國內(nèi)的鏡像完成了,并沒有路由到國外的根服務(wù)器上去。
注意這一點(diǎn),非常重要!
這么多臺根服務(wù)器,它們是如何協(xié)同工作的呢?
簡單來說:所有的輔根從主根同步數(shù)據(jù),而所有的鏡像從對應(yīng)的根服務(wù)器來同步數(shù)據(jù)。
按照這個邏輯,A根就是超級大boss,只要它改了,其他一千多個節(jié)點(diǎn)都得跟著改。
那么,如果某一天美國把A根中關(guān)于.cn的相關(guān)信息全部刪掉,那全世界的根服務(wù)器都會跟著刪掉,那中國將從互聯(lián)網(wǎng)消失嗎?
這個時候,建設(shè)自主可控的根鏡像服務(wù)器的重要性就體現(xiàn)出來了。
服務(wù)器在我這兒,我不同步刪除的內(nèi)容,或者同步完加上刪除的內(nèi)容,就能破解這個問題!
因?yàn)榍懊娼淮耍瑖鴥?nèi)對根DNS的請求,基本都是國內(nèi)鏡像完成的,并沒有路由出去。
當(dāng)然,其他國家的根鏡像我們控制不了,他們可能無法訪問.cn的域名,但只要他們想要訪問,就會加回去,并拒絕同步美國刪除的內(nèi)容,如此一來,最后只有美國人自己訪問不了.cn的域名。
同樣的道理也適用于俄羅斯,在root-servers網(wǎng)站上,也可以看到俄羅斯同樣建設(shè)了許多的根鏡像服務(wù)器,比如首都莫斯科:

他們同樣可以拒絕同步刪除俄羅斯的國家域名.ru的解析信息。
所以,想通過封禁根域名解析服務(wù)讓一個國家從互聯(lián)網(wǎng)消失,沒那么容易。
但如果是一個沒有建設(shè)根鏡像服務(wù)器的國家呢?
有道無術(shù),術(shù)可成;有術(shù)無道,止于術(shù)
歡迎大家關(guān)注Java之道公眾號
好文章,我在看??
