我想设置一个递归 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 在它们之间分配流量。