一、核心概念 (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.8configure dns-client add domain-suffix internal.lab
Cisco IOS
ip name-server 8.8.8.8ip domain-name internal.lab
ip domain-lookup
三、架構視覺化 (Visuals)
DNS 遞迴查詢流程圖
若字體仍太小,請使用上方的「放大」按鈕,並左右滑動檢視。
四、實務應用場景 (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 結果。
優缺點分析
- 安全性: 內部架構細節(私有 IP)不會暴露給公網。
- 效能: 內網流量直接走 Switch 交換,不繞道防火牆 NAT。
- 使用者體驗: 網址一致,使用者不需要記兩個不同的連結。
- 管理複雜度: 需維護兩份 Zone Files,容易發生內外不同步的人為疏失。
- 除錯困難: 當連線失敗時,需先釐清使用者當下位於內網還是外網。
五、隨堂測驗 (Quiz)
請選擇正確的答案:
Q1一般 DNS 查詢主要使用哪一個傳輸層協定與埠號?
Q2若要查詢某個網域的 IPv6 位址,應查詢哪種紀錄類型?
Q3在 ExtremeXOS 中,若要設定 Switch 使用 Google 的 DNS (8.8.8.8),指令為何?
Q4當你希望 `blog.mysite.com` 實際指向 `medium.com` 的某個頁面,應使用哪種紀錄?
Q5企業內部為了讓員工連線內網伺服器取得私有 IP,外部客戶取得公有 IP,這種技術稱為什麼?