DNS 是什麼?DNA 的兄弟嗎?


Posted by rockyooooooo on 2021-07-01

什麼是 DNS?Google 有提供的公開的 DNS,對 Google 的好處以及對一般大眾的好處是什麼?

DNS(Domain Name System),網域名稱系統。

網域名稱(Domain Name, Domain),簡稱域名、網域

因為 IP 位址不容易記憶,所以我們通常用域名來代替,可以說域名是一個 IP 位址的別名,例如我們可以在網址列輸入 www.google.com,就可以連結到 Google 首頁,而不用記得 Google Server 的 IP 位址:172.217.27.132

網域層級

域名通常有兩個以上的部分組成,用 . 分隔,以 www.google.com 為例,最右邊的 com 是頂層網域,中間 google 是第二層網域,最左邊 www 是第三層網域

  • 根區域 - DNS 網域命名空間內的頂層網域,包含所有網際網路網域
  • 頂層網域 - 根區域的子網域,又分為一般頂層網域(如:.com, .org)及國家 / 區域代碼頂層網域(如:.tw, .us
  • 第二層網域 - 頂層網域的子網域
  • 第三層網域 - 第二層網域的子網域,依此類推

子網域的名稱會包含所屬網域的名稱,例如:www.google.comgoogle.com 的子網域,google.com.com 的子網域,而所有網域都是根網域的子網域。

IP 位址

在網路的世界裡,每個連上網路的裝置(可以是電腦、手機、印表機等等)都會有一組自己的 IP 位址,而裝置之間可以靠 IP 位址來連線。就像打電話一樣,每張 SIM 卡都會有一組電話號碼,裝到手機上就可以輸入其他的電話號碼來通話。

IP 位址通常會以 172.16.254.1 這樣一串數字的形式出現,更詳細的說,這是一組 IPv4 位址,而因為 IPv4 位址的枯竭,又出現了長得像 2001:db8:0:1234:0:567:8:1 這樣子的 IPv6 位址。

但不管是 172.16.254.1 或是 2001:db8:0:1234:0:567:8:1,人類都很難記得或是辨識,所以我們通常都是用 DNS 來連接網路的。

DNS 運作方式

DNS 的運作方式其實就像是在不斷地查電話簿,直到查到目標的電話號碼(IP 位址)。

  1. 使用者在瀏覽器的網址列輸入 www.google.com 並送出
  2. 這個請求會送到使用者的網際網路服務提供者(ISP,例如:中華電信 HiNet)的網域解析程式(DNS Resolver)
  3. ISP 的 DNS Resolver 會先檢查該網域是不是在自己的網域底下,是的話回傳結果,不是的話會再檢查自己的快取有沒有紀錄,有的話回傳結果,沒有的話向根名稱伺服器發送請求
  4. ISP 的 DNS Resolver 把請求轉送給根名稱伺服器,根名稱伺服器會回傳負責 .com 這個頂層網域的 DNS 伺服器的 IP 位址
  5. ISP 的 DNS Resolver 再把請求轉送給負責 .com 的 DNS 伺服器,得到負責 google.com 這個網域的 DNS 伺服器的 IP 位址
  6. ISP 的 DNS Resolver 再把請求轉送給負責 google.com 的 DNS 伺服器,得到負責 www.google.com 這個網域的 DNS 伺服器的 IP 位址
  7. ISP 的 DNS Resolver 再把請求轉送給負責 www.google.com 的 DNS 伺服器,該伺服器找到 www.google.com 的 IP 位址並回傳給 DNS Resolver
  8. ISP 的 DNS Resolver 把得到的 IP 位址回傳給使用者的瀏覽器,並顯示畫面

Google Public DNS

由 Google 推出的免費網域解析服務,Google 表示是為了提升網路瀏覽速度、網路使用體驗跟安全性(有這麼好的事?)。

Google Public DNS

性能優勢

當我們對某件事不清楚時,別人常常會建議你 google it

因為 Google 強大的搜尋引擎,google 已經成為了搜尋的代名詞。所以 google 搜尋引擎每天都在抓取非常多的 DNS 資訊,所以 google 可以將這些資料快取,就不用再翻電話簿了。

在影響 DNS 查詢速度的各種因素中,Google 認為 Cache misses(快取失效)是最主要的,他們提供幾點改善方案

  1. 部署足夠的 DNS 伺服器
  2. 避免阻斷服務攻擊擴大規模
  3. 有效利用負載平衡機制將 DNS 集中快取
  4. 積極地預先取得名稱解析
  5. 在全球部署 DNS 伺服器以提供服務

安全優勢

Google 是全球知名的大公司,他們的服務也在世界各地都非常多人使用,因此他們對於安全性有相對高的要求。

對於像是 Cache poisoning attacks, DoS and amplification attacks ... 等攻擊,他們也提出了幾點改善方案

(太難了啃不下去,所以直接上圖片)

疑慮

然而 Google 不可能在每個國家、每個地區都有伺服器,Google 伺服器可能會離你很遠,甚至就算你離他夠近,在 Google Public DNS 快取中的 IP 也不一定是離你最近的 IP。

而且 Google 有可能這麼佛心的提供像他們說的這麼好的服務,卻一毛錢都不像使用者收嗎?

我相信 Google 一定是看準了這樣可以蒐集使用者平常愛逛什麼網頁,來投放更多更精準的廣告🤣


#DNS







Related Posts

用 React + Redux 做一個 todo list 吧

用 React + Redux 做一個 todo list 吧

jQuery初學筆記-2

jQuery初學筆記-2

2020-06-11

2020-06-11


Comments