DNS 的基礎與應用

網路架構師專業課程 - 核心協定系列

一、核心概念 (Concept)

一句話定義

DNS (Domain Name System) 是網際網路的電話簿,負責將人類可讀的網域名稱(如 www.google.com)翻譯成機器可讀的 IP 位址(如 142.250.1.1)。

生活化比喻:手機聯絡人

想像你要打電話給媽媽。你不會去背她的 10 碼電話號碼(IP 位址),而是直接在手機通訊錄點選「媽媽」(Domain Name)。

手機通訊錄會在後台幫你找出對應的號碼並撥出。如果沒有 DNS,我們上網時就必須記住成千上萬個冰冷的 IP 數字,這是不可能的任務。

二、運作原理 (Mechanism)

技術細節與流程

  • 協定埠號 (Port): 主要使用 UDP 53 進行查詢(速度快、低開銷)。當回應封包大於 512 bytes 或進行區域傳送 (Zone Transfer) 時,會切換為 TCP 53
  • 查詢模式:
    • 遞迴查詢 (Recursive): 用戶端問 DNS Server「請直接給我答案」,Server 負責跑腿問到底。
    • 迭代查詢 (Iterative): DNS Server 回答「我不知道,但你可以去問這個 IP」,一步步引導。
  • 階層結構: Root (.) → TLD (.com) → Authoritative (example.com)。

常見 DNS 紀錄 (Records)

類型 功能描述
A 將網域對應到 IPv4 位址 (最常用)。
AAAA 將網域對應到 IPv6 位址。
CNAME 別名紀錄 (Alias),例如將 www 指向主網域。
MX 郵件交換紀錄,指定負責收信的伺服器。
NS 名稱伺服器,指定該網域由哪台 DNS 管理。

多廠商視角:設備上的 DNS 設定

網路設備本身也需要解析網域 (例如 Ping www.google.com 進行測試,或連線雲端控制器)。

ExtremeXOS (EXOS)

configure dns-client add name-server 8.8.8.8
configure dns-client add domain-suffix internal.lab

Cisco IOS

ip name-server 8.8.8.8
ip domain-name internal.lab
ip domain-lookup

三、架構視覺化 (Visuals)

字體縮放

DNS 遞迴查詢流程圖

若字體仍太小,請使用上方的「放大」按鈕,並左右滑動檢視。

sequenceDiagram autonumber participant PC as 使用者電腦 (Client) participant LDNS as Local DNS (ISP/企業) participant Root as Root DNS (.) participant TLD as TLD DNS (.com) participant Auth as Authoritative DNS (example.com) PC->>LDNS: 請問 www.example.com 的 IP 是多少? Note over PC,LDNS: 這是遞迴查詢 (Recursive) alt 快取中有資料 LDNS-->>PC: 直接回覆 IP (Cache Hit) else 快取中無資料 (開始迭代查詢) LDNS->>Root: 請問 .com 的伺服器在哪? Root-->>LDNS: 這是 .com 的 NS 伺服器 IP LDNS->>TLD: 請問 example.com 的伺服器在哪? TLD-->>LDNS: 這是 example.com 的 Auth DNS IP LDNS->>Auth: 請問 www.example.com 的 IP 是多少? Auth-->>LDNS: 它是 93.184.216.34 (A Record) LDNS-->>PC: 找到了!IP 是 93.184.216.34 Note over LDNS: LDNS 會將結果快取 (Cache) 下來 end

四、實務應用場景 (Use Case)

情境:Split-Horizon DNS (分割 DNS)

需求: 某企業擁有一個 ERP 系統網址 `erp.company.com`。

  • 內部員工: 在公司內網時,解析該網址應得到內網私有 IP (如 192.168.10.5),以確保速度與安全,不經過防火牆 NAT。
  • 外部業務/客戶: 在外面用 4G 或家裡網路時,解析該網址應得到外網公有 IP (如 203.0.113.5),透過防火牆 VPN 或 Port Forwarding 進入。

解決方案

架設兩套 DNS View 或使用支援 Split-DNS 的防火牆/AD。根據來源 IP 的不同,回覆不同的 A Record 結果。

優缺點分析

優點 (Pros)
  • 安全性: 內部架構細節(私有 IP)不會暴露給公網。
  • 效能: 內網流量直接走 Switch 交換,不繞道防火牆 NAT。
  • 使用者體驗: 網址一致,使用者不需要記兩個不同的連結。
缺點 (Cons)
  • 管理複雜度: 需維護兩份 Zone Files,容易發生內外不同步的人為疏失。
  • 除錯困難: 當連線失敗時,需先釐清使用者當下位於內網還是外網。

五、隨堂測驗 (Quiz)

請選擇正確的答案:

Q1一般 DNS 查詢主要使用哪一個傳輸層協定與埠號?

TCP 80
UDP 53
TCP 443
UDP 67
解析: 大多數標準查詢使用 UDP 53 以求快速。TCP 53 通常用於 Zone Transfer 或回應超過 512 bytes 時。

Q2若要查詢某個網域的 IPv6 位址,應查詢哪種紀錄類型?

A Record
CNAME Record
MX Record
AAAA Record
解析: A Record 用於 IPv4 (32-bit),AAAA (Quad-A) 用於 IPv6 (128-bit,即 4 倍長度)。

Q3在 ExtremeXOS 中,若要設定 Switch 使用 Google 的 DNS (8.8.8.8),指令為何?

ip name-server 8.8.8.8
configure dns-client add name-server 8.8.8.8
set dns server 8.8.8.8
dns-server 8.8.8.8
解析: 選項 B 是 EXOS 的標準語法。選項 A 是 Cisco IOS 的語法。

Q4當你希望 `blog.mysite.com` 實際指向 `medium.com` 的某個頁面,應使用哪種紀錄?

NS Record
PTR Record
CNAME Record
SOA Record
解析: CNAME (Canonical Name) 用於建立別名,將一個網域指向另一個網域,而非直接指向 IP。

Q5企業內部為了讓員工連線內網伺服器取得私有 IP,外部客戶取得公有 IP,這種技術稱為什麼?

DNS Load Balancing
DNS Tunneling
Split-Horizon DNS
Anycast DNS
解析: Split-Horizon DNS (分割 DNS) 是企業資安與路由優化的常見架構,避免內網流量繞行外部防火牆。