小村軟體有限公司
第 7 章

總復習與案例研究

透過 8 題案例問題,橫跨 bailiwick、entropy、NAT、DNSSEC、維運等視角完成收尾。

在這裡收尾

本章透過 8 題案例問題,橫跨 glue / entropy / NAT / AD bit / negative caching / split-horizon 一起求解。要確認的不是單章的知識,而是能否結合多個章節的視角來判斷。

合格目標: 在 8 題案例中答對 6 題以上,就代表在 cache poisoning 的防禦與觀測上,已能充分勝任現場初步切分的程度。

總復習會用到的視角

章節本章會用到的看法
第 1 章區分「誰的 cache 被誰寫入了答案」
第 2 章in-bailiwick glue 與 out-of-bailiwick additional 的差別
第 3 章ID / source port / question / time window 的一致與 entropy
第 4 章2008 年的教訓與 patch / recursion control 的短期對策
第 5 章DNSSEC 的守備範圍與 last-hop 的 trust 問題
第 6 章dig、記錄檔、negative caching / split-horizon 的切分

總復習 7-1 — bailiwick・entropy・DNSSEC (機制軸)

以案例確認 referral 的處理方式、port entropy、AD bit 與 last hop 等「機制能守到哪裡」。

Q1. 父 zone 的 referral 中一起回傳了 NS ns1.shop.example.comA ns1.shop.example.com 192.0.2.53。最妥當的處理方式是?

Q2. referral 中 Additional 附上了 NS ns.partner.netA ns.partner.net 198.51.100.10。最安全的判斷是?

Q3. resolver 位於 NAT 之後,對外的 source port 實際上被縮成 256 種連號。此時最正確的說明是?

Q4. stub resolver 收到 AD=1 的回應,但其 upstream recursive resolver 與通訊路徑都不夠可信。此時最適當的解釋是?

Q5. 目標 zone 是 unsigned。最正確的說明是?

總復習 7-2 — 維運、監控、整體方針 (維運軸)

確認監控訊號、cache TTL 的壽命與組織方針等「在現場該怎麼運轉」。

Q6. 對某個 zone 在短時間內持續湧入大量 random 的不存在標籤 query。從 cache poisoning 的觀點,最接近值得注意的理由是?

Q7. 套用 patch 後緊接著,預期使用同一 resolver 的使用者還會在接下來 2 分鐘內看到相同的錯誤答案。最直接的原因是?

Q8. 對組織的 recursive resolver 而言,最適當的整體方針是?

本課程的着陸點

  • 能說明:一旦 shared recursive resolver 的 cache 中殘留錯誤的 RRset,就會讓全體使用者都被分配到相同的錯誤答案。
  • 能區分 referral / final answer / glue,並意識 in-bailiwick / out-of-bailiwick 加以處理。
  • 能以公式與數字掌握回應接受條件(question / ID / address / port)與 entropy 與嘗試次數 的關係。
  • 能說明 DNSSEC 的 origin authentication / integrity / authenticated denial of existence 與 confidentiality 是不同的事。
  • 能結合 last hop 的 trust 問題 來解讀 AD bit 的意義。
  • 遇到問題時,能先用 dig @resolver / dig +trace / dig +dnssec 觀察回應,並優先排除 negative caching 或 split-horizon。
  • 最終能結合 patch、entropy、bailiwick、DNSSEC、維運監控 來思考。

接下來做會更容易紮根的事

  1. 在自己管理的 resolver 上執行 dig +tracedig +dnssec,親眼確認 referral 與簽章驗證的輸出。
  2. 分別選 1 個 unsigned zone 與 signed zone,觀察 ad flag 的差異。
  3. 刻意製造 negative caching 的 TTL 還殘留的情境,親手體驗「明明建立了卻看不到」的典型。
  4. 在維運端,確認是否有能捕捉 random label 急增或簽章驗證 failure 記錄檔的監控。