Skip to main content

[DNS] 2. 網路世界運作原理 & 本地 DNS cache

今天會延續 DNS 的部分,正式來解釋 DNS 如何運作,和如何優化


DNS 原理解釋

Internet 與 IP address

在解釋 DNS 前,讓我們先來簡單介紹一下網路世界怎麼溝通的

在網路的世界中,電腦是依靠數據 (digits) 來溝通的,而在網路世界,電腦透過 IP address 辨識 (identify) 對方和對方溝通

Computer communication with IP address
(圖片來源:PowerCert Animated Videos )


但在人類的世界中,我們是依靠語言來溝通的,我們透過名字來辨識對方和對方溝通

Computer communication with IP address
(圖片來源:PowerCert Animated Videos )


因此,若人要辨識電腦且與電腦溝通,為了方便性,我們希望電腦的 IP address 可以轉換成可識別的名字,也就是 domain name,而將 domain name 轉換成 IP address,就需要 DNS (Domain Name System) 幫我們做轉換



本地快取查找 (DNS local cache)

在本地,包括我們下載的 chrome 瀏覽器,和我的作業系統,都會幫我們緩存 (cache) 曾經利用 DNS 查到對應 domain 的 ip address


檢查 Browser 的 DNS cache

在瀏覽器中,輸入 chrome://net-internals#DNS ,就可以查找我們自己本地的瀏覽器,是否有 cache 該 domain 解析出的 ip address,例如,當我們查找 google.com

https://ithelp.ithome.com.tw/upload/images/20231001/201489441ogwsQ29pj.png

就會顯示

Resolved IP addresses of "google.com": ["142.250.207.14"].

對應 google.com 的 IP address 為 142.250.207.14


檢查 Operating System 的 DNS cache

在本地作業系統中,也會緩存 DNS 的查找結果,我們可以在 terminal 輸入以下指令

nslookup <your domain>

例如

nslookup google.com

就會出現以下結果 https://ithelp.ithome.com.tw/upload/images/20231001/2014894404ppcgbZ9f.png

其中最上層的部分,為本地 DNS server 的資訊:

  1. Server: 192.168.31.1: 這一行告訴你你的本地 DNS 伺服器的 IP 地址。當你的系統需要解析一個網域名稱(例如 google.com)時,它會首先聯絡這個本地 DNS 伺服器。

  2. Address: 192.168.31.1#53: 這一行再次顯示了你的本地 DNS 伺服器的 IP 地址,並附加了 #53,表示這個伺服器正在使用標準 DNS 端口 53 來接收查詢。端口 53 是 DNS 協議的標準端口。

這些信息告訴你,當你的系統需要解析網域名稱時,它會首先聯絡位於 192.168.31.1 的本地 DNS 伺服器,並通過端口 53 發送 DNS 查詢。這個本地 DNS 伺服器可能是你的路由器或你的網路提供商(ISP)提供的,它會有自己的緩存,並且可能會向其他 DNS 伺服器轉發查詢以獲得解析結果



下面的資訊,為查詢網域的 DNS lookup 結果:

  1. Non-authoritative answer: 這表示返回的答案不是來自網域名稱的授權 DNS 伺服器,而是來自某個緩存伺服器。這通常意味著你正在看到的是一個緩存的答案,它可能是在稍早前某個時間點由授權伺服器提供的

  2. Name: google.com: 這是你查詢的網域名稱

  3. Address: 142.250.207.14: 這是 google.com 網域名稱解析到的 IP 地址。當你在瀏覽器中輸入 google.com 時,你的電腦會使用這個 IP 地址來連接到 Google 的伺服器。


這個 nslookup 的結果基本上告訴你,當你試圖訪問 google.com 時,你的電腦將嘗試連接到 IP 地址 142.250.207.14。這個特定的 IP 地址可能會隨時間而變化,因為大型網站如 Google 會使用多個伺服器和 IP 地址來處理流量,並可能會基於負載均衡和其他因素而更改 DNS 解析



結論

  1. 為了利用可讀的 domain name 找到對應的 ip address,我們需要 DNS
  2. 在 local 的 Browser 和 OS 中,都可能存有 DNS result 得快取,讓我們可以快速取得 domain name

參考資訊