快速摘要
DNS RPZ 是把策略加在 DNS 回應前面的機制,常見用途是封鎖惡意網域、停止解析,或把查詢導向警告頁。這也是某些網站在不同 DNS 下會出現完全不同結果的原因。
DNS RPZ 是 DNS Response Policy Zone 的縮寫。把它講白一點,它就是讓 DNS 伺服器在回答查詢之前,先做一次策略判斷。只要某個網域被寫進規則裡,DNS 伺服器就能決定要不要照原本答案回覆,還是改成別的結果。
也因為這樣,同一個網址在不同 DNS 伺服器下面,可能會得到完全不同的結果。一邊正常開站,另一邊直接跳封鎖頁,這其實不是什麼神祕現象,往往只是兩邊用了不同的政策。
RPZ 的本質,是把策略加在 DNS 回應前面
一般情況下,DNS 查詢只是把網域翻成 IP 位址。但在有 RPZ 的環境裡,DNS 伺服器會先檢查這次查詢有沒有踩到政策。踩到了,就不一定照原本答案回覆。
BIND 9 的官方文件把 RPZ 定義成一種 response policy 機制,政策內容會放在額外的 zone 裡,再由遞迴 DNS 伺服器拿來改變查詢結果。請參考:BIND 9 Administrator Reference Manual - Response Policy Zone。
所以 RPZ 不是網站自己壞掉,也不是瀏覽器突然出現奇怪功能。它更像是 DNS 這一層先幫你做了判斷,讓你在還沒連到真正網站之前,就先被攔下來。
這也是為什麼會看到「此網域已經遭到封鎖」
當某個網域被列進封鎖策略後,DNS 伺服器就不一定會回傳原本網站的 IP。它可能直接導到封鎖頁、警告頁,或者乾脆不再解析。使用者看到的畫面就會像:
- 此網域已經遭到封鎖
- 此網域已經遭到停止解析
- 網域封鎖警告頁
ISC 對 RPZ 的說明也把它放在 DNS firewall 的脈絡裡,明確提到可以攔截查詢、把瀏覽器導向「walled garden」式的警告頁,或直接讓可疑目的地變得不可達。請參考:Response Policy Zones (RPZ) - ISC。
RPZ 常見用途,本來就不是只有「封網站」
RPZ 最常見的用途,通常都跟風險控管有關。像是擋釣魚、擋惡意網域、讓中毒裝置連不到已知的控制站,或是在 ISP、企業、學校這類環境裡,對特定網域做政策管理。
這裡要注意一個觀念:RPZ 原本就是「政策工具」,不是加速工具,也不是單純的 DNS 快取功能。你看到的封鎖頁,只是這套機制最容易被一般使用者注意到的其中一種結果。
為什麼改 DNS 有時候會立刻有效
如果封鎖策略是套在 ISP 預設 DNS 上,那麼當我們把 Windows 的 DNS 改成 Cloudflare 或 Google,查詢就不再走原本那台解析器。只要新的 DNS 沒有套用相同政策,原本那個被攔住的網域就有機會恢復成正常答案。
這也是 Windows 改 DNS 教學 會有效的原因之一。不過它成立的前提很重要,問題必須真的在 DNS 層,而且你換上的 DNS 供應商也沒有做一樣的限制。
如果你已經改了 DNS,結果看起來還是沒變,下一步先做 Windows 清除 DNS 快取,把本機手上的舊解析結果清掉。很多時候卡住的點,其實只是舊快取還沒放掉。
但看到封鎖頁,不代表一定都是 RPZ
雖然 RPZ 很常見,但不是所有封鎖畫面都一定來自 RPZ。至少下面幾種情況,就不能直接畫等號:
- 問題其實發生在瀏覽器或作業系統的快取
- 網站本身真的失效或停止服務
- 封鎖發生在 DNS 以外的其他網路層級
- 你看到的是網站端自己的錯誤頁,不是 DNS 導出的警告頁
比較穩的判斷方式,還是先確認 DNS 設定,再清本機快取,最後看不同解析器下的結果有沒有真的不同。這樣比一看到警告就直接下結論,要可靠得多。
總結
DNS RPZ 是一種加在 DNS 回應前面的策略機制,常見用途是封鎖網域、停止解析,或把查詢導向警告頁。當我們看到「此網域已經遭到封鎖」這類訊息時,背後很可能就是 DNS 層的政策在運作。
如果你要的是概念理解,本文已經把 RPZ 和封鎖畫面的關係講清楚了;如果你要的是實際處理方式,下一步就回到 Windows 改 DNS 教學,或接著做 Windows 清除 DNS 快取。