在Linux中,當使用者在瀏覽器當中輸入⼀個網站,計算機對dns解釋經過那些流程?

黄嘉波發表於2024-07-12

當使用者在Linux系統下的瀏覽器中輸入一個網站URL時,DNS(Domain Name System,域名系統)解析的過程大致遵循以下步驟:

  1. 本地快取檢查:

    • 瀏覽器首先檢查其自身的DNS快取中是否存在該域名的記錄。
    • 如果快取中有有效的記錄,瀏覽器可以直接使用這個IP地址訪問網站,而無需進一步的DNS查詢。
  2. 作業系統DNS快取檢查:

    • 如果瀏覽器的快取中沒有記錄,它會請求作業系統(在Linux中)的DNS快取來檢查是否有該域名的記錄。
    • Linux系統維護著自己的DNS快取,通常由systemd-resolveddnsmasq等服務管理。
  3. 查詢DNS解析器:

    • 如果作業系統快取中也沒有記錄,系統會向配置好的DNS解析器發起查詢。這個DNS解析器可能是本地網路的DNS伺服器,或者是公共DNS伺服器(如Google DNS: 8.8.8.8, Cloudflare DNS: 1.1.1.1)。
    • 查詢首先會嘗試使用遞迴查詢(recursive query),這意味著DNS解析器會負責完成整個DNS查詢過程,並將最終的IP地址返回給請求者。
  4. DNS伺服器的查詢流程:

    • DNS伺服器接收到查詢後,它也會首先檢查其本地快取。
    • 如果快取中沒有結果,DNS伺服器將開始迭代查詢(iterative query),向上級DNS伺服器(如頂級域名伺服器或根域名伺服器)查詢,直到找到負責該域名的權威DNS伺服器。
    • 這個過程可能涉及多個DNS伺服器,從根伺服器開始,然後是頂級域名伺服器(如.com, .org等),最後到達權威名稱伺服器。
  5. 權威DNS伺服器響應:

    • 當查詢到達權威DNS伺服器時,它會提供該域名的準確IP地址(A記錄或AAAA記錄)或相關的CNAME記錄。
    • 權威DNS伺服器將這個資訊返回給最初的查詢DNS伺服器。
  6. 響應返回:

    • 最初的查詢DNS伺服器收到響應後,會將這個資訊快取,並將IP地址返回給最初發起請求的作業系統或應用程式。
    • 瀏覽器收到IP地址後,將使用TCP/IP協議棧建立與網站伺服器的連線,並開始載入網頁。
  7. 快取更新:

    • 在整個過程中,每個DNS伺服器都會將查詢結果快取一段時間,以便後續相同的查詢可以直接使用快取結果,減少延遲並提高效率。

綜上所述,DNS系統幫助將人類可讀的網站域名轉換為計算機可以識別的IP地址,從而實現網際網路上的通訊。

相關文章