iT邦幫忙

2025 iThome 鐵人賽

DAY 13
0
Modern Web

30天一起搞懂Web觀念系列 第 13

[DAY13] DNS是什麼?

  • 分享至 

  • xImage
  •  

DNS是什麼?

當你在瀏覽器輸入 www.cht.com.tw 時,電腦並不知道這串文字在哪台伺服器,而是需要透過一套系統,把它轉換成精確的 IP 位址(例如 203.72.0.14)。這套系統就是 DNS(Domain Name System,網域名稱系統)

就像 Google Maps 可以讓你輸入「信義路五段 7 號」並找到它的經緯度,DNS 讓你輸入好記的網址,就能找到真正的 IP 位址,讓資料能準確送達


DNS 的任務與運作方式

  • 核心任務
    • 把好記的網址(FQDN)轉成難記的 IP 位址(Domain → IP)
    • 或反向查詢,把 IP 位址轉成對應的網域名稱(IP → Domain)
  • 傳輸協定
    • 採用 UDP(大部分情況),因為效率高、速度快

Note :

  • FQDN(Fully Qualified Domain Name)
    • 完整網域名稱,包含主機名與所有網域層級,最後以 . 結尾
      • 範例:www.cht.com.tw.
  • PQDN(Partially Qualified Domain Name)
    • 部分網域名稱,最後沒有 .,如 www.cht.com.tw
  • URL(Uniform Resource Locator)
    • 網址,除了網域名稱外,還包含通訊協定(http/https)、路徑等資訊

https://ithelp.ithome.com.tw/upload/images/20250816/20177952BT926o7NeF.png

圖片來源:https://www.cadiis.com.tw/blog/what-is-url


DNS 的基本架構

DNS 採用樹狀階層結構,每個節點(Zone)由不同的 DNS 伺服器負責:

  1. 根網域(Root Domain)
    • 位於層級最上方,記作 .(一般輸入網址時會省略)
  2. 頂層網域(TLD, Top Level Domain)
    • 通用頂層網域(gTLD):com、org、net、edu、gov…
    • 國碼頂層網域(ccTLD):tw、cn、jp、uk…
  3. 第二層網域(SLD, Second Level Domain)
    • 例如 google.com.tw 中的 google
  4. 主機(Host)
    • 例如 wwwmail,由網域管理者自行命名

https://ithelp.ithome.com.tw/upload/images/20250816/20177952STvqsnHQSv.png


DNS 伺服器

  • 主要DNS(Primary)
    • 唯一能修改該區域(Zone)的正式資料庫
    • 負責註冊 FQDN、提供查詢、維護 Zone File
  • 次要DNS(Secondary)
    • 主伺服器的備份,提供容錯與負載平衡
  • 快取伺服器(Caching)
    • 不保存完整 Zone,透過暫存提高查詢效率

DNS Zone

DNS Zone 是一個 DNS 伺服器所管理的責任範圍,裡面包含該區域的所有網域名稱與對應的資源紀錄(Resource Records)

可以想像整個 DNS 系統像一個大城市,而 Zone 就像「行政區」,每個行政區有自己的市公所(主要DNS),負責保管自己的地圖與地址資料,而不需要知道別的區的所有詳細資料,只要知道去哪裡查就好

  • 一個 Zone ≠ 一個網域

    • Zone 可以涵蓋一個完整網域,也可以只管理其中一部分
    • 例如:example.com 的主 DNS 可能只管理 www.example.com,而 mail.example.com 交由另一台伺服器管理
  • Zone File(區域檔)

    • 儲存該區域所有的資源紀錄

    例如:

紀錄類型 英文名稱 用途 範例
A Address Record 將網域名稱對應到 IPv4 位址 www.example.com → 93.184.216.34
AAAA IPv6 Address Record 將網域名稱對應到 IPv6 位址 www.example.com → 2606:2800:220:1:248:1893:25c8:1946
CNAME Canonical Name Record 為一個網域建立別名,指向另一個正式名稱 blog.example.com → www.example.com
MX Mail Exchange Record 指定該網域的郵件伺服器位置(收發信) example.com → mail.example.com
NS Name Server Record 指定該網域由哪些名稱伺服器管理 example.com → ns1.example.comns2.example.com
  • 只有該 Zone 的主要DNS可以修改

  • 為什麼要分 Zone

    1. 分散負載,避免所有查詢集中到單一伺服器
    2. 提高容錯性,某個區域的伺服器掛掉,不會影響整個網域
    3. 方便管理,不同子網域可以由不同團隊或單位維護

DNS 查詢流程

  1. 使用者輸入網址,瀏覽器先問本地的 DNS Resolver(解析器)。
  2. 如果快取有紀錄,就直接回覆。
  3. 沒有的話,DNS 伺服器會逐層向上詢問
    • 從本地 DNS → 根伺服器 → TLD 伺服器 → 權威名稱伺服器
  4. 找到 IP 後,回傳給使用者,並存入快取,方便下次使用

這個圖很詳細

圖片來源:https://emmielin.medium.com/dns-查詢流程概念筆記-3a420460d396


參考資料

https://www.cloudflare.com/zh-tw/learning/dns/glossary/dns-zone/

https://www.cloudflare.com/zh-tw/learning/dns/glossary/primary-secondary-dns/

https://emmielin.medium.com/dns-查詢流程概念筆記-3a420460d396

之前電腦網路課的筆記


上一篇
[DAY12] HTTPS 為什麼安全?
下一篇
[DAY14] 反向代理是什麼?
系列文
30天一起搞懂Web觀念30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言