我将如何使用BIND“视图”功能在 Unbound 中?我似乎无法在网上找到有关此内容的任何信息。
答案1
Unbound 不支持水平分割 DNS。它主要用作递归和缓存名称服务器,并且仅对提供权威答案提供有限的支持。
在某些情况下,您可以通过其存根区域功能和/或本地数据选项来伪造它,但对于使用分割水平 DNS 的正常情况(具有 RFC1918 地址的网络),Unbound 没有任何功能。
答案2
如果您确实想坚持使用 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 是完成这项工作的更好的工具,并且像上述这样的黑客行为会给后续的管理员带来麻烦。
答案3
https://nlnetlabs.nl/documentation/unbound/unbound.conf/#access-control-view
server:
access-control-view: 192.168.4.4 view-test
view:
name: "view-test"
local-zone: "example.com" always_nxdomain
答案4
不,Unbound“仅仅”是一个解析器。请尝试使用权威的名称服务器软件。
维基百科有一个特征矩阵明确提到“水平分割”:
http://en.wikipedia.org/wiki/Comparison_of_DNS_server_software#Feature_matrix