![DNS - 不受约束 - 如何根据客户端网络为服务器提供不同的 IP](https://linux22.com/image/776856/DNS%20-%20%E4%B8%8D%E5%8F%97%E7%BA%A6%E6%9D%9F%20-%20%E5%A6%82%E4%BD%95%E6%A0%B9%E6%8D%AE%E5%AE%A2%E6%88%B7%E7%AB%AF%E7%BD%91%E7%BB%9C%E4%B8%BA%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%8F%90%E4%BE%9B%E4%B8%8D%E5%90%8C%E7%9A%84%20IP.png)
我们有一个使用 FreeBSD 中 Unbound 的内部网 DNS 服务器。我们还有另一个具有多个网络 IP 的文件服务器,第一个是10.10.10.10
,第二个是 192.168.10.10
。
DNS 服务器有没有办法根据客户端网络为此文件服务器提供不同的 IP?
例如:对于来自 10.10.xx 网络的用户,文件服务器 ip 应该是10.10.10.10
对于来自 192.168.xx 网络的用户,文件服务器 ip 应该是192.168.10.10
。
答案1
如何根据客户端网络为服务器提供不同的IP
对此的行话通常是“水平分割域名系统“。
在 Unbound 中通过“标签和视图“功能。这些使得能够根据客户端的 IP 地址发送特定的 DNS 答案。
标签功能可以将客户端源地址划分为类别(标签),并使用本地区域和本地数据信息来针对这些特定标签。
视图是配置选项的命名列表。支持的视图配置选项是 local-zone 和 local-data。
使用视图子句配置视图。可能有多个视图子句,每个子句都有唯一的名称。例如:
view: name: "firstview" local-zone: example.com inform local-data: 'example.com TXT "this is an example"' local-zone: refused.example.nl refuse
...
可以使用 access-control-view 元素将视图映射到客户端:
access-control-view: 10.0.5.0/24 firstview