我正在运行一个由远程计算机使用的 DNS 服务器(仅允许特定 IP 地址)。我希望通过将一些域重定向到托管在另一台服务器上的请求表单来阻止它们。例如,如果一台机器向 发出请求,example.com
那么我希望将其重定向到anothersite.com
。
如上所述,请求表单托管在外部服务器上的网站上,而不是同一 DNS 服务器网络上。另外,为了更清楚起见,我的 DNS 服务器目前只是充当转发器。我希望将其保留为转发器,但仅能处理一些未转发的域。
这可以在 DNS 服务器上完成吗?
答案1
DNS没有“重定向”的概念,该术语来自HTTP。
您可以在 DNS 服务器中应用过滤和重写,以强制执行某些策略。这通常称为“DNS 防火墙”,但必须谨慎使用,因为 DNS 级别可能不是最合适的(客户端可以通过使用 DOH 连接到未实施您的策略的外部名称服务器来绕过 DNS,但它们也可以直接使用以某种方式获取的 IP 地址,因此不必进行名称解析;简而言之:明确您要实现的目标以及存在的所有规避情况)
这取决于您使用哪个名称服务器。因为bind
它被称为 RPZ,即“响应策略区域”,记录在https://ftp.isc.org/isc/bind9/cur/9.19/doc/arm/html/chapter6.html#dns-firewalls-and-response-policy-zones
在下面的描述中,请注意与您的情况相关的第 3 点:
响应策略操作可以是以下之一:
合成“域不存在”(NXDOMAIN)响应
合成“名称存在,但没有请求类型的记录”(NODATA)响应
使用特定数据(在响应策略区域内提供)替换/覆盖响应的数据
免除对响应进行进一步的政策处理
但是 name/A 或 name/AAAA 查询的响应是一组 IP 地址,您需要覆盖这些地址。但请注意,其中可能CNAME
涉及记录。