PowerDNS:是否可以根据客户端使用的服务器 IP 发送不同的结果?

PowerDNS:是否可以根据客户端使用的服务器 IP 发送不同的结果?

我想设置一个递归 DNS 服务器多个 IP 都位于同一个 PowerDNS 服务器上。假设:

8.8.8.1
8.8.8.2

8.8.8.3
8.8.8.4

我想知道如何根据客户端使用的 IP 发送不同的响应。

例如,如果客户端将其请求发送到 8.8.8.1 和 8.8.8.2,则网站 www.example.com 将解析为1.1.1.1否则,如果客户端使用 8.8.8.3 和 8.8.8.4 作为其 DNS 服务器,则响应将是2.2.2.2

这可能吗?也许使用 LUA 脚本?

谢谢!

答案1

在 Bind 中,您可以使用 ACL 和视图来执行此操作。

Powerdns 对‘水平分割’或‘绑定视图’的立场:

我们的观点是“视图”会让名称服务器内部变得不必要地复杂。由于我们的目标是让 PowerDNS 成为一款简单且安全的服务器,因此我们决定不实现视图。-伯特

解决方法 - 您可以运行多个 powerdns 实例,并在 IPTables 或 NAT 上使用基于源的策略路由。

答案2

2 个 powerdns 服务器位于不同的端口,并使用 iptables 对其进行重新定向。

答案3

这在 Lua 中确实很容易。或者,您可以运行两个递归器,并使用 dnsdist 根据客户端 IP 在它们之间分配流量。

相关内容