Linux

如何在 Unbound DNS Server 中執行視圖

  • March 24, 2021

我將如何在 Unbound 中使用BIND“視圖”功能?我似乎無法在網上找到任何關於此的內容。

Unbound 不支持水平分割 DNS。它主要用作遞歸和記憶體名稱伺服器,並且對提供權威答案的支持有限。

在某些情況下,您可以通過其存根區域功能和/或其本地數據選項來偽造它,但對於正常情況下,您將使用水平分割 DNS(具有 RFC1918 地址的網路),Unbound 什麼都沒有。

如果你真的想堅持使用 Unbound,你可以通過在不同的 IP 地址上執行多個 Unbound 實例然後使用 iptables 根據源地址轉發來偽造它。

將 192.0.2.1 作為伺服器的 ip,將 198.51.100.0/24 作為您想要呈現不同視圖的範圍,您可以執行以下操作:

  • 未綁定 1:綁定到 192.168.0.2.1:53
  • 未綁定 2:綁定到 127.0.0.1:53(或環回適配器上的另一個 IP 地址)

在 iptables 中放置以下規則(未經測試,但應該有效):

iptables -A PREROUTING -s 198.51.100.0/24 -p udp -m udp --dport 53 -j DNAT --to 127.0.0.1:53
iptables -A PREROUTING -s 198.51.100.0/24 -p tcp -m tcp --dport 53 -j DNAT --to 127.0.0.1:53

但是,我不建議採用這種方式,因為 Bind 是完成這項工作的更好工具,並且像上面這樣的 hack 對進一步的管理來說變得很痛苦。

引用自:https://serverfault.com/questions/415509