一文看懂DNS及其運作原理

2023.12.22

Labs 導讀

想像一下你的智慧型手機聯絡人名單,就像是整個地球上的人的名字和聯絡人清單。每當你想要打電話或傳簡訊給某人時,你只需要在聯絡人名單中找到他們的名字,而不必記住他們的電話號碼或電子郵件地址。這就像是一個巨大的電話簿,讓你輕鬆找到並與世界上的任何人進行交流。

類似地,網路上的每個裝置都有一個獨特的識別號碼,稱為IP位址。當你在瀏覽器中鍵入網址訪問網站時,電腦需要知道該網址對應的IP位址,就像你需要知道某人的電話號碼才能聯絡他一樣。DNS就像是網路上的龐大聯絡人名單,它把易於記憶的網域名稱(例如www.example.com)與對應的IP位址進行匹配,從而使你能夠輕鬆地訪問網站,發送電子郵件等。所以,儘管你可能不了解DNS的技術細節,但每天在網路上的各種活動中,你都在使用它來使得不同設備能夠互相溝通。

Part 01、DNS簡史 

- ARPANET時代(1960s-1980s):早期的網際網路並沒有一個全球的網域名稱系統,而是使用主機名稱(hostname)來辨識網路上的電腦。這些主機名稱儲存在一個稱為"hosts.txt"的文字檔案中,該檔案由網路管理員手動維護。

- DNS的建立(1983):隨著網際網路的成長,需要更有效的方法來管理和尋找主機名稱與IP位址之間的對應關係。1983年,Paul Mockapetris和Jon Postel開始開發DNS。他們發布了RFC882和RFC883,其中詳細說明了DNS的設計。

- DNS的層次結構(1980s-1990s):DNS被設計成一個層次結構系統,由多個網域名稱伺服器組成,每個伺服器負責管理特定區域內的網域名稱和IP位址對應。根網域伺服器位於頂層,下面是頂級網域名稱伺服器(TLD),然後是權威網域名稱伺服器和快取網域伺服器。

- 商業化與成長(1990s-2000s):隨著網路的商業化,網域的註冊數量急劇增加,導致DNS系統面臨壓力。為了滿足需求,網域註冊機構和託管服務商開始提供網域註冊和管理服務。

- DNSSEC的引入(2000s):為了提高DNS安全性,DNSSEC(Domain Name System Security Extensions)被引入。它透過數位簽章機制確保網域解析的完整性和真實性,防止DNS劫持和快取投毒等攻擊。

- 新頂級域名的推出(2010s):ICANN(互聯網名稱與數字地址分配機構)開始批准新的頂級域名,如".app"、".blog" 等,豐富了互聯網域名的多樣性。

- IPv6和DNS64/NAT64(2010s):隨著IPv6的推出,DNS也需要適應新的IP位址格式。DNS64/NAT64技術允許IPv6和IPv4之間的通信,使得IPv6網路可以存取IPv4網路上的資源。

- 持續的發展(至今):DNS仍在不斷演進,以適應新的網路需求和安全挑戰。隨著雲端運算、物聯網等新興技術的發展,DNS在網路生態中扮演的角色變得越來越重要。

Part 02、DNS是如何運作的

DNS使用分層、分散的結構來管理網域名稱與IP位址的對應關係。它透過遞歸和迭代查詢過程,使得在互聯網上輕鬆地使用人類可讀的網域來存取各種網路資源。這個系統的設計使得整個互聯網能夠更有效率地工作,同時也帶來了更好的靈活性和可擴展性,它的工作原理涉及多個層次的網域伺服器以及查詢和回應的過程。

(一)網域名稱伺服器的分類

網域伺服器可以根據其角色和層級劃分為以下四種不同類型:

(1)根網域名稱伺服器(Root Name Servers)

根網域名稱伺服器位於DNS層次結構的最高層,共有13個不同IP位址的根網域名稱伺服器分佈在全球各地。它們保存了頂級網域伺服器的訊息,負責管理頂級網域名稱(如.com、.org、.net等)的網域伺服器的IP位址。當本地網域名稱伺服器收到查詢要求時,如果需要查詢頂級網域名稱伺服器的IP位址,它會向根網域名稱伺服器發起查詢,以取得對應的頂級網域名稱伺服器位址。

(2)頂級網域名稱伺服器(Top-Level Domain Servers)

頂級網域伺服器負責管理特定頂級網域(如.com、.org、.net等)下的網域名稱和其子網域的對應。例如,.com頂級網域伺服器會儲存所有使用.com網域結尾的網域名稱對應資訊。當本地網域名稱伺服器向根網域名稱伺服器查詢後,如果需要查詢特定頂級網域的IP位址,它會要求對應的頂級網域伺服器,以取得下一步的指引。

(3)權限網域名稱伺服器(Authoritative Name Servers) 

權威網域名稱伺服器是每個特定網域的「官方」網域名稱伺服器,它們儲存著該網域名稱與IP位址的對應資訊。當本地網域名稱伺服器需要解析特定網域名稱時,它會向該網域的權威網域名稱伺服器發送查詢請求。這些伺服器能夠提供確切的映射訊息,或指示更低級別的網域伺服器進行進一步的查詢。

(4)本地網域名稱伺服器(Local Name Servers)

本地網域名稱伺服器位於使用者的本地網路中,通常由網路服務供應商(ISP)提供。當使用者發起網域名稱查詢請求時,本地網域名稱伺服器首先被聯絡。如果本地網域名稱伺服器已經快取了相應的映射訊息,它會直接傳回結果。否則,它會根據查詢的網域層級結構,透過遞歸查詢或迭代查詢的方式,向根網域伺服器、頂級網域名稱伺服器和權限網域伺服器發起查詢,以取得所需的對應資訊。


(二)DNS域名解析過程

網域解析包含兩種查詢方式,分別是遞歸查詢和迭代查詢。

(1)遞迴查詢

客戶端將查詢請求傳送給遞迴DNS伺服器,伺服器必須傳回結果,不能簡單把請求轉送給其他伺服器。如果遞歸伺服器不能解析,它會向其他DNS伺服器迭代查詢,直到取得結果,然後再傳回給客戶端。整個過程對客戶端透明,本地伺服器負載重,但查詢快。

(2)迭代查詢

在整個迭代查詢過程中,本地網域名稱伺服器逐級向上查詢,然後逐級向下查詢,直到獲得所需的IP位址。這種查詢模式確保了每一步查詢都是逐級完成的,並保持了資料的一致性和正確性。同時,每個查詢環節都可以被緩存,以提高查詢效率,並減輕DNS伺服器的負擔。

圖片

①本地域名伺服器啟動查詢:當使用者在瀏覽器中輸入域名,本地域名伺服器(通常由互聯網服務供應商提供)被觸發進行域名解析。

②本地網域名稱伺服器向根網域名稱伺服器發起查詢:本機網域名稱伺服器向一個根網域名稱伺服器發起查詢請求,該請求包含了所需解析的網域名稱。

③根網域名稱伺服器的回應:根網域名稱伺服器不會直接提供所需的IP位址,而是回覆給本地網域名稱伺服器一個指向頂級網域名稱伺服器的IP位址。這個頂級網域伺服器與所查詢網域的頂級網域相關聯,例如".com"、".org"等。

④本地網域名稱伺服器向頂級網域名稱伺服器發起查詢:本地網域名稱伺服器向已取得的頂級網域名稱伺服器發起新的查詢請求,繼續請求所需的網域名稱對應。

⑤頂級網域名稱伺服器的回應:頂級網域名稱伺服器回覆給本地網域名稱伺服器一個指向權限網域名稱伺服器的IP位址。這個權限網域伺服器是負責管理特定網域的官方伺服器,可以提供確切的對應資訊。

⑥本地網域名稱伺服器向權限網域名稱伺服器發起查詢:本地網域名稱伺服器向已取得的權限網域名稱伺服器發起新的查詢請求,請求所需網域名稱的IP位址。

⑦權限網域名稱伺服器的回應:權威網域名稱伺服器回覆給本地網域名稱伺服器查詢所需網域的IP位址。

⑧本地網域名稱伺服器傳回結果:本地網域名稱伺服器將取得的IP位址傳回給使用者的計算機,使其可以建立與目標伺服器的連接,從而實現對網站或資源的存取。

Part 03、DNS安全

DNS作為網際網路的關鍵基礎設施,其安全性直接影響整個網路的穩定運作。然而DNS系統也面臨各種威脅,主要包括:

  • DDoS攻擊:透過流量等級拒絕服務攻擊耗盡DNS伺服器資源
  • 網域名稱劫持:惡意綁定網域名稱至攻擊者控制的IP位址
  • DNS投毒/緩存污染:透過植入錯誤的DNS記錄進行網路釣魚、傳播惡意軟體等

為增強DNS的安全性,業界採取了各種技術手段來防護

  • DNSSEC提供數位簽名,防止解析記錄被竄改
  • Anycast和多網域伺服器避免單點故障
  • 遞歸DNS伺服器過濾惡意查詢保護用戶
  • DNS over HTTPS加密傳輸保障查詢隱私與安全性等

針對DNS面臨的安全威脅,我們為使用者提供了全方位的安全防護:

  • 支援DNS over HTTPS傳輸加密,防竊聽
  • 任播技術和多節點部署,保證服務高可用性
  • 基於大數據分析的威脅情報,偵測和防禦攻擊
  • 智慧解析和過濾機制,攔截惡意網站保護用戶

透過綜合應用各技術手段,中國行動安全DNS服務可有效抵禦常見威脅,保障用戶的查詢安全與體驗。

Part 04、總結展望

DNS作為互聯網的數位電話簿,其發展歷史反映了互聯網技術和治理模式的演變,而它獨特的層次樹狀結構也使DNS成為一個高效可靠的核心服務。面向未來,DNS將面臨來自新興網路的挑戰,其安全性和效能仍有改進空間。新技術如區塊鏈、人工智慧等也可以應用到未來的DNS系統中,以增強其功能。隨著5G時代的到來,DNS將扮演更重要的角色,支撐超大規模的網路連線。在多利害關係人的共同努力下,DNS必將持續進化,並持續推動網路科技的發展。