當前位置:
首頁 > 園藝 > 全球13台DNS根伺服器,美國有10台,對我們有多大影響?

全球13台DNS根伺服器,美國有10台,對我們有多大影響?

我們經常會聽到這樣一句話:

「全世界只有13台(這13台根域名伺服器名字分別為「A」至「M」),1個為主根伺服器在美國。其餘12個均為輔根伺服器,其中9個在美國,歐洲2個,位於英國和瑞典,亞洲1個位於日本。」

事實真的是這樣的么?

在談論這個問題之前,我想先說一點,13台根伺服器並不是物理上的13台,而是邏輯上的13台,這也就是說,每一台邏輯上的根伺服器由多台物理上的根伺服器構成;

我們再來看下為何我們在邏輯上只有13台呢?

首先我們來看下什麼是根域名伺服器?

根域名伺服器是域名解析系統(DNS)中最為頂級的域名伺服器,它們負責管理頂級域的權威域名伺服器地址。作為互聯網基礎設施的重要部分,所有域名的解析操作均離不開它們。

下面我們將從 DNS 協議實現的角度分析為什麼全球只有13組根域名伺服器。

13組根域名伺服器的信息

其中,13組根域名伺服器以英文字母 a 到 m 順序命名,域名格式為「a~m.root-servers.net」,如「b.root-servers.net」。

DNS 數據包的大小限制

我們知道 DNS 協議是應用層協議,大多數情況下依賴傳輸層的 UDP 協議進行數據的傳輸(僅在重試的情況下可能使用 TCP 協議)。根據RFC 791規定,未保證 UDP 數據包傳輸成功率,盡量數據包控制在 571 位元組以使數據包不會被分片傳輸。

除去 UDP 數據包自身包頭佔用的位元組數,DNS 數據包被設計為不超過512位元組。

DNS 協議格式

下面我們從根域名解析的返回數據包截圖:

我們假設根域名由 N 組,計算數據包各部分位元組佔用的情況如下:

Header 部分佔用12個位元組,包括 Transaction ID (2位元組),Flags (2位元組),Questions (2位元組),Answer RRs (2位元組),Authority RRs (2位元組),Additional RRs (2位元組);

Question Section 部分佔用5個位元組,包括根標籤(1位元組),Class (2位元組,基本取值都是IN),查詢類型(2位元組);

Answer Section 部分佔用的位元組數為所有記錄位元組數之和,每條記錄包括根標籤(1位元組),TTL (4位元組),Class (2位元組,基本取值都是IN),查詢類型(2位元組),域名存儲佔用的位元組數;因為域名在 DNS 解析協議當中按照長度(2位元組) 數據的形式存儲,其中數據部分是分段存儲的,存儲格式如下所示,所以第一條記錄的域名存儲佔用22個位元組,繼而第一條記錄總共佔用31個位元組;

而從第二條記錄開始,因為記錄中出現的域名存在部分內容與第一條記錄重複,即「root-servers.net」部分,這部分可以利用 DNS 指針壓縮存儲,只需要存儲2個位元組的指針,指向第一條記錄出現的部分,而不需要存儲實際的內容,所以第二條記錄~N條記錄佔用的位元組數分別為11 4=15個位元組;

Additional Section 部分佔用的位元組數為所有記錄位元組數之和,每條記錄包括域名,TTL (4位元組),Class (2位元組,基本取值都是IN),查詢類型(2位元組),IP 地址(2位元組長度 4位元組內容);因為 Additional Section 記錄的域名都在 Answer Section 中出現過,所以這部分都可以利用 DNS 指針壓縮存儲,只需要存儲2個位元組的指針即可表示對應的域名,所以Additional Section 部分的記錄佔用的位元組數為2 4 2 2 6=16個位元組;

綜上所述

數據包總長度為12 5 (31 (15(N-1)) 16N,再根據前述 DNS 大小限制不超過512位元組的要求,可以得 N 不超過15組,再加上早期設計的時候考慮到預留一些 buffer 於是就有了現在全球13組根域名伺服器的結果。

真實物理的域名伺服器分布

截至2018年9月11日,全球一共分布了937台根域名伺服器,具體分布情況可以直接在根域名服務官網(root-servers.org)直接查到。

可以看到,其實包含港澳台,中國一共也分布有17台根域名伺服器。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!


請您繼續閱讀更多來自 雨哥到處跑 的精彩文章:

養綠蘿文竹,冬季澆對水,嫩芽也能呼呼長,茂盛如春夏
中國護照含金量高,14國免簽、42個國和地區單方面落地簽