iT邦幫忙

2023 iThome 鐵人賽

DAY 17
0
自我挑戰組

為了成為更好的前端,我開始在乎的那些事系列 第 17

[Day 17] 網路常識 - (3) 什麼是 DNS? 跟前端有什麼關係? - DNS resolver

  • 分享至 

  • xImage
  •  

今天一樣繼續介紹 DNS,我將介紹:

  • DNS resolver 的運作流程
  • 如何優化 DNS 請求
  • 前端部署 & DNS

 

DNS resolver (Resolving Name Server)

當 local 端的 Browser 和 OS 都沒有對應的 DNS cache 時,我們就會請求本地的 DNS resolver (或 Resolving Name Server) 來幫我們找到 Domain name 對應的 IP address

整體流程圖如下:
https://ithelp.ithome.com.tw/upload/images/20231002/20148944vMeBBpbYd3.png
(圖片來源:https://www.youtube.com/watch?v=27r4Bzuj5NQ)

 

大致上的流程為

  1. 找尋本地的 cache
  2. 向 DNS resolver 發出請求,幫我們做 DNS query
  3. DNS resolver 詢問 Root Name Server,找到對應的 TLD Server
  4. DNS resolver 詢問 TLD Server,找到對應的 Authoritative Name Server
  5. DNS resolver 詢問 Authoritative Server,找到對應的 IP address

 

而 DNS resolver 通常由以下兩者所提供:

  • ISP (Internet Service Provider)
  • DNS Provider (e.g. Google DNS<8.8.8.8>, Cloudfare<1.1.1.1>)

https://ithelp.ithome.com.tw/upload/images/20231002/20148944mXgfTc1aLt.png
(圖片來源:https://www.youtube.com/watch?v=27r4Bzuj5NQ)

下面我們會以查找 www.bensonchen.com 為例

 

Root Name Server

在查找 www.bensonchen.com 時,實際上,我們輸入的資訊是 www.bensonchen.com. 或是 www.bensonchen.com.root

最後面的 ..root 的部分,就會幫我們去跟 root name server 做請求,請此 server 幫我們找到下一階段,也就是 .com 的 TLD servers,.com 的 TLD servers 清單如下:

https://ithelp.ithome.com.tw/upload/images/20231002/20148944KoN7Kxxbkc.png

 

TLD (Top Level Domain) Server

TLD(Top-Level Domain,頂級域名)是指域名系統(DNS)中的最高級別域名。它們是域名的最後一部分,例如 .com.org.net 等。根據其性質和目的,TLD 可以分為以下幾類:

  1. gTLD (Generic Top-Level Domains, 通用頂級域名):
    gTLD 是開放給所有人註冊的,並且通常沒有特定的使用限制。例如,.com.org.net 是最常見的 gTLD。近年來,隨著新的 gTLD(如 .app.blog.guru 等)的推出,gTLD 的範疇也得到了擴展

  2. ccTLD (Country Code Top-Level Domains, 國家代碼頂級域名):
    ccTLD 是代表特定國家或地區的頂級域名,例如 .uk 代表英國,.cn 代表中國,.jp 代表日本。ccTLD 通常由相應國家或地區的域名註冊機構管理,並可能有特定的註冊和使用要求

  3. sTLD (Sponsored Top-Level Domains, 贊助頂級域名):
    sTLD 是由特定社群或組織贊助和管理的頂級域名。例如,.gov 是由美國政府贊助的,專供政府機構使用;.edu 是專供教育機構使用的

主要區別在於 gTLD 是通用的,通常沒有特定的地理或組織限制,而 ccTLD 和 sTLD 則通常與特定的國家、地區或組織相關,可能有更多的註冊和使用限制。近年來,隨著新的 gTLD 的推出,頂級域名的範疇和多樣性得到了擴展,讓用戶有更多選擇來選擇最符合他們需求的域名

.com 的部分,就會幫我們去跟 TLD servers 做請求,請這些 servers 幫我們找到下一階段的 Authoritative Name Server,也就是 .bensonchen.com 的 name server

 

Authoritative Name Server

這部分會幫我們找到最後的 IP address,且我們在設定 A record 或 CNAME 時(後續在 CDN 的部分會再詳細說明),就是在設定 Authoritative Name Server,幫助我們將 bensonchen.com 指到對應的 IP address,並回傳給我們的本地電腦

 

針對於 DNS 整體的 resolve 過程如圖所示:
https://ithelp.ithome.com.tw/upload/images/20231002/20148944FhJndag8C2.png

 
https://ithelp.ithome.com.tw/upload/images/20231002/201489440yxTrhsofi.png

以上就是 DNS 運作的原理,希望對大家有更進一步的了解~

/images/emoticon/emoticon37.gif

 

今天小結

  1. ..root 的部分會幫我們去跟 Root Name Server 做請求,找到對應的 TLD Server
  2. TLD 分為 3 種,通用的 gTLD (.com, .org)、區域性的 ccTLD(.uk, .,jp)、特定社群/組織的 sTLD(.gov, .edu),TLD Server 可以幫我們找到對應的 Authoritative Name Server
  3. Authoritative Name Server 可以幫我們找到最後目標的 IP address,同時也是我們在設定 A Record 和 CNAME 的部分

 
 

參考資訊


上一篇
[Day 16] 網路常識 - (2) 什麼是 DNS? 跟前端有什麼關係? - 網路世界 & 本地 DNS cache
下一篇
[Day 18] 網路常識 - (4) 什麼是 DNS? 跟前端有什麼關係? - DNS 在前端的應用
系列文
為了成為更好的前端,我開始在乎的那些事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言