我有一些通过 DNS 提供动态信息的软件,类似于 DNSBL。
我如何在与 BIND 服务器相同的服务器上运行它,该服务器还为其他域提供 DNS 请求?我只需要 BIND 将对某个子域 (*.myservice.myname.net) 的查询重定向到同一台计算机上的不同端口,而我不能仅仅委托子域,因为我没有多余的 IPv4 地址。
答案1
据我所知,这是不可能的. 就好像 BIND 作者明确地不遗余力地确保没有人能够做到这一点 — — 至少,在没有将您的服务器变成开放解析器的情况下是无法实现的。
- 与其他一些 DNS 软件不同,BIND 不支持“转发”记录类型(这只会使软件在匹配时咨询不同的服务器)。无法在“区域”级别添加转发。
- 虽然可以
type forward
为子域创建转发()区域,这也允许在任意端口上查询 DNS 服务器,但由于某种原因,这需要启用该allow-recursion
选项才能工作。 - 但是,该
allow-recursion
选项不能在区域级别指定 - 它可以是一个全局选项(并在那里启用它将打开您服务器的 DNS 作为公共解析器),或者在“视图”中。 - 视图允许对区域进行分组并
allow-recursion
对其应用某些选项(包括),但是,由于它们的目的是通过客户端/服务器 IP 进行限制,它们的行为也不会像人们预期的那样,甚至不会匹配其中未明确指定的区域(从而使您的服务器成为公共解析器)。 - BIND 确实有一种方法可以将查询限制为仅对视图中明确列出的区域:级别为空白
allow-query
,view
区域allow-query { any; };
级别为空白。不幸的是:option 'allow-query' is not allowed in 'forward' zone
。这是 BIND 给您的逐字消息。