我们可以根据请求更新 CNAME 吗?

我们可以根据请求更新 CNAME 吗?

我想为每个请求返回一个唯一的 CNAME,并将该 CNAME 的 IP 地址添加到区域文件中。可以吗?

答案1

您的问题缺乏细节。您为什么要这样做(为什么特别要使用 CNAME?)、谁进行查询、为什么需要将结果放入区域文件中,等等。

因此下面仅列出一些模糊的想法。

如果您的问题是关于生成动态记录,是的,您可以使用 bind 以及其他名称服务器来完成,让您使用某种编程语言选择“动态”后端。

看:

当然,您也可以根据需要,使用您选择的任何编程语言构建一个小型简单的权威名称服务器,该语言具有良好的 DNS 抽象库来处理 DNS 协议的所有细节(并且有很多)。

另一种廉价的方式是:使用通配符。但要谨慎。然而,通配符的核心是让您仅用一行即可立即获得区域文件中所需的所有 CNAME。但这一切都取决于谁查询您的名称服务器。

请记住,您的权威名称服务器的客户端是递归名称服务器,而不是最终客户端,因此它只会看到客户端使用的最后一个递归名称服务器的 IP 地址,而不是客户端 IP。您有 EDNS 客户端子网选项,如果递归解析器支持,它将为您提供客户端 IP 地址子网的指示,但出于隐私原因永远不会提供完整地址。

最后,让我们来看看 Geoff Huston 的各种作品。他是 APNIC 的 DNS 研究员,做过很多研究。为了进行研究,他经常购买广告,为每个解析到特定名称的客户端提供唯一链接。请参见以下示例:计算 DNS 中的 IPv6 | ISP 专栏 它可能会给你一些新的想法。

(请参阅我对您相关问题的详细回答:如何将 DNS 请求与托管该域名的 Web 服务器的请求关联起来?| 服务器故障

相关内容