🧠 一、Unbound 是什麼?
Unbound 是一個由 NLnet Labs 開發的 DNS Resolver(遞迴式 DNS 伺服器),主要功能是:
幫內部用戶端「查詢網域名稱的真實 IP 位址」。
它不是用來「託管網域」的,而是用來 轉譯查詢(Resolve)使用者輸入的網址,例如:
client → Unbound → 根DNS → TLD伺服器 → 權威DNS → 回覆 IP
所以它的角色類似於:
- BIND9 若設定為 Authoritative DNS(權威伺服器),它負責「告訴別人你網域的記錄」。
- Unbound 則負責 幫內部使用者查 IP(例如查 google.com)。
⚙️ 二、Unbound 的主要功能與特色
| 功能項目 | 說明 |
|---|---|
| DNS Resolver(遞迴查詢) | 自行從根伺服器層層解析,不依賴外部 DNS。 |
| DNS Forwarder(轉遞模式) | 可設定轉發至指定 DNS(例如 8.8.8.8、1.1.1.1 或你的 BIND9)。 |
| DNS-over-TLS (DoT) | 支援加密 DNS 查詢,提升隱私性。 |
| DNS Rebind Protection | 防止惡意網域解析回內網 IP(常見攻擊手法)。 |
| Blocklist / Override | 可封鎖廣告網域、內網覆寫特定域名(例如將 mail.company.com 指向內部 IP)。 |
| DHCP 整合 | 可自動註冊內網 DHCP 分配的主機名稱。 |
| 本機快取 (Cache) | 查詢結果快取在記憶體中,加快重複查詢速度。 |
🧩 三、Unbound 的工作原理
以公司內部環境為例:
[用戶端]
↓
[OPNsense (Unbound DNS Resolver)]
↓
[根伺服器 → TLD → 權威DNS]
↓
[真實 IP 回傳 → 快取 → 用戶端]
流程說明:
1️⃣ 用戶端發出查詢 (例如 www.microsoft.com)。
2️⃣ Unbound 檢查本地快取,有就直接回應。
3️⃣ 若無快取,就從 root DNS 開始遞迴解析。
4️⃣ 結果回覆後,存入快取以加速下次查詢。
5️⃣ 若設定了 Forwarder 模式,則直接把查詢轉送給指定 DNS(例如 BIND9)。
⚖️ 四、Unbound 與 BIND9 的差異與定位比較
| 比較項目 | Unbound | BIND9 |
|---|---|---|
| 主要用途 | DNS Resolver(遞迴查詢) | DNS Authoritative Server(權威託管) |
| 是否可建立 zone | 可(但僅作覆寫或本地記錄) | 可建立完整 zone 檔(公司域名主機) |
| 是否可轉遞 | 可(forward 模式) | 可(forwarders 或 slave) |
| 是否有 root hints | 內建 root hints | 須自行維護 |
| 管理介面 | Web GUI(OPNsense) | 手動設定檔 / named.conf |
| 適用場景 | 內網 DNS Resolver、防火牆本地快取 | 公司對外 DNS(mail.company.com, www.company.com) |
💡 五、是否會與 BIND9 衝突?
不一定會衝突,但要避免同時綁定同一個 port(53)。
1️⃣ 若兩者在「不同主機」:
✅ 完全沒問題。
例如:
OPNsense (Unbound) → 提供 內網 DNS Resolver
bind9.company.com (BIND9) → 提供 對外權威 DNS
2️⃣ 若兩者在「同一台機器」:
需確保:
- 兩者監聽不同介面或埠號。
例如:Unbound listen: LAN (53) BIND9 listen: WAN (53) - 或者只開啟 Unbound,並設定它的 forwarder 指向 BIND9。
例如在 OPNsense → Unbound → General → “DNS over TLS or Forwarding” 中設定:Forwarding Mode: Enable Custom DNS: 10.0.0.5 (你的 BIND9 伺服器)這樣內網使用者查詢時,Unbound 會先做快取、過濾、再轉送給 BIND9。
🧰 六、常見整合方式(企業建議)
| 架構類型 | 說明 |
|---|---|
| 方式1:Unbound 作為內網 Resolver + BIND9 作為外網 Authoritative | 最常見架構。內網所有電腦用 OPNsense 的 Unbound 查詢,Unbound 對外解析時,可快取與過濾。 |
| 方式2:Unbound Forward 至 BIND9 | 若你的 BIND9 內建內外部區分(view),可由 Unbound 將所有查詢轉送過去。 |
| 方式3:Unbound 只服務 LAN,BIND9 服務 DMZ / Public | 分層架構,避免同一服務混合外內部解析。 |
🔐 七、安全與效能優勢
| 項目 | Unbound 優勢 |
|---|---|
| DNS Cache | 大幅降低外部查詢延遲。 |
| DNSSEC 驗證 | 確保查詢結果未被竄改。 |
| Rebind 防護 | 防止惡意網域返回內網 IP。 |
| TLS 查詢 | 支援 DNS-over-TLS,防止 ISP 監聽。 |
| 集中管理 | 可於 OPNsense Web UI 管理,不需進入 CLI。 |
🧮 八、簡化範例架構
[使用者筆電] → 10.0.0.1 (OPNsense Unbound)
↓
若無快取 → 遞迴解析
↓
或轉遞至 BIND9 (10.0.0.5)
↓
取得結果 → 回傳給使用者
✅ 九、結論
Unbound 與 BIND9 並非競爭,而是互補。
- Unbound 適合放在防火牆或 Gateway 上,做為內網 Resolver、快取、過濾、DNSSEC 驗證。
- BIND9 則繼續擔任對外的權威伺服器角色。
- 若配置得當,兩者可共存,組成完整的 DNS 架構:
- Unbound 提供快速、私有、安全的內部查詢;
- BIND9 提供正式、公開、受信任的外部名稱解析。