單元 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 | 別名指向另一名稱 | 仍需解析後續名稱 |
| NS | zone 的權威伺服器 | 委派可能需要 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 回應。它驗證格式理解,不代表已向真正權威伺服器查詢。
- 快取在 t=40 收到 TTL=600 的資料,t=190 時的正常剩餘 TTL 為何?
- 將遞迴解析器、權威伺服器和 DHCP 伺服器的責任分開。
- NXDOMAIN、沒有 AAAA、逾時各支持什麼結論?
- 請畫出「已快取」與「未快取」兩種解析時序。
檢核:能寫出 DNS 查詢實際送往哪個端點,並區分名稱、位址、服務可達與身分驗證。來源:RFC 2131、RFC 1034、RFC 1035、RFC 2308。