電腦網路與 Internet 通訊

單元 05 DHCP、DNS 與設定的生命週期

學習目標與問題

接續 IP 與 ARP。你應能說明 DHCP 租約、DNS 遞迴與權威角色、TTL 快取,以及名稱解析失敗與服務失敗的差異。連上 AP 表示鏈路成立,並不代表已拿到正確 IP、閘道和解析器。

普通 DNS 解析與本鏈路 mDNS 需分開;讀完本章接 04A 的 4A.5 與 L16 DNS-SD 工作表。

5.1 設定從哪裡來

IPv4 DHCP 常透過 Discover、Offer、Request、ACK 的流程提供租約與選項,包括位址、遮罩、路由器和 DNS。初始客戶端可使用 0.0.0.0,訊息可能廣播;relay 可把請求轉送到其他網段的伺服器。後續續租不一定重演四個廣播訊息。

租約到期前會嘗試續租及重新繫結;超過租約有效期不能繼續假設位址合法。手動靜態設定、作業系統快取與其他設定機制也可能參與。若 Wi-Fi 正常但只有 link-local 位址,應先查 DHCP 與本地設定,不要立即歸因 DNS。

5.2 DNS 是分散式名稱資料庫

stub resolver 通常把查詢交給遞迴解析器。解析器可回快取,或從根、頂級域、權威伺服器逐步找委派。權威伺服器對特定 zone 提供資料,不等於替使用者遞迴解析所有名稱。實際流程受快取影響,不是每次都詢問根。

記錄功能注意
A/AAAA名稱到 IPv4/IPv6可有多筆,不保證只用第一筆
CNAME別名指向另一名稱仍需解析後續名稱
NSzone 的權威伺服器委派可能需要 glue 位址
MX郵件交換器不是網頁服務位址
TXT應用定義文字資料本身不提供安全保證

DNS 不解析完整 URL。https://example.test:8443/a 的主機名是 example.test,埠與路徑由其他協定處理。.test 是示例用途;本教材不要求連到外部該網域。

5.3 查詢、回應與快取

DNS header 含 transaction ID、旗標、各區段數量。Question 有名稱、type、class;Answer 可以含資料與 TTL。名稱用長度加 label 表示,回應可用壓縮指標引用訊息中先前出現的名稱。parser 必須限制長度及指標迴圈,不能把網路輸入當成可信字串。

TTL 是允許快取儲存的時間尺度。假設權威 TTL=300 秒,解析器在 t=0 收到資料,t=120 回覆時正常剩餘 TTL 約 180;新增查詢不會任意把原資料再延長 300。負面回覆也可能快取。NXDOMAIN 表示名稱不存在;NOERROR 且無指定型別資料並不等於 NXDOMAIN。timeout 則根本沒有拿到有效回應。

DNS 支援 UDP 與 TCP。UDP 回覆截斷時可能改用 TCP;不能把「DNS 通常用 UDP」簡化為「封鎖 TCP 53 不影響 DNS」。DoH/DoT 改變傳送的保密方式,DNSSEC 提供資料驗證;加密傳送不等於 DNS 資料本身已驗證,也不使解析器無法看到查詢。

5.4 完整故障例題

使用者說「網站不能開」。已知以正確 IP 連線可到服務、原名稱解析 timeout,且解析器位址不可達。先檢查解析器路由、DNS 設定及政策,再測查詢。若解析得到位址但 HTTPS 名稱驗證失敗,不能改成停用憑證檢查;應核對名稱與憑證。直接以 IP 開 HTTPS 可能因 SNI/Host 與名稱驗證失敗,不能用它取代完整的域名測試。

實驗、習題與檢核

L04 提供人工作成的 DNS 二進位訊息,解析 header、QNAME 與 A 回應。它驗證格式理解,不代表已向真正權威伺服器查詢。

  1. 快取在 t=40 收到 TTL=600 的資料,t=190 時的正常剩餘 TTL 為何?
  2. 將遞迴解析器、權威伺服器和 DHCP 伺服器的責任分開。
  3. NXDOMAIN、沒有 AAAA、逾時各支持什麼結論?
  4. 請畫出「已快取」與「未快取」兩種解析時序。

檢核:能寫出 DNS 查詢實際送往哪個端點,並區分名稱、位址、服務可達與身分驗證。來源:RFC 2131、RFC 1034、RFC 1035、RFC 2308。