揭秘互聯網背後的神秘導航,DNS功能變數名稱解析

2024.11.03


網路
本文旨在深入探討 DNS 的核心概念、運作機制以及其對於維護互聯網高效運轉不可或缺的重要性。

在互聯網這一龐大的信息體系中,DNS(功能變數名稱系統)扮演著至關稱職的導航角色,它猶如一張精密的地圖,指引用戶準確無誤地訪問到目標網站。

本文旨在深入探討DNS的核心概念、運作機制以及其對於維護互聯網高效運轉不可或缺的重要性。

下面這張圖清楚地展示了DNS功能變數名稱解析的整個過程。

什麼是DNS

DNS(功能變數名稱系統)是互聯網的核心組成部分,負責將易於記憶的功能變數名稱(如 www.baidu.com)轉換為計算機能夠理解的IP位址(如39.156.66.10)。 這個系統通過分散式的資料庫和多層次的查詢機制,使用戶能夠方便地訪問網站和其他網路資源,確保互聯網的正常運行和高效導航。 DNS運行於UDP協定之上,使用的埠為53.

功能變數名稱結構解析

如上圖所示,功能變數名稱系統採用層次化的樹狀結構。 最頂端是根伺服器,下面是頂級域(如.com、. net和.cn等)。 大多數用戶註冊的是二級功能變數名稱(如 baidu.com),由企業及其團隊管理。 還有更深層次的子功能變數名稱,但這裡不詳細討論。 整體上,功能變數名稱體系是從全域到局部逐層細化的設計。

DNS解析流程

如上圖所示,我們將詳細闡述DNS解析流程:

  • 當您在電腦或手機的瀏覽器中輸入網址(如 http://www.kwpmp.cn)時,瀏覽器會先嘗試通過DNS解析來查找該網站的實際IP位址。 如果本地快取沒有該資訊,則會向根DNS伺服器查詢。 根伺服器會告知負責.cn功能變數名稱的伺服器位置。 這樣,就可以逐步找到 kwpmp.cn 的確切位置了。
  • 遞歸伺服器獲取到.cn的權威伺服器位址后,會詢問該權威伺服器是否知道 www.kwpmp.cn 的位置。 隨後,.cn的權威伺服器查找並返回 kwpmp.cn 伺服器的位址。
  • 繼續向 kwpmp.cn 的權威伺服器查詢這個位址,然後由 kwpmp.cn 的伺服器給出了答案:10.10.10.168。
  • 最終才能進行HTTP的連結,順利訪問網站。

遞歸伺服器一旦找到了功能變數名稱的解析記錄,就會把它保存在本地。 這樣,下次有用戶端再來查詢同一個功能變數名稱時,就不用再一步步去查找了。 因為本地伺服器已經有了緩存,可以直接把 www.kwpmp.cn 的A記錄返回給用戶端。

DNS資源記錄

Domain

TTL

Class

Type

rdata

www.kwpmp.cn

600

IN

A

10.10.10.168

當我們把一個功能變數名稱和它的相關信息關聯起來時,這叫資源記錄(RR)。 比如你查 kwpmp.cn 這個網址的時候,得到的結果裡會有這樣的資訊:

  • TTL:就是生存週期,是遞歸伺服器會在緩存中保存該資源記錄的時長。
  • 網路協定類型:它的代表的標識是IN,IN就是internet,目前DNS系統主要支援的協定是IN。
  • type:就是資源記錄類型,一般的網站都是都是A記錄(IPv4的主機位址)。
  • rdata:是資源記錄數據,就是域名關聯的信息數據。

DNS的查詢方式

DNS查詢主要採用兩種模式:遞歸查詢recursion與反覆運算查詢iteration。

遞歸查詢

當客戶端發起DNS解析請求時,如果本地DNS伺服器無法直接解析該功能變數名稱,它會代表用戶端向其他DNS伺服器進行遞歸查詢,直到找到答案並返回給用戶端。 此過程中,用戶端會一直等待回應。

反覆運算查詢

當用戶端(下級伺服器)發起DNS解析請求時,如果上級DNS伺服器無法直接提供解析結果,它會返回另一個可能知道答案的DNS伺服器的IP位址。 然後,用戶端會向這個新的DNS伺服器繼續查詢,重複此過程直至獲得最終的解析結果。

通常,PC機和本地DNS伺服器之間的查詢會用到遞歸查詢這種方式。 而當DNS伺服器之間需要互相查詢時,也經常使用遞歸查詢。 就像下面這張圖展示的一樣。

在linux如何配置DNS

在Linux中配置DNS主要通過編輯/etc/resolv.conf檔,以下是配置步驟:

(1) 編輯 /etc/resolv.conf

打開終端,使用文本編輯器(如nano或vim)編輯/etc/resolv.conf檔:

sudo nano /etc/resolv.conf
  • 1.

(2) 添加DNS伺服器

在檔案中添加DNS伺服器的位址。 常用的公共DNS伺服器有:

nameserver 8.8.8.8
nameserver 114.114.114.114
  • 1.
  • 2.

(3) 保存並退出

保存檔並退出編輯器。 如果是使用nano,可以按 Ctrl + O 保存,按 Ctrl + X 退出。

(4) 測試DNS配置

使用nslookup或dig命令測試DNS解析是否正常:

nslookup www.baidu.com.com
  • 1.

結論

DNS是互聯網不可或缺的一部分,它以高效且可靠的方式連接了使用者與網路資源。 理解DNS的工作原理,能夠幫助我們更好地管理和維護網路服務。